Крупная образовательная организация обратилась к нам за разработкой собственной платформы для онлайн-обучения. Заказчик предоставляет доступ к системе своим партнерам — франчайзи, которые на коммерческой основе используют платформу для проведения онлайн-курсов. Франчайзи могут как предоставлять своим ученикам доступ к курсам Заказчика, так и создавать курсы и тесты в рамках собственных образовательных программ. Сервис, который Заказчик использовал до этого, не устраивал по цене. После составления ТЗ и сметы на разработку, мы совместно с клиентом пришли к выводу, что разработка собственной платформы в перспективе выгоднее использования стороннего сервиса.
Задачи в рамках проекта:
- Собрать требования к необходимому функционалу
- Отрисовать прототипы и дизайн-макеты платформы
- Разработать систему ролей пользователей
- Разработать систему регистрации и авторизации пользователей
- Разработать личные кабинеты пользователей — ученика и франчайзи
- Разработать систему управления платформой
- Разработать формы создания курсов, тестов, домашних заданий
- Разработать прохождение курсов, тестов, домашних заданий
- Настроить облачное хранилище для видео
Техническая реализация и стек Платформа имеет следующую структуру:
- Написанный на Laravel backend, отвечающий за регистрацию, аутентификацию и авторизацию пользователей платформы, хранение и обеспечение авторизованного доступа к курсам, модулям, урокам, тестам и результатам их прохождения.
- Реализованный на JS фреймворке Nuxt 3 frontend, предоставляющий зарегистрированному пользователю интерфейс для взаимодействия с данными.
- Облачное хранилище для стриминга видео-контента курсов.
Для авторизации и контроля прав доступа пользователей к ресурсам и frontend, и backend используют JWT. Наиболее часто запрашиваемые read-only данные на стороне API кешируются в in-memory базе данных redis. Frontend управляет состоянием приложения через фреймворк pinia, который позволяет создавать множество хранилищ и импортировать их в компоненты по мере необходимости и предоставляет централизованное хранилище со встроенным механизмом для сохранения, обновления и извлечения состояния приложения.
Срок разработки: 3,5 месяца