O back-end do projeto é desenvolvido em Nest.js e utiliza o TypeORM para lidar com as operações de banco de dados. Ele oferece funcionalidades relacionadas às contas de usuários, autenticação, e gerenciamento de favoritos. O sistema de autenticação é baseado em tokens JWT (JSON Web Token), proporcionando uma camada de segurança para rotas restritas.
- src/
- account/
account.controller.ts
: Controller para criar, obter e editar contas de usuário.account.service.ts
: Service para manipulação de dados relacionados a contas de usuário.account.entity.ts
: Entity TypeORM para a tabela de contas no banco de dados.
- auth/
auth.controller.ts
: Controller para autenticação, incluindo a geração de tokens JWT.auth.guard.ts
: Guard de autenticação para restringir o acesso a rotas protegidas.
- favorites/
favorites.controller.ts
: Controller para criar e deletar favoritos, associando-os a uma conta específica.favorites.service.ts
: Service para manipulação de dados relacionados a favoritos.favorites.entity.ts
: Entity TypeORM para a tabela de favoritos no banco de dados.
- common/
utils/
: Decoradores personalizados, incluindo@public()
para rotas sem validação de token.
- account/
-
/account/
POST /create
: Cria uma nova conta de usuário.GET /:id
: Obtém os detalhes de uma conta específica.PUT /:id
: Edita os detalhes de uma conta existente.
-
/auth/
POST /login
: Autentica um usuário e gera um token JWT.
-
/favorites/
POST /create
: Cria um novo favorito associado a uma conta específica.DELETE /:id
: Deleta um favorito específico.
O projeto utiliza o class-validator
para realizar validações de dados, garantindo a integridade e consistência das informações fornecidas nas requisições.
- Clone o repositório:
git clone git@github.com:GabrielFeBe/TrybeTunes-BE.git
- Instale as dependências:
npm install
- Configure o banco de dados no arquivo
app.module.ts
- Execute o servidor:
npm start
- Nest.js
- TypeORM
- JSON Web Token (JWT)
- Class Validator
- Não foi criada validação para checar se o usuario que está atualizando conta, deletando favorito ou criando favorito é o mesmo que está logado, caso queira fazer é simples não fiz pois não é necessario para o projeto.
Contribuições são bem-vindas! Para sugestões, problemas ou melhorias, por favor, abra uma issue ou envie um pull request.