Проектирование образовательной системы 42.*
Мы подошли к необходимости создания версии сайта 42, которая будет на практике применяться в школах. Если раньше нам можно было простить некрасивый интерфейс и не всегда быструю работу, коммерческие клиенты этого не простят. Какие же задачи нужно решить при разработке системы?
- Модульность.
- Масштабируемость.
- Контроль версий.
- Множественность клиентов.

Итак, система будет состоять из нескольких модулей.
Три «движка» обеспечат соответствующие функции. Game engine обеспечит все математические расчеты. Knowladge Base engine обеспечит работу с энциклопедий, хранение терминов и статей, версии и другие функции. User Engine обеспечит работу с пользователями (учителя, ученики, пользователи демо).
Внешнее API позволит получать доступ к системе таким клиентам, как Flash-приложение или сервер, установленный прямо в школе.
x-Core предназначен для вынесения в общий модуль всех рутинных функций.
Желтыми прямоугольниками показаны все клиенты системы, в том числе 42.Школа, которая будет находиться на том же сервере.
Отдельным важным элементом является модуль Администрирования. Выполненный в виде отдельного сайта, он предоставит нам инструмент для настройки движков, работы с базой данных.
Для каждого модуля будет написано ТЗ, включающее в себя то, что должно получится на выходе, а также доступные для использования функции (API других модулей). Таким образом, можно эффективно разбить разработку на несколько исполнителей. В будущем, при высоких нагрузках, возможно разнести модули по серверам.
