Sistema completo de gerenciamento de clientes desenvolvido com React (frontend) e NestJS (backend), seguindo as melhores práticas de arquitetura e desenvolvimento.
Para executar toda a aplicação, você precisa ter os seguintes softwares instalados na sua máquina:
-
Docker: Ferramenta de contêinerização que permite criar, implantar e executar aplicações em contêineres.
-
Docker Compose: Ferramenta para definir e gerenciar multi-contêineres Docker. A partir da versão 2.0, o comando
docker-composefoi substituído pordocker compose. -
Make (opcional): Ferramenta de automação de build que pode simplificar a execução de múltiplos comandos Docker através de um arquivo
Makefile.
Certifique-se de que as versões do Docker e Docker Compose são compatíveis com os comandos que você pretende usar:
Antes de executar, certifique-se de criar os arquivos .env e .env.db na pasta /backend. Basta copiar os arquivos de exemplo e renomeá-los:
cp backend/.env.example backend/.env
cp backend/.env.db.example backend/.env.dbdocker-compose up -d: Funciona com versões mais antigas do Docker Compose (antes da versão 2.0).docker compose up -d: Funciona com versões mais recentes do Docker Compose (a partir da versão 2.0).make up: Funciona se você tiver um arquivoMakefileconfigurado com um alvoup.
O frontend ficará disponível em http://localhost:8000, o backend em http://localhost:4000 e a documentação do Swagger em http://localhost:4000/v1/docs.
- 📱 Frontend Documentation - Documentação completa do frontend
- ⚙️ Backend Documentation - Documentação completa do backend
- Docker e Docker Compose
- Node.js (versão 16 ou superior) - apenas para desenvolvimento local
- npm ou yarn - apenas para desenvolvimento local
- Clone o repositório:
git clone https://github.com/gfrancodev/teddy.git
cd teddy- Configure as variáveis de ambiente:
# Backend
cp backend/.env.example backend/.env
cp backend/.env.db.example backend/.env.db
# Frontend
cp frontend/.env.example frontend/.env- Inicie os containers:
docker-compose up -dA aplicação estará disponível em:
- Frontend: http://localhost:8000
- Backend: http://localhost:4000
- Documentação API: http://localhost:4000/v1/docs
O esquema do banco de dados pode ser encontrado em: ./backend/database/schema.sql
| Perfil | Senha | |
|---|---|---|
| Admin | [email protected] | Admin@123 |
| User | [email protected] | User@123 |
O projeto é dividido em duas partes principais:
- React com Feature Driven Design (FDD)
- TypeScript para tipagem forte
- Vite como build tool
- Tailwind CSS para estilização
- React Hook Form para formulários
- NestJS com Onion Architecture
- TypeScript e TypeORM
- PostgreSQL como banco de dados
- JWT para autenticação
- Swagger para documentação da API
| Serviço | Descrição | Porta |
|---|---|---|
| frontend | Interface do usuário em React | 8000 |
| backend | API REST em NestJS | 4000 |
| db | Banco de dados PostgreSQL | 5432 |
| db-migration | Serviço de migração do banco | - |
| db-seed | Serviço de seed de dados iniciais | - |