Este projeto é uma API desenvolvida com NestJS, utilizando PostgreSQL como banco de dados e Prisma como ORM. A API fornece endpoints para gerenciar usuários e tutoriais, incluindo operações de criação, leitura, atualização e exclusão (CRUD). Além disso, a API possui autenticação JWT para segurança e documentação gerada automaticamente pelo Swagger.
- Node.js (versão 14 ou superior)
- Docker
- Docker Compose
git clone https://github.com/ULYBR/backend.git
cd backend
Renomeie o arquivo .env.example
para .env
e ajuste as variáveis de ambiente conforme necessário:
mv .env.example .env
O arquivo .env
deve conter as seguintes variáveis:
POSTGRES_USER=username
POSTGRES_PASSWORD=password
POSTGRES_DB=backend
DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}"
JWT_SECRET="sua_chave_secreta_aqui"
Execute o comando abaixo para subir o ambiente usando Docker Compose:
docker-compose up -d
Isso iniciará os serviços do PostgreSQL e do Redis definidos no docker-compose.yml
.
Se ainda não tiver feito isso, instale as dependências do projeto:
npm install
Para criar as tabelas no banco de dados, execute as migrações do Prisma:
npx prisma migrate dev
Para iniciar o servidor em modo de desenvolvimento, execute:
npm run start:dev
O servidor estará disponível em http://localhost:3000
.
A documentação da API gerada pelo Swagger está disponível em:
http://localhost:3000/api/docs
Para rodar os testes da aplicação, use o comando:
npm test
- POST /user/signup: Cria um novo usuário.
- POST /user/login: Realiza o login e retorna um token JWT.
- POST /tutorial: Cria um novo tutorial.
- GET /tutorial: Retorna uma lista de tutoriais com suporte a filtros.
- GET /tutorial/:id: Retorna os detalhes de um tutorial específico.
- PATCH /tutorial/:id: Atualiza um tutorial existente.
- DELETE /tutorial/:id: Remove um tutorial.
curl -X POST http://localhost:3000/tutorial -H "Content-Type: application/json" -d '{"title": "NestJS Basics", "content": "Learn the basics of NestJS", "userId": "1"}'
This project is an API developed with NestJS, using PostgreSQL as the database and Prisma as the ORM. The API provides endpoints to manage users and tutorials, including Create, Read, Update, and Delete (CRUD) operations. Additionally, the API features JWT authentication for security and automatically generated documentation with Swagger.
- Node.js (version 14 or higher)
- Docker
- Docker Compose
git clone https://github.com/ULYBR/backend.git
cd backend
Rename the .env.example
file to .env
and adjust the environment variables as needed:
mv .env.example .env
The .env
file should contain the following variables:
POSTGRES_USER=username
POSTGRES_PASSWORD=password
POSTGRES_DB=backend
DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}"
JWT_SECRET="your_secret_key_here"
Run the command below to start the environment using Docker Compose:
docker-compose up -d
This will start the PostgreSQL and Redis services defined in the docker-compose.yml
.
If you haven't done so already, install the project dependencies:
npm install
To create the tables in the database, run the Prisma migrations:
npx prisma migrate dev
To start the server in development mode, run:
npm run start:dev
The server will be available at http://localhost:3000
.
The API documentation generated by Swagger is available at:
http://localhost:3000/api/docs
To run the application tests, use the command:
npm test
- POST /user/signup: Creates a new user.
- POST /user/login: Logs in a user and returns a JWT token.
- POST /tutorial: Creates a new tutorial.
- GET /tutorial: Returns a list of tutorials with support for filtering.
- GET /tutorial/:id: Returns the details of a specific tutorial.
- PATCH /tutorial/:id: Updates an existing tutorial.
- DELETE /tutorial/:id: Removes a tutorial.
curl -X POST http://localhost:3000/tutorial -H "Content-Type: application/json" -d '{"title": "NestJS Basics", "content": "Learn the basics of NestJS", "userId": "1"}'