first commit
This commit is contained in:
103
docs/19_TECH_STACK.md
Normal file
103
docs/19_TECH_STACK.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user