Веб-сервер на NestJS для приема и сохранения GPS координат от мобильных устройств.
Сервер предоставляет API для приема GPS координат от мобильных устройств и сохранения их в базу данных PostgreSQL. Поддерживает как одиночные запросы, так и пакетную отправку координат.
Отправка одной GPS точки
{
"deviceId": "device123",
"latitude": 55.7558,
"longitude": 37.6176,
"accuracy": 10.5,
"altitude": 150.0,
"speed": 5.2,
"bearing": 45.0,
"timestamp": 1640995200000,
"provider": "gps"
}Отправка множества GPS точек
{
"locations": [
{
"deviceId": "device123",
"latitude": 55.7558,
"longitude": 37.6176,
"accuracy": 10.5,
"timestamp": 1640995200000
},
{
"deviceId": "device123",
"latitude": 55.7559,
"longitude": 37.6177,
"accuracy": 8.2,
"timestamp": 1640995260000
}
]
}- Клонируйте репозиторий
- Установите зависимости:
yarn install- Настройте базу данных PostgreSQL
- Скопируйте файл конфигурации:
cp env.example .env- Отредактируйте
.envфайл с вашими настройками базы данных
# Разработка
yarn start:dev
# Продакшн
yarn start:prod# Запуск всех сервисов (приложение + база данных)
docker-compose up -d
# Просмотр логов
docker-compose logs -f
# Остановка сервисов
docker-compose down
# Остановка с удалением данных
docker-compose down -v# Запуск только базы данных для разработки
docker-compose -f docker-compose.dev.yml up -d
# Запуск приложения локально (с подключением к Docker БД)
yarn start:dev
# pgAdmin доступен по адресу http://localhost:8080
# Логин: [email protected], Пароль: admin# Показать все доступные команды
make help
# Запуск продакшн окружения
make up
# Запуск окружения для разработки
make dev-up
# Просмотр логов
make logs
make dev-logs
# Остановка
make down
make dev-down
# Очистка всех контейнеров и данных
make clean# Сборка образа приложения
docker build -t child-tracker-server .
# Запуск только базы данных
docker-compose up postgres -d
# Запуск приложения (требует запущенную БД)
docker run -p 3000:3000 --env-file .env child-tracker-server├── src/
│ ├── entities/ # Модели базы данных
│ │ └── location.entity.ts
│ ├── dto/ # DTO для валидации
│ │ ├── location.dto.ts
│ │ └── location-batch.dto.ts
│ ├── location/ # Модуль для работы с GPS координатами
│ │ ├── location.controller.ts
│ │ ├── location.service.ts
│ │ └── location.module.ts
│ └── app.module.ts # Главный модуль приложения
├── Dockerfile # Docker образ для приложения
├── docker-compose.yml # Docker Compose конфигурация
├── .dockerignore # Исключения для Docker
├── init.sql # SQL скрипт инициализации БД
└── env.example # Пример переменных окружения
- NestJS
- TypeORM
- PostgreSQL
- class-validator
- class-transformer
- Docker
- Docker Compose
MIT