Skip to content

Телеграм бот для создания и проведения экзаменов

License

Notifications You must be signed in to change notification settings

Merzlikin-Matvey/session-tg-bot

Repository files navigation

Иновационный бот для сессий

В нашем боте реализованы все современные стандарты разработки: наличие тестов, CI/CD, postgres и многое другое.

Что тут будет?

Функционал:

  1. Добаление любого количества билетов в разных форматах (.zip, .rar, .pdf, картинки).

  2. Добавление любого вида экземна с билетами, не важно что это.

  3. Inline клавиатуры, которые облегчают user expiriencе.

  4. Возможность попросить консультацию у учителя. (и ответить на нее со стороны учителей)

  5. Автоматическая раздача билетов в установленное время экзамена.

Запуск проекта

Для запуска нашего проекта вам нужно создать .env файл по образцу:

BOT_API_TOKEN=

DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=
DB_PORT=

После чего прописать в консоли следующие команды:

python -m .venv .venv
. ./.venv/Scripts/activate
pip install -r requirements.txt
python -m src 

После таких махинаций проект запустится!

Архитектура БД

В нашем проекте есть две postgres таблицы заполняемые по образцу:

  • таблица экзаменов:
    create table exams
    (
        id           serial
            primary key,
        name         varchar,
        timestamp    timestamp,
        tasks_paths  text,
        participants character varying[],
        started      boolean,
        examiners    text[],
        user_tasks   json
    );
  • таблица пользователей:
    create table users
    (
        telegram_id        varchar default -1 not null
            primary key,
        full_name          varchar,
        is_admin           boolean,
        registered_exam_id integer
    );

Тестирование

В нашем проекте есть тесты, которые находятся в папке tests, которые проверяют работу классов User, Exam, адаптер к postgres. В дальнейшем они будут использоваться в CI/CD.

CI-CD

Что мы сделали в этой часте?

CI:

  • добавили линкер, чтобы код был одного стиля
  • добавили вышеописанные тесты при пуше в любую ветку

CD:

  • к сожалению мы не успели довести его до ума, так как на это требуется больше времени, чем мы ожидали :(

Релизы

Мы выпустили пре-релиз с кодом, который каждый из вас может посмотреть и запустить,прочитав данный файлик и настроив все необходимое!

Разработчики:

Typing SVG

Typing SVG

About

Телеграм бот для создания и проведения экзаменов

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages