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.