Bem-vindo ao repositório do Back-end da plataforma Gamix! Este repositório contém o código-fonte e as lógicas essenciais para a autenticação, gerenciamento de usuários, funcionalidades sociais e outras funcionalidades do servidor da plataforma Gamix.
A plataforma Gamix é uma comunidade que une amantes de jogos, desenvolvedores e entusiastas para criar projetos inovadores na área de jogos. Este repositório contém a implementação do Back-end da plataforma, que é responsável por gerenciar a autenticação dos usuários, perfis de usuário, funcionalidades sociais (seguir/parar de seguir), comunicação com o banco de dados e muito mais.
- Framework: NestJS
- Linguagem: TypeScript
- Banco de Dados: PostgreSQL
- ORM: TypeORM
- Autenticação: JWT (JSON Web Token) com refresh tokens
- Email: AWS SES
- Storage: AWS S3
- Deploy: Vercel
- Testes: Jest com E2E testing
- Containerização: Docker
O projeto segue uma arquitetura baseada em features, organizando o código de forma modular e escalável:
src/
├── entities/ # Entidades do banco de dados
├── features/ # Features organizadas por funcionalidade
│ ├── auth/ # Autenticação (signin, signup, refresh-token)
│ ├── user-management/ # Gerenciamento de usuários
│ └── get-health-status/ # Health check
├── jwt/ # Configurações JWT
├── shared/ # Código compartilhado
└── test/ # Infraestrutura de testes
- Sign In: Login com email e senha
- Sign Up: Registro de novos usuários
- Refresh Token: Renovação segura de tokens
- Proteção de Rotas: Sistema de guards e estratégias JWT
- Listar Usuários: Busca e listagem de usuários
- Perfil do Usuário: Visualização e edição de perfis
- Atualização de Dados: Edição de informações do usuário
- Exclusão de Conta: Remoção de usuários
- Sistema de Seguir: Funcionalidade de seguir/parar de seguir usuários
- Health Check: Monitoramento da saúde da aplicação
- Integração AWS: S3 para storage e SES para emails
- Sistema de Erros: Tratamento padronizado de erros
- Validação: Validação robusta de dados de entrada
- Node.js 18+
- PostgreSQL
- Docker (opcional)
- Clone o repositório:
git clone https://github.com/seu-usuario/gamix-backend.git
cd gamix-backend- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp env.example .env
# Edite o arquivo .env com suas configurações- Execute o banco de dados:
docker-compose up -d- Execute a aplicação:
# Desenvolvimento
npm run start:dev
# Produção
npm run build
npm run start:prod# Executar todos os testes
npm test
# Executar testes com coverage
npm run test:cov
# Executar testes em modo watch
npm run test:watch- Diretrizes de Desenvolvimento - Guia completo de desenvolvimento
- Features - Documentação de cada feature
- API Documentation - Documentação da API
npm run build- Compila o projetonpm run start- Inicia a aplicaçãonpm run start:dev- Inicia em modo desenvolvimentonpm run start:debug- Inicia em modo debugnpm run start:prod- Inicia em modo produçãonpm run test- Executa os testesnpm run test:cov- Executa testes com coveragenpm run lint- Executa o linternpm run format- Formata o código
Para contribuir com o projeto, siga as diretrizes estabelecidas em docs/guidelines.md.
Para dúvidas ou sugestões relacionadas ao Back-end Gamix, entre em contato com o time de desenvolvimento responsável:
Agradecemos por ser parte da comunidade Gamix e por contribuir para a construção de projetos de jogos emocionantes!
© 2024 Gamix. Todos os direitos reservados.