Este projeto é uma aplicação dividida em front-end e back-end e foi estruturada seguindo o modelo monorepo gerenciado pelo Turbo. O backend foi desenvolvido com NestJS e o frontend utiliza Vite.
- Backend: NestJS, TypeORM, AWS SDK (para integração com serviços como S3 e SES).
- Frontend: Vite, TailwindCSS, React.
- Monorepo: Gerenciado pelo Turbo.
- Banco de Dados: MySQL rodando via Docker.
O projeto segue uma estrutura de monorepo contendo duas principais pastas: backend
e frontend
dentro de apps
.
migrations
: Contém todas as migrações do banco de dados.src
:config
: Configurações diversas como database, rotas e variáveis de ambiente.lib
: Bibliotecas e utilidades.modules
: Os principais módulos da aplicação como autenticação, chat, pagamentos, entre outros.
scripts
: Scripts auxiliares como geração de migrations e comandos personalizados.
src
:config
: Configurações para rotas e notificações toast.pages
: Componentes principais de cada página.router
: Lógica de roteamento da aplicação.shared
: Componentes compartilhados, hooks, estilos e outros utilitários.
- Docker e Docker Compose
- Node.js
- Yarn
-
Inicialização do Banco de Dados:
docker-compose up -d
-
Execução de Migrations:
# Go to backend folder cd apps/backend # Run migrations yarn typeorm migration:run # Lembre-se de que a env database__uri deve estar configurada corretamente, leia mais em "Instruções Backend"
-
Pronto! Agora para checar você pode usar ferramentas como o MySQL Workbench ou o DBeaver para acessar uma visualização do banco de dados.
-
Instalação das Dependências:
yarn install
-
Configuração de Ambiente: Navegue até a pasta
backend
e crie um arquivo.env
usando o.env.example
como exemplo:cd apps/backend && cp .env.example .env
-
Inicialização do Banco de Dados:
docker-compose up -d
-
Execução de Migrations:
yarn typeorm migration:run
-
Inicie o Backend em Modo Debug:
yarn run backend:debug
Para rodar o frontend, você pode seguir os scripts disponíveis no package.json
principal.
-
Configuração de Ambiente: Navegue até a pasta
frontend
e crie um arquivo.env
usando o.env.example
como exemplo:cd apps/frontend && cp .env.example .env.local
-
Inicie o Frontend em Modo de Desenvolvimento:
yarn run frontend:dev
Você pode executar o backend e o frontend em modo de desenvolvimento simultaneamente usando o script start:dev
do package.json
principal:
yarn start:dev
Mas não se esqueça de configurar o arquivo .env
do backend e o .env.local
do frontend.
Este projeto utiliza serviços da AWS, como o S3 para armazenamento de mídias e o SES para envio de emails. Certifique-se de que você possui as credenciais corretas configuradas no arquivo .env
do backend.
O projeto utiliza Turbo para gerenciar o monorepo. Ele permite a execução de scripts em paralelo e otimiza as builds, tornando o processo de desenvolvimento mais eficiente. Os scripts relacionados ao Turbo podem ser encontrados no package.json
principal.