Aplicacao de sistemas integrados para redes de hotelaria.
Esta e a API desenvolvida em Node.js com MongoDB para o HOptimum, uma aplicacao usada como trabalho de conclusao de curso em Engenharia da Computacao em 2022.
npm install
copy .env.example .env
npm run lint
npm startO projeto depende de um MongoDB acessivel no momento da inicializacao.
Variaveis de ambiente esperadas:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/hoptimum
AUTH_TOKEN_SECRET=replace-with-a-long-random-secret
ESP_SHARED_SECRET=replace-with-a-device-shared-secret- O processo sobe a porta HTTP antes do bootstrap completo apenas para expor health checks.
- A aplicacao so fica pronta para trafego funcional depois de conectar no MongoDB.
resetAllConnections()so roda quandoALLOW_DESTRUCTIVE_STARTUP_TASKS=true.- Enquanto o bootstrap nao terminar, rotas fora de health retornam
503 Service unavailable. - Se a conexao inicial com o MongoDB falhar por erro transitorio, o processo aplica retry controlado antes de encerrar.
PORT: porta HTTP do servico.MONGODB_URI: string de conexao do MongoDB. Obrigatoria.MONGODB_CONNECT_MAX_ATTEMPTS: quantidade maxima de tentativas de conexao inicial.MONGODB_CONNECT_RETRY_DELAY_MS: intervalo entre tentativas de conexao inicial.AUTH_TOKEN_SECRET: segredo usado para assinar tokens de autenticacao. Obrigatoria.AUTH_TOKEN_TTL_MS: TTL dos tokens de autenticacao em milissegundos.ESP_SHARED_SECRET: segredo compartilhado exigido no headerx-esp-secretpara/api/auth.ALLOW_DESTRUCTIVE_STARTUP_TASKS: habilita tarefas destrutivas de bootstrap apenas quando explicitamentetrue.ALLOWED_WS_ORIGINS: lista separada por virgula de origins permitidas para WebSocket.TZ: timezone do processo.
GET /health/liveness: indica que o processo esta vivo.GET /health/readiness: indica se MongoDB e tarefas obrigatorias de bootstrap estao estaveis.