2.0 KiB
2.0 KiB
Image List Backend
Учебный backend-проект — упрощенный Instagram для обучения студентов.
Назначение
REST API для работы с изображениями. Используется как практический проект при обучении backend-разработке на NestJS.
Стек
- Framework: NestJS 11
- Language: TypeScript
- Runtime: Node.js
- Database: PostgreSQL (shared-db) + TypeORM
- CI/CD: Drone CI + ci-templates
Структура
src/
├── main.ts # Точка входа
├── app.module.ts # Корневой модуль (ConfigModule + TypeORM)
├── app.controller.ts # REST контроллер
├── app.service.ts # Бизнес-логика (TypeORM Repository)
├── entities/
│ ├── author.entity.ts # Entity: authors
│ └── image.entity.ts # Entity: images
├── health/
│ ├── health.module.ts # Health check модуль
│ └── health.controller.ts # GET /health
├── schemas.ts # Swagger DTO
├── types.ts # TypeScript типы
├── consts.ts # Константы
└── api.responses.ts # Форматы ответов API
Команды
npm install # Установка зависимостей
npm run start:dev # Запуск в dev режиме
npm run build # Сборка
npm run start:prod # Production запуск
Деплой
- CI/CD: Drone CI через ci-templates (service.yaml + .drone.yml)
- Namespace: backend-for-learning
- URL: https://image-list.vigdorov.ru
- Health: GET /health
Локальная разработка
Переменные окружения в .env.local:
DATABASE_HOST— хост PostgreSQL (localhost для dev через NodePort :30432)DATABASE_PORT,DATABASE_USER,DATABASE_PASSWORD,DATABASE_NAME