Monorepo da plataforma de gestão linguística, cultural e documental. O projecto está dividido em três aplicações:
api: backend NestJS com Prisma, PostgreSQL, autenticação, RBAC, auditoria, gestão de conteúdos, eventos, media e módulos linguísticos.back-office: painel administrativo Next.js para operadores, supervisores e administradores.public-platform: portal público Next.js com conteúdos institucionais, artigos, eventos, dicionário e áreas públicas.
- Node.js 20 ou superior
- NestJS
- Prisma
- PostgreSQL
- Next.js
- React
- TypeScript
- pnpm
- Node.js 20 ou superior
- pnpm 9
- Docker, para subir o PostgreSQL localmente
Copie os ficheiros de exemplo:
cp api/.env.example api/.env
cp back-office/.env.example back-office/.env
cp public-platform/.env.example public-platform/.envOs valores de api/.env.example permitem executar o projecto localmente com PostgreSQL e sem os serviços opcionais de R2, Resend e IA. Os respectivos módulos só precisam das credenciais quando essas funcionalidades forem utilizadas.
cd api
docker compose up -dO PostgreSQL ficará disponível em localhost:5439.
cd api
pnpm install
cd ../back-office
pnpm install
cd ../public-platform
pnpm installcd api
pnpm prisma migrate dev
pnpm prisma db seedPara preparar directamente uma base completa de demonstração:
pnpm db:setup:demoPara repovoar completamente os dados de demonstração:
pnpm db:seed:demo| Perfil | Password | |
|---|---|---|
| Admin | admin@linguistic.com | admin123 |
| Supervisor | supervisor@linguistic.com | demo123 |
| Operador | operator@linguistic.com | operator123 |
| Operador 2 | operator2@linguistic.com | demo123 |
Execute cada aplicação num terminal separado.
cd api
pnpm start:devAPI: http://localhost:4000
Documentação Swagger: http://localhost:4000/api/docs
Documentação Scalar: http://localhost:4000/api/reference
cd back-office
pnpm devBack-office: http://localhost:3000
cd public-platform
pnpm dev -- -p 3002Portal público: http://localhost:3002
Antes de considerar o projecto pronto:
cd api
pnpm lint
pnpm typecheck
pnpm prisma:validate
pnpm test -- --runInBand
pnpm buildcd back-office
pnpm lint
pnpm typecheck
pnpm buildcd public-platform
pnpm lint
pnpm typecheck
pnpm buildAPI:
pnpm start:dev
pnpm build
pnpm test
pnpm test:e2e
pnpm lint
pnpm typecheck
pnpm prisma:validate
pnpm db:setup:demoBack-office:
pnpm dev
pnpm build
pnpm lint
pnpm typecheckPortal público:
pnpm dev
pnpm build
pnpm lint
pnpm typecheck- Não versionar
.env,.next,dist,node_modules, logs ou ficheiros de cache. - Confirmar que os ficheiros
.env.examplecontêm apenas valores de exemplo. - Remover repositórios Git internos de
api,back-officeepublic-platformcaso queira publicar tudo como um único repositório. - Definir a licença do projecto, se aplicável.