Room & Assets — описание курса
Room & Assets — описание курса
Нам необходимо разработать кроссплатформенное (Windows + Linux) приложение Room & Assets для учёта аудиторий, единиц инвентаря и бронирований. Приложение как минимум должно:
- отображать каталог ресурсов с поиском и фильтрами;
- позволять создавать, редактировать и удалять брони;
- проверять пересечение интервалов для одного и того же ресурса и блокировать конфликтующие записи;
- хранить временные метки в UTC (ISO-8601 / RFC 3339), отображать их в локальной таймзоне пользователя.
Стек технологий
В лабораторных используется веб-стек:
- Фронтенд: TypeScript + React + Vite, MUI, MSW
- Бэкенд: Node.js + Fastify v5 + Prisma + Postgres
- Инфраструктура: Docker Compose, NGINX
- CI/CD: GitHub Actions, GitHub Pages (фронт), Render (бэк)
Минимальные требования к среде разработчика — Node.js 20.19+/22.12+, Docker с плагином Compose v2, Git.
Свобода выбора инструментария. Перечисленный выше стек — это то, на чём построены инструкции в лабораторных, которые мы с вами посмотрим. При большом желании, реализовать проект можно на любом другом инструментарии, обеспечивающем эквивалентный результат и выполнение всех требований к финальной сдаче: например, Tauri, Avalonia UI, JavaFX, SvelteKit + Hono или любой другой связке. В этом адаптацию рассмотренных концепций (компонентный подход, моки, контейнеризация, CI/CD) под выбранный стек - выполняете самостоятельно.
Лабораторные работы
Целевая структура репозитория и пошаговый чек-лист итоговой сдачи описаны в лабораторной «Итоговое задание».
NVM, npm, инициализация Vite + React + TS
vite.config, tsconfig, .env, package.json, npm run dev
src/, Button и Header, CSS-модули, MUI
MSW, axios, AuthContext, таблица аудиторий
Dockerfile фронтенда, NGINX, базовый compose
Fastify v5, плагины, TypeBox, in-memory ручки
Prisma + Postgres, общий compose, NGINX, Scalar
GitHub Actions, GitHub Pages, Render
Чек-лист и требования к финальной сдаче