104 lines
2.2 KiB
Markdown
104 lines
2.2 KiB
Markdown
# Tech Stack
|
|
|
|
## Stack selecionada
|
|
|
|
### Aplicação
|
|
- Next.js 16
|
|
- React
|
|
- TypeScript
|
|
|
|
### Estilo e UI
|
|
- Tailwind CSS
|
|
- shadcn/ui
|
|
- Lucide Icons
|
|
|
|
### Dados e backend
|
|
- PostgreSQL
|
|
- Prisma ORM
|
|
- Zod
|
|
- React Hook Form
|
|
|
|
### Plataforma e serviços
|
|
- Supabase Database
|
|
- Supabase Auth
|
|
- Supabase Storage
|
|
|
|
### Deploy recomendado
|
|
- Vercel para a aplicação web
|
|
- Supabase para base de dados, autenticação e ficheiros
|
|
|
|
## Justificação da stack
|
|
A stack foi escolhida para maximizar:
|
|
- rapidez de desenvolvimento
|
|
- simplicidade arquitetural
|
|
- boa legibilidade para agentes de IA
|
|
- facilidade de manutenção
|
|
- boa experiência para construir dashboards, formulários, listagens e workflows operacionais
|
|
|
|
## Princípios da arquitetura técnica
|
|
- Uma única codebase full-stack
|
|
- Frontend e backend no mesmo projeto
|
|
- Regras de negócio isoladas da camada visual
|
|
- Base de dados relacional como fonte de verdade
|
|
- Validação partilhada e explícita
|
|
- Preparação para crescer sem reescrever a base
|
|
|
|
## Decisões associadas
|
|
- Não usar backend separado na V1
|
|
- Não usar microserviços na V1
|
|
- Não usar GraphQL na V1
|
|
- Não desenvolver app mobile nativa na V1
|
|
|
|
## Componentes por responsabilidade
|
|
|
|
### Next.js
|
|
Responsável por:
|
|
- interface da aplicação
|
|
- routing
|
|
- páginas
|
|
- server components
|
|
- route handlers
|
|
- server actions, quando fizer sentido
|
|
|
|
### Prisma
|
|
Responsável por:
|
|
- schema de dados
|
|
- migrations
|
|
- acesso type-safe à base de dados
|
|
|
|
### PostgreSQL
|
|
Responsável por:
|
|
- persistência principal
|
|
- integridade relacional
|
|
- consultas operacionais e relatórios simples
|
|
|
|
### Supabase
|
|
Responsável por:
|
|
- alojamento da base de dados PostgreSQL
|
|
- autenticação base
|
|
- storage para ficheiros e imagens, quando ativado
|
|
|
|
### Tailwind + shadcn/ui
|
|
Responsáveis por:
|
|
- consistência visual
|
|
- rapidez na criação de UI
|
|
- componentes reutilizáveis
|
|
|
|
### Zod + React Hook Form
|
|
Responsáveis por:
|
|
- validação
|
|
- formulários previsíveis
|
|
- redução de erros de input
|
|
|
|
## Dependências candidatas adicionais
|
|
- TanStack Table para tabelas operacionais
|
|
- date-fns para datas
|
|
- clsx / tailwind-merge para composição de classes
|
|
|
|
## Itens adiados
|
|
- filas assíncronas
|
|
- Redis
|
|
- serviços de eventos
|
|
- arquitetura multi-tenant
|
|
- monitorização avançada
|