Repositório que contém todo o código que se refere ao backend que mantém o site de pé!
- Runtime: Nodejs, v20.6
- Package Manager: pnpm v8
- Conteinerização: Docker v24 e Docker Compose v2
- Sistema Operacional: Pode usar o que preferir, garanto suporte a MacOS, Linux e WSL. Caso enfrente algum problema com Windows, clique aqui e descreva seu problema, para que possamos te auxiliar :)
Com as ferramentas necessárias instaladas, clone o repositório
# Clone o repositório
git clone https://github.com/ufabc-next/ufabc-next-backend.git
# Vá para o diretório do repo
cd ufabc-next-backend
# instale as dependências na raiz
pnpm i
# Rode o comando `build` para que o código tenha acesso as libs internas
pnpm build
# Suba o container docker
docker compose up -d
# Realize a copia das variaveis de ambiente para o arquivo .env
cp -r apps/core/.env.example apps/core/.env
cp -r apps/queue/.env.example apps/queue/.env
# De `start` no projeto
pnpm dev
# Simule o projeto com dados
pnpm populate reset
O projeto tem os seguintes packages e apps, cada um desenvolvido com 100% Typescript
core
: Uma api Fastify, que contém todas as rotas do backend.models
: Schemas do banco utilizando Mongoose, definimos aqui o modelo de dadosqueue
: Processamentos assíncronos utilizando Bullmq que o backend realiza periodicamente para manter consistência no banco de dados
common
: funções utilitárias que podem ser consumidas por um ou mais packages, logger do app é configurado aquiconstants
: Valores constantes que o app dependetsconfig
:tsconfig.json
s utilizados ao longo do monorepotypes
: Tipos comuns do backend
Utilitários que o monorepo possui ja configurado
- TypeScript para tipagem estática
- ESLint para padronizar e realizar o lint do código
- Prettier para formatar o código
- Vitest para realização de testes unitários
- Renovate para manter a saúde das dependências do projeto