Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iljavaleev/teacherbot

Telegram Bot for tutoring
https://github.com/iljavaleev/teacherbot

cmake cpp20 docker-compose postgresql swagger tgbot-cpp

Last synced: 21 days ago
JSON representation

Telegram Bot for tutoring

Awesome Lists containing this project

README

        

## Бот для учителей, занимающихся репетиторством

### Возможности
1. Бот "принадлежит" администратору - учителю, который может давать доступ к боту другим учителям.
2. У каждого учителя может быть несколько учеников и у каждого ученика может быть несколько преподователей.
3. Каждый учитель, админ в том числе, может содавать занятия для определенного ученика, которое будут проходить в выбранный день недели. При создании будет отослано сообщение ученику.
4. Полльзователь может зайти в бот и сделать заявку на регистрацию в качестве учителя (может быть одобрена админом) или ученика (может быть одобрена выбранным учителем). 
5. Учитель/Ученик может посмотреть в календаре в какие дни у него занития и посмотреть подробную информацию.
6. Ученик может сделать запрос на отмену занятия. Сообщение с запросом будет отослано учителю.
7. !!! Для наачала работы нужно сделать запись для админа в базе данных. Для этого в db_setup/db_setup.sql раскоментируйте запрос и укажите нужную информацию

```
INSERT INTO bot_user VALUES (чат админа(https://t.me/userinfobot) можно здесь, null, 'юзернейм в тг', 'имя', 'фамилия', 'телефон', 'эл.почта', null, 'no comments', 'teacher', TRUE);
```

## Запуск локально
1. Заходим на [ngrok.com](https://ngrok.com/), регистрируемся, если ещё нет аккаунта.
2. После того, как залогинились, заходим на вкладку "Your Authtoken" и копируем оттуда токен в .env-файл в NGROK_AUTHTOKEN.
3. Далее переходим в "Cloud Edge / Domains" и нажимаем "+ New Domain".
4. Создаём свой постоянный домен и добавляем его в .env-файл в два места:
* в NGROK_URL в формате "myurl.ngrok-free.app"
* в BASE_WEBHOOK_URL в формате "https://myurl.ngrok-free.app".
6. Заполняем остальной .env-файл по инструкции из .env.example.
7. Запускаем проект из корневой директории (/backend) командой

```bash
docker compose --env-file .env -f cppinfra/docker-compose.local.yml up -d
```

### !!! Для запуска на сервере в cppinfra/ swqg_nginx.conf нужно поменять url сервера (обязательно hostname, не ip).