O projeto foi dividido em dois repositórios, sendo esse aqui para o back-end. Para acessar o repositório do front-end, clique aqui.
Capadura Ʃ uma ferramenta onde os leitores podem compartilhar avaliaƧƵes de livros, fazer comentƔrios durante a leitura e descobrir novos livros.
- Typescript
- Node.js
- Fastify
- Prisma ORM
- AWS S3
- AWS Cloudfront
- Redis
- PostgreSQL
- Registro de usuƔrio
- Sistema de autenticação com e-mail/senha
- Sistema de autenticação com Google OAuth
- Autenticação com JWT
- Criar livro
- Editar livro
- Listagem dos dados do livro
- Criar leitura de livro
- Editar leitura de livro
- Deletar leitura de livro
- Criar progresso de leitura
- Editar progresso de leitura
- Deletar progresso de leitura
- Listagem de todos os progressos de uma leitura
- Listagem de leituras finalizadas do usuƔrio
- Listagem da quantidade de leituras finalizadas por livro
- Listagem da quantidade de pƔginas lidas por dia do usuƔrio
- Adicionar avaliação de livro
- Editar avaliação de livro
- Listagem da quantidade de avaliaƧƵes por nota do livro
- Listagem da quantidade de avaliaƧƵes por nota do usuƔrio
- Adicionar livros favoritos do usuƔrio
- Remover livros favoritos do usuƔrio
- Listagem de livros favoritos por usuƔrio
- Criar/editar/deletar de lista de livros
- Adicionar/deletar livro na lista
- Remover livro da lista
- Listagem das listas do usuƔrio
- Listagem dos livros de uma lista do usuƔrio
- Curtir livro
- Descurtir livro
- Listagem de livros curtidos por usuƔrio
- Total de curtidas por livro
- Rota para trazer os dados do usuƔrio por id/nome de usuƔrio
- Editar informaƧƵes do perfil do usuƔrio
- Seguir usuƔrios
- Desseguir usuƔrios
- Rota para saber se o usuƔrio atual segue o perfil que estƔ vendo
- Rota para saber se o usuƔrio atual Ʃ seguido pelo perfil que estƔ vendo
- Listagem de quem o usuƔrio segue/Ʃ seguido
- Contagem de quantos o usuƔrio segue/Ʃ seguido
- Criar e listar as últimas atividades do usuÔrio
- Curtir livro
- Iniciar/pausar/retomar leitura
- Adicionar progresso de leitura
- Avaliação de livro
Para quem deseja contribuir: recomendo abrir uma discussão com a alteração que deseja fazer por meio de uma issue, ou uma discussão ou fale comigo diretamente. Estarei aberto para novas implementações ou sugestões :)
- Isolar a camada de DTO
- Isolar a camada de entidades
- Testes unitÔrio/integração e e2e em toda a aplicação
- Documentação das rotas
Caso precise fazer upload de imagens, as variƔveis da S3 e do Cloudfront devem ser preenchidas com as respectivas chaves.
S3_BUCKET_NAME=
S3_BUCKET_REGION=
S3_ACCESS_KEY=
S3_SECRET_ACCESS_KEY=
CLOUDFRONT_BASE_URL=
CLOUDFRONT_DISTRIBUTION_ID=
CLOUDFRONT_PRIVATE_KEY=
CLOUDFRONT_KEY_PAIR_ID
Caso precise fazer login atravƩs do OAuth com Google, a variƔvel GOOGLE_CLIENT_ID
e GOOGLE_SECRET_ID
deverão ser criadas através do serviço de OAuth do Google e inseridas manualmente.
MIT Ā© Vinicius Eidy Okuda