Hangar é uma aplicação para acompanhar a evolução da carteira de contratos com entrada mensal por projeto, permitindo análises de receita, custos e margens (bruta e líquida). O foco é consolidar dados por Tier → Cliente → Projeto, gerar dashboards e exportar dados em Excel.
- Cadastro de Tiers, Clientes e Projetos.
- Cadastro de Impostos percentuais por projeto com histórico.
- Registro mensal com receita bruta, líquida, custo, status (planejado/realizado) e observações.
- Dashboard anual com filtros por Tier/Cliente/Projeto e métricas de receita/custo/margem.
- Exportação Excel com abas por Cliente, por Tier e consolidado geral.
- Frontend: React + Vite + TypeScript + Tailwind
- Backend: Node.js + Fastify + Prisma
- Banco: Supabase (Postgres)
- Deploy: Netlify (frontend) + Render (API)
apps/web— frontendapps/api— backendpackages/shared— utilitários/tipos
-
Instalar dependências:
npm install
-
Configurar API:
- Crie
apps/api/.envcom:DATABASE_URL=postgresql://... FRONTEND_URL=http://localhost:5173
- Crie
-
Rodar API e Web:
npm run dev:api npm run dev:web
- Build command:
npm run build:web - Publish directory:
apps/web/dist - Env var:
VITE_API_URL= URL pública da API no Render
Passos
- Acesse Render → New → Web Service → conecte o repositório.
- Configure:
- Root Directory:
apps/api - Build Command:
npm install && npm run build - Start Command:
node dist/index.js
- Root Directory:
- Environment Variables:
DATABASE_URL= Supabase PostgresFRONTEND_URL= URL do Netlify (ex.:https://airhangar.netlify.app)
- Deploy.
Notas
- O Render free pode entrar em sleep com inatividade.
- O Supabase é o banco e não hospeda sua API Fastify.
- Receita líquida é persistida, não recalcula automaticamente ao mudar imposto.
- Ao alterar imposto, deve-se escolher quais registros serão recalculados.
- Login Microsoft (Azure AD) e controle de permissões
- Upload de logomarca por cliente
- Versão iOS conectada ao mesmo backend