The Testing System is a project designed to assess individuals' knowledge of a specific topic. It comprises three main components: a web panel, a Telegram bot, and a schedule module. This system allows you to evaluate how well people grasp a particular subject by asking them questions through a conversational Telegram bot.
The admin panel serves as the control center for managing the topic testing system. It provides an interface to:
- Add, edit, or delete questions related to the topic.
- Monitor user progress and scores.
- Configure system settings, such as the time intervals between questions.
- Assign and manage PIN for users to access the Telegram bot.
To access the admin panel, launch your web browser and navigate to the specified URL. You will need to log in using your administrator credentials.
The Telegram bot acts as an interactive conversational agent that engages users in a topic-related conversation. However, users can only access the bot if they possess a valid PIN, which is assigned through the admin panel. The bot presents questions to users and maintains a dialogue-like experience. The bot aim is to create a natural and engaging testing experience.
To interact with the bot, users need to initiate a conversation on Telegram, enter the provided PIN, and then start the testing process. They can answer questions as prompted by the bot.
The schedule module is responsible for generating a testing schedule for users. It calculates suitable times at which users will be asked questions based on their availability and preferences. This ensures that users are engaged at times convenient for them, enhancing their participation in the testing process.
For debugging and testing purposes, you can run the project locally using the main.py file. Before running the file,
make sure you set the necessary environment variables. You can set these variables using the following commands:
export TGTOKEN=<telegram_token>
export ADMIN_PASSWD=<admin_password>
python main.pyReplace <telegram_token> with your actual Telegram bot token and <admin_password> with the desired administrator
password.
Before running Docker Compose, you need to create a Docker volume for data persistence. Execute the following command:
docker volume create testing-dataTo deploy the project in a production environment, Docker Compose is utilized. The following example Docker Compose configuration can be used as a starting point:
version: '3'
services:
web:
build: https://github.com/PluxCo/testing_platform.git
volumes:
- testing-data:/app/data
ports:
- "80:5000"
environment:
- TGTOKEN=<telegram_token>
- ADMIN_PASSWD=<admin_password>
volumes:
testing-data:
external: trueReplace <telegram_token> with your actual Telegram bot token and <admin_password> with the desired administrator
password.
To run the project, navigate to the directory containing the docker-compose.yml file and execute the following
command:
docker compose up --pull always --buildThis will start the project in detached mode, allowing it to run in the background.
- Clone or download the project repository.
- Set up your Telegram bot by following the Telegram Bot API documentation.
- Configure the web admin panel settings as per your requirements.
- Assign PIN to users via the admin panel for them to access the Telegram bot.
- Customize the question database to suit the topic you wish to test.
- Deploy the project using Docker Compose, ensuring you replace placeholders with actual values.
For licensing inquiries or permissions, please contact the project holders:
- Chernyshev Sergey: serg.miass340@gmail.com
- Chuvashov Anton: antonchuvashow@gmail.com
- Valik Elena: alenka.valik@ya.ru
- Zhilin Rostislav: clavic000@gmail.com
© 2023 Chernyshev Sergey, Chuvashov Anton, Valik Elena, Zhilin Rostislav. All rights reserved.