Skip to content

PluxCo/testing-platform

Repository files navigation

Testing System

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.

Components

1. Admin Panel

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.

2. Telegram Bot

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.

3. Schedule Module

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.

Usage

Running the Project Locally

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.py

Replace <telegram_token> with your actual Telegram bot token and <admin_password> with the desired administrator password.

Creating Docker Volume

Before running Docker Compose, you need to create a Docker volume for data persistence. Execute the following command:

docker volume create testing-data

Running the Project with Docker Compose

To 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: true

Replace <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 --build

This will start the project in detached mode, allowing it to run in the background.

Getting Started

  1. Clone or download the project repository.
  2. Set up your Telegram bot by following the Telegram Bot API documentation.
  3. Configure the web admin panel settings as per your requirements.
  4. Assign PIN to users via the admin panel for them to access the Telegram bot.
  5. Customize the question database to suit the topic you wish to test.
  6. Deploy the project using Docker Compose, ensuring you replace placeholders with actual values.

Contact Information

For licensing inquiries or permissions, please contact the project holders:

© 2023 Chernyshev Sergey, Chuvashov Anton, Valik Elena, Zhilin Rostislav. All rights reserved.

About

Testing System is a project with an Admin Panel, Telegram Bot, and Schedule Module designed for assessing knowledge on a specific topic. Admins manage questions, monitor progress, and configure settings. The Schedule Module generates convenient testing schedules based on user availability.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors