Backend da aplicação FlamaAI para análise de risco de fogo.
- NestJS - Framework Node.js progressivo
- Better Auth - Sistema de autenticação moderno
- PostgreSQL - Banco de dados relacional
- PostGIS - Extensão geoespacial do PostgreSQL
- Drizzle ORM - ORM TypeScript moderno
- TypeScript - Superset tipado do JavaScript
Antes de começar, certifique-se de ter instalado:
- Node.js (v18 ou superior)
- pnpm
- PostgreSQL com extensão PostGIS
- Clone o repositório
- Instale as dependências:
pnpm install- Crie um arquivo
.envna raiz do projeto:
DATABASE_URL=postgresql://usuario:senha@localhost:5432/flamaai
PORT=3000- Certifique-se de que o PostgreSQL está rodando e que a extensão PostGIS está instalada:
CREATE EXTENSION IF NOT EXISTS postgis;- Execute as migrações do banco de dados:
pnpm run db:migrate# desenvolvimento
pnpm run start:dev
# produção
pnpm run start:prod# Gerar migrações
pnpm run db:generate
# Aplicar migrações
pnpm run db:migrate
# Push do schema (desenvolvimento)
pnpm run db:push
# Abrir Drizzle Studio
pnpm run db:studioO backend utiliza Better Auth com as seguintes rotas:
POST /api/auth/sign-up/email
Content-Type: application/json
{
"email": "usuario@exemplo.com",
"password": "senha123",
"name": "Nome do Usuário"
}POST /api/auth/sign-in/email
Content-Type: application/json
{
"email": "usuario@exemplo.com",
"password": "senha123"
}POST /api/auth/sign-outGET /api/auth/get-session- Auth - Autenticação e autorização
- Weather - Dados meteorológicos
- Geocoding - Geocodificação e localização
- Fire Risk - Análise de risco de fogo
- Map - Visualização em mapas
# testes unitários
pnpm run test
# testes e2e
pnpm run test:e2e
# cobertura de testes
pnpm run test:cov