CRUD básico para um catálogo de filmes, com autenticação e cadastro de usuários e autenticação em todos os endpoints de filmes.
Tecnologias utilizadas:
- Typescript
- Nest.js
- Docker
- JWT
- TypeORM
- PostgreSQL
- Swagger
Experiência:
- Typescript: 2 meses
- Nest.js: 4 dias
- Docker: 6 meses
- JWT: 4 meses
- TypeORM: 4 dias
- PostgreSQL: 4 dias
- Swagger: 1 dia
- Heroku: 2 meses
- Redis: nenhuma
Por não ter tanta experiência com Nest.js não consegui finalizar a configuração do docker, os contâineres estão funcionando, o docker compose está funcionando, no entanto não consigo rodar o app dentro do container por problemas com a porta. Por conta disso, não tive tempo de fazer o deploy no Heroku.
Por falta de tempo também não implementei o Redis como ferramenta de cache para reduzir o número de acessos ao banco.
Muitos dos comentários restantes nos arquivos deste projeto se devem ao fato de que eu ainda estava lendo as documentações e pesquisando para implementar soluções mais orgânicas e dinâmicas. Como, por exemplo, utilizar migrations para automatizar a população do database.
Só tenho a agradecer a oportunidade de participar do processo, foram dias intensos e de muita aprendizagem.
Transformar o gênero dos filmes em uma tabela independente no database, criando uma relação entre movies e genres. Alguns desses arquivos estão feitos, só não terminei a implementação por falta de tempo.
Transformar as interfaces em classes para que possa utilizar o swagger para documentá-las usando o @ApiBody().
Criar validações para o corpo das requisições utilizando classes no Nest.js ou uma biblioteca externa como o Joi.
Organizar melhor a arquitetura do projeto em folders adequados.
Automatizar a população do database de forma mais eficiente, no momento estou rodando as migrations manualmente.