- This was my first go at NestJS
- Applied fundamental NestJS concepts, like modules, controllers, providers, guards and pipes
- Implemented Passport.js
local
andjwt
auth strategies alongside NestJS guards - Better grasp on concepts like dependency injection, IOC and singleton
- New Postgres features like
json_agg
andjson_build_object
- POST
/signup
- POST
/signin
- POST
/urls/shorten
- GET
/urls/:id
- GET
/urls/open/:shortUrl
- DELETE
/urls/:id
- GET
/users/:id
- GET
/ranking
- Database
- Abuse do SQL! Faça o mínimo possível de processamento no navegador.
- Utilize o banco de dados Postgres.
- Modele o banco de dados de acordo com a necessidade.
- Use CONSTRAINS quando aplicável para garantir a lógica de negócio da aplicação.
- Use um campo chamado
createdAt
para armazenar a data de criação das entidades.
- Back-end
- Implemente o back-end da aplicação em Node + Express seguindo a arquitetura de routes, controllers e middlewares.
- Dados sensíveis (como senhas) devem estar criptografadas.
- Proteja sua aplicação contra ataques do tipo SQL Injection.
- Faça deploy do back-end no Heroku (+ Heroku Postgres).
- Procure por Repository Pattern e aplique-o para gerenciar os acessos ao banco de dados.
- Generalize a validação de schemas em um único middleware.
- Desenvolva o front-end da aplicação
- Faça o deploy da aplicação na Vercel