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.
This software and its associated documentation are proprietary and confidential. Unauthorized copying, transferring, or reproduction, in whole or in part, of the contents of this project, via any medium, is strictly prohibited.
Usage Restrictions
The receipt or possession of the source code and/or any parts thereof does not confer or imply any right to use them for any purpose other than the intended purpose for which they were provided.
Redistribution and Modification
Redistribution and use, with or without modification, are strictly forbidden without the explicit written permission of the project holders.
Disclaimer of Warranty
This software is provided by the copyright holders and contributors "as is" and without any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Limitation of Liability
In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages, including but not limited to procurement of substitute goods or services, loss of use, data, or profits, or business interruption, arising in any way out of the use of this software, even if advised of the possibility of such damage.
Contact Information
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.