API de livros que conecta usuários e autores. O usuário pode escolher seus livros, gêneros literários e autores favoritos, além de fazer comentários e avaliação sobre um livro.
- Abra o terminal e clone este repositório para sua máquina com o seguinte comando:
git clone https://github.com/Lectio-Project/Backend-Lectio.git- Navegue até a pasta do projeto com o comando:
cd Backend-Lectio- Abra o projeto no seu VSCode (Se não tiver instalado, instale-o aqui!):
code .-
Renomei o arquivo .env.example para .env ou crie um arquivo .env na raiz do projeto
4.1 Crie e/ou preencha no arquivo .env a variável de ambiente DATABASE_URL com o link para o seu banco de dados MongoDB
4.2 No arquivo .env crie e/ou preencha o JWT_SECRET_KEY com a sua chave JWT secreta
4.3 No arquivo .env crie e/ou preencha o BUCKET_URL com a URL do seu bucket
4.4 No arquivo .env crie e/ou preencha o BUCKET_APP_KEY com a chave secreta do seu bucket
4.5 No arquivo .env crie e/ou preencha o BUCKET_KEY_ID com o ID do seu bucket
4.6 No arquivo .env crie e/ou preencha o BUCKET_NAME com o nome do seu bucket
-
Verifique se você possui o Node.js instalado em sua máquina, caso não instale-o, Baixe o Node.js aqui!
-
Instale as dependências do projeto com o comando:
npm install- Rode o seguinte comando para inicializar o servidor em desenvolvimento:
npm run start:dev- Para traduzir seu schema do Prisma ORM em código TypeScript que você pode usar em seu aplicativo para interagir com o banco de dados de forma segura e tipada rode o comando abaixo:
npx prisma generate- Para aplicar todas as alterações necessárias para garantir que o esquema do banco de dados corresponda ao seu esquema definido no arquivo rode o seguinte comando:
npx prisma db push| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| POST | users | sign-up | Nenhum | Nenhum | name, email, password, confirmPassword |
| POST | users | sign-in | Nenhum | Nenhum | email, password |
| GET | users | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | users | Nenhuma | id | JsonWebToken | Nenhum |
| PATCH | users | Nenhuma | Nenhum | JsonWebToken | name, email, password, confirmPassword, username, bio, imageUrl |
| DELETE | users | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| GET | genres | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | genres | Nenhuma | id | JsonWebToken | Nenhum |
| POST | genres | Nenhuma | Nenhum | JsonWebToken | gender |
| PATCH | genres | Nenhuma | id | JsonWebToken | gender |
| DELETE | genres | Nenhuma | id | JsonWebToken | Nenhum |
| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| GET | authors | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | authors | Nenhuma | id | JsonWebToken | Nenhum |
| POST | authors | Nenhuma | Nenhum | JsonWebToken | imageUrl, name, carrerDescription, birthplace, genresId |
| PATCH | authors | Nenhuma | id | JsonWebToken | imageUrl, name, carrerDescription, birthplace, genresId |
| DELETE | authors | Nenhuma | id | JsonWebToken | Nenhum |
| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| GET | comments | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | comments | Nenhuma | id | JsonWebToken | Nenhum |
| POST | comments | Nenhuma | Nenhum | JsonWebToken | text, bookGrade, bookId |
| PATCH | comments | Nenhuma | id | JsonWebToken | text, bookGrade, bookId |
| DELETE | comments | Nenhuma | id | JsonWebToken | Nenhum |
| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| GET | thought | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | thought | Nenhuma | id | JsonWebToken | Nenhum |
| POST | thought | Nenhuma | Nenhum | JsonWebToken | phrase, bookId |
| PATCH | thought | Nenhuma | id | JsonWebToken | phrase, bookId |
| DELETE | thought | Nenhuma | id | JsonWebToken | Nenhum |
| Método | Rota | Subrota | Parâmetro | Headers | Campos |
|---|---|---|---|---|---|
| GET | books | Nenhuma | Nenhum | JsonWebToken | Nenhum |
| GET | books | Nenhuma | id | JsonWebToken | Nenhum |
| POST | books | Nenhuma | Nenhum | JsonWebToken | name, synopsis, publishingCompany, publishYear, genderId, authorId |
| PATCH | books | Nenhuma | id | JsonWebToken | name, synopsis, publishingCompany, publishYear, genderId, authorId |
| DELETE | books | Nenhuma | id | JsonWebToken | Nenhum |
| Rota | Funcionalidade |
|---|---|
| users | Cadastro de usuário |
| users | Login de usuário |
| users | Listar todos os usuários |
| users | Listar usuário |
| users | Atualização de usuário |
| users | Exclusão de usuário |
| Rota | Funcionalidade |
|---|---|
| genres | Cadastro de gênero |
| genres | Listar todos os gêneros |
| genres | Listar gênero |
| genres | Atualização de gênero |
| genres | Exclusão de gênero |
| Rota | Funcionalidade |
|---|---|
| books | Cadastro de livro |
| books | Listar todos os livros |
| books | Listar livro |
| books | Atualização de livro |
| books | Exclusão de livro |
| Rota | Funcionalidade |
|---|---|
| authors | Cadastro de autor |
| authors | Listar todos os autores |
| authors | Listar autor |
| authors | Atualização de autor |
| authors | Exclusão de autor |
| Rota | Funcionalidade |
|---|---|
| thought | Cadastro de gênero |
| thought | Listar todos os gêneros |
| authors | Listar gênero |
| thought | Atualização de gênero |
| thought | Exclusão de gênero |
| Rota | Funcionalidade |
|---|---|
| comments | Cadastro de comentário |
| comments | Listar todos os comentários |
| comments | Listar comentário |
| comments | Atualização de comentário |
| comments | Exclusão de comentário |
- Link da API em produção:
https://backend-lectio-r3do.onrender.com/
- Link do Swagger:
https://backend-lectio-r3do.onrender.com/api
© MIT License 2024, feito com 🖤 por Alisson Romão, Vanessa Ribeiro, Erick Staviasz e Rochel Rodrigues.