Refinement of the business logic of the educational platform: class confirmation, attendance control, and lesson history (Django + React)
Important
Before starting work, it is necessary to carefully study the current implementation of the project.
In your response, please indicate:
• preliminary cost estimate for the project;
• preliminary timeline estimate;
• experience with Django and React;
• examples of similar projects.
After familiarizing yourself with the project, you will need to:
• determine what functionality has already been implemented;
• determine what functionality has been partially implemented;
• determine what functionality is completely absent;
• propose an optimal implementation plan;
• provide a refined estimate of the number of hours;
• provide the final cost of the project.
Preference will be given to performers who are willing to first understand the existing architecture of the project and only then provide a final work estimate.
Project description - There is an active educational platform (similar to Preply), developed on Django + React.
Currently, after the lesson ends, the system automatically moves the class from the "Upcoming" section to the "Past" section.
At the same time:
• there is no confirmation of the class by the student;
• there is no information on whether the lesson took place;
• there is no information on the teacher's absence;
• there is no information on the student's absence;
• there is no history of class confirmations.
A complete system for lesson confirmation, attendance control, and confirmation history storage needs to be implemented.
Project goal
Create a transparent system for recording lesson results that will allow:
• to understand whether the lesson took place;
• to record absences of students and teachers;
• to maintain a history of confirmations;
• to provide the administration with tools for quality control of the platform;
• to prepare the foundation for further financial logic of the platform.
It is also important that the implemented system can later be used for automatic changes to the financial status of the lesson and for crediting funds to the teacher after class confirmation.
At this stage, the implementation of the Tutor Wallet and payment system is not included in this project, but the architecture of the solution should consider the possibility of further integration with the financial logic of the platform.
Lesson confirmation functionality
Five minutes before the end of the lesson, a non-intrusive notification should be displayed within the lesson:
"Please confirm the result of the class after it is completed."
After the lesson ends, the student should receive a request to confirm the result of the class.
Response options:
• The class took place
• The teacher did not show up
• I could not attend
Reminders
After the lesson ends:
• first notification immediately after the class ends;
• a follow-up reminder after 12 hours if there is no response;
• automatic processing after 24 hours.
Automatic confirmation
If the student has not confirmed the result of the class within 24 hours:
• the system automatically confirms the lesson;
• the lesson is considered to have taken place;
• the status of the lesson automatically changes to Auto Confirmed.
At the same time, it should be recorded in the system that the confirmation was performed automatically.
Lesson statuses
The following statuses need to be implemented:
• Scheduled
• Confirmed
• Pending Confirmation
• Completed
• Auto Confirmed
• Tutor No Show
• Student No Show
• Cancelled
The system should automatically change statuses based on user actions.
Confirmation history
For each lesson, it is necessary to store:
• student;
• teacher;
• lesson date;
• lesson time;
• confirmation result;
• who performed the confirmation;
• date and time of confirmation;
• method of confirmation.
Examples:
Student: John Smith
Tutor: Anna Brown
Confirmation result:
Lesson completed
Confirmed by:
Student
Date:
30.05.2026 18:42
Confirmation type:
Manual
or
Student: John Smith
Tutor: Anna Brown
Confirmation result:
Lesson completed
Confirmed by:
System
Date:
31.05.2026 18:00
Confirmation type:
Automatic (24h timeout)
The confirmation history should be stored indefinitely and be accessible to the administrator for viewing at any time.
Multilingual support
The system messages should be displayed in the user's interface language.
At a minimum, the following languages should be provided:
• Ukrainian
• Russian
• English
Administrative part
The administrator should be able to:
• view all lessons;
• view lesson statuses;
• view confirmation history;
• view automatically confirmed lessons;
• view Tutor No Show;
• view Student No Show.
Search and filtering
It is necessary to implement search and filtering of lessons by statuses:
• Scheduled
• Confirmed
• Pending Confirmation
• Completed
• Auto Confirmed
• Tutor No Show
• Student No Show
• Cancelled
Basic statistics
For the teacher:
• total lessons;
• completed lessons;
• confirmed by the student;
• automatically confirmed;
• Tutor No Show;
• Student No Show.
For the student:
• total lessons;
• completed lessons;
• Tutor No Show;
• Student No Show;
• lessons awaiting confirmation.
Important
This project does not include the development of the Tutor Wallet and payment system for teachers.
This project does not include the administrative control panel for the platform.
The main task of the project: to implement a system for class confirmation, attendance control, confirmation history storage, and related lesson statuses.
Project stack
• Django
• React
After successful completion of the project, further cooperation may be possible for the development of the Student Dashboard, Tutor Dashboard, financial logic of the platform, and payment system for teachers.