Сайт с расписанием автобуса 112С для района Северный парк (Томск).
/
├── frontend/ ← React SPA (Vite + TypeScript)
│ ├── src/
│ │ ├── App/ — точка входа, роутинг
│ │ ├── page/ — страницы (Home, Dev, Game)
│ │ ├── widget/ — составные UI-блоки (Map, BusStop, TodaysBuses)
│ │ ├── features/ — функциональные модули
│ │ ├── entities/ — базовые UI-сущности
│ │ └── shared/ — api, common, configs, lib, store, theme, ui
│ ├── public/
│ ├── package.json
│ ├── vite.config.ts
│ ├── tsconfig.json
│ └── .env.example
├── backend/ ← Express + SQLite
│ ├── src/
│ │ ├── index.ts — точка входа
│ │ ├── routes/ — роуты (health)
│ │ └── services/ — сервисы (db)
│ ├── package.json
│ ├── tsconfig.json
│ ├── Dockerfile
│ └── .env.example
├── docker-compose.yml ← backend + shared-proxy network
├── scripts/
│ └── deploy.sh — ручной деплой
├── specs/ ← спецификации фич
├── .github/workflows/ ← CI/CD
│ ├── ci.yml — lint + build на PR
│ └── deploy.yml — деплой на push в main
├── .env.example ← переменные для деплоя
├── context.md
└── README.md
cd frontend
yarn install
yarn devcd backend
npm install
cp .env.example .env
npm run devdocker-compose up -d --buildCI/CD: push в main → GitHub Actions собирает фронтенд, rsync на сервер, docker-compose up -d --build.
Ручной деплой: ./scripts/deploy.sh (требует .env в корне проекта).