Studium.
Навчальна платформа для студентів, викладачів та адміністраторів.
Інтерфейс Studium. Справжні екрани студентського, викладацького й адміністративного кабінетів.
Навчальна платформа для різних ролей
Studium — навчальна платформа, яку я розробив самостійно. Студенти працюють із завданнями, тестами, матеріалами, оцінками й розкладом; викладачі керують дисциплінами та перевіряють роботи; адміністратори відповідають за академічну структуру й користувачів.
Frontend реалізував на React/TypeScript, backend — на Java 21/Spring із кількома сервісами за єдиним API gateway. Застосунок працює в тестовому середовищі й розроблявся як навчальний проєкт, а не як комерційна LMS.
Що я розробив
- Окремі React-інтерфейси для ролей, API-інтеграція, завдання й тести.
- Java/Spring сервіси, gateway, JWT-авторизація та розділення даних між сервісами.
- PostgreSQL, файлове сховище MinIO, Kafka-події, сповіщення та тести.
Завдання від публікації до перевірки
Одне завдання проходить через кілька частин системи. Викладач створює його, студент завантажує роботу, викладач виставляє оцінку. На кожному кроці мають правильно працювати права доступу й обробка файлів.
Публікація
Викладач створює завдання для дисципліни та групи. Сервіс зберігає стан завдання й межі доступу.
Здача
Студент надсилає роботу через gateway. Метадані файлу зберігаються в PostgreSQL, сам файл — у MinIO.
Перевірка
Викладач переглядає відповідні роботи й виставляє оцінку або коментар із перевіркою ролі та належності.
Оновлення
Результат стає доступним студенту й може створити сповіщення через систему подій.
Для користувача це один процес, хоча завдання, файли, акаунти й сповіщення обробляються окремими сервісами.
Технічні деталі
Gateway і володіння даними
Frontend працює через один Spring Cloud Gateway. За ним окремі сервіси освіти, розкладів, завдань, тестування, файлів і сповіщень володіють власними схемами даних. Gateway виконує маршрутизацію, перевірки політик доступу та частину агрегації відповідей.
REST використовується для запитів, де відповідь потрібна відразу; Kafka — для подій, на які мають реагувати інші сервіси. Бізнес-логіка не читає таблиці чужих сервісів напряму.
Авторизація на рівні процесів
Ролі включають студента, викладача, адміністратора та власника. Студент може здавати роботи й переглядати власні результати, викладач — керувати своїми дисциплінами, адміністратор — групами, аудиторіями, розкладами й користувачами.
Права перевіряються на backend та gateway, а не лише приховуванням кнопок у браузері. Водночас кожна роль має свій набір сторінок і навігацію.
Файли та сповіщення
Бінарні файли зберігаються в MinIO, метадані — в PostgreSQL. Сервіси завдань посилаються на ідентифікатори файлів і застосовують правила доступу, а file-service відповідає за завантаження та попередній перегляд.
Доменні події передаються через Kafka; notification-service зберігає сповіщення та надає їх застосунку або Telegram-боту. Для тестового середовища також підготував інтеграційні перевірки backend.
Що вийшло
Studium — великий full-stack проєкт з окремими кабінетами студента, викладача й адміністратора. На сторінці показані справжні скриншоти застосунку.
Система розроблена та протестована в непродукційному середовищі. Я не подаю її як комерційне розгортання з реальними користувачами.

