E-School testing system

Web service for the electronic education system of Moscow and the Moscow region.
The development combines the tools to create, pass, evaluate and upload the results in the electronic diary.
2017 - present time
WebPack
Hibernate
Redux
Docker
PostgreSQL
React
Kotlin
Spring
Java
800 requests per second
processed the service at peak load during the Spring 2020 lockdown.
2.8 million users
total number of unique registered users
1 500 schools
in Moscow and the Moscow region use the system to test students' knowledge
65 000 tests
in the database
sets of tasks used by teachers daily
CLIENT
Moscow DIT

The Moscow Department of Information Technology is an executive agency that designs infrastructure infosystems and is engaged in the digital transformation of the capital's municipal services.
In 2017, DIT launched the Moscow E-School educational project, which includes the web service "Testing system".

We had to develop an online service that would help simplify the routine tasks of teachers and methodologists when creating homework and tests and give students a modern digital interface for completing them.

Thanks to the functionality of the testing system and all the integrations, users can solve the usual tasks of the learning process in the web interface from anywhere with Internet access.
Task
FrontEnd — 3 developers
BackEnd — 3 developers
QA engeneer
PM — project manager
Team and technologies

Key service tools

Homework builder

Provides the ability to set the number of blocks with questions and assign them difficulty levels, select tasks for tests, and set types of answers from built-in sets.
Performance of control tests and homework by students. There are options for time limits, and display/hide task results.
1
2

Task completion

Automatic result check

After completing the test, the system automatically calculates a score based on the value of all correctly completed tasks.
Service allows you to automatically create tests from the testing system database to specified parameters.
3
4

Test autogeneration

History and Results log

Teachers, students, or their legal representatives can track the results of the curriculum tests in their personal accounts.
The global testing system is integrated with the Moscow E-School, which is the basis for the entire digital educational process.
5
6

Integrations with MES

Project Development

2017 — MVP

2017 — MVP

We implemented the basic functionality of the service: the creation, passing and autochecking tests.

2018-2019 - new functionality and continuous improvements

2018-2019 - new functionality and continuous improvements

We enhanced the service with a lot of new features, including:

a separate database of reference tasks to create new tests;
expansion of task types;

matching tasks with the topics and didactic units of the curriculum;

expansion of the task builder capabilities, as well as the variability of ways to pass the tests and their conditions (maximum time, number of attempts, order of answers, etc.);

displaying the statistics of passing the tasks.

We imported into the database a large number of tests from external sources.

2020 - load growth during the lockdown and global refactoring

2020 - load growth during the lockdown and global refactoring

Integration with ESIA, a unified identification and authentication system (state services) for user authorization
To improve fault tolerance metrics under the sharply increased load, we optimized database queries, which facilitated interaction with the backend several times over,
redesigned API scripts to optimize imported data from external services and integrations,
performed a large refactoring of the accumulated legacy code.

2021-2022

2021-2022

We launched the autogeneration of unique versions of the tests from a material database;
We are modernizing UI/UX in interfaces for teachers and methodologists;
We are expanding the logic of the test scoring system with new methods;
Separating the Testing System from the MES Library data architecture into a stand-alone database.

Discuss a joint project