Skip to content

ULYBR/backend

Repository files navigation


Aplicação Backend

Descrição

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.

Pré-requisitos

  • Node.js (versão 14 ou superior)
  • Docker
  • Docker Compose

Instruções de Uso

1. Clonar o Repositório

git clone https://github.com/ULYBR/backend.git
cd backend

2. Configurar as Variáveis de Ambiente

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"

3. Subir o Ambiente com Docker

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.

4. Instalar as Dependências

Se ainda não tiver feito isso, instale as dependências do projeto:

npm install

5. Executar as Migrações do Banco de Dados

Para criar as tabelas no banco de dados, execute as migrações do Prisma:

npx prisma migrate dev

6. Iniciar o Servidor

Para iniciar o servidor em modo de desenvolvimento, execute:

npm run start:dev

O servidor estará disponível em http://localhost:3000.

7. Documentação da API

A documentação da API gerada pelo Swagger está disponível em:

http://localhost:3000/api/docs

8. Testes

Para rodar os testes da aplicação, use o comando:

npm test

Endpoints da API

1. Usuários

  • POST /user/signup: Cria um novo usuário.
  • POST /user/login: Realiza o login e retorna um token JWT.

2. Tutoriais

  • 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.

Exemplo de Requisição

curl -X POST http://localhost:3000/tutorial -H "Content-Type: application/json" -d '{"title": "NestJS Basics", "content": "Learn the basics of NestJS", "userId": "1"}'

Backend Application

Description

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.

Prerequisites

  • Node.js (version 14 or higher)
  • Docker
  • Docker Compose

Usage Instructions

1. Clone the Repository

git clone https://github.com/ULYBR/backend.git
cd backend

2. Configure Environment Variables

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"

3. Start the Environment with Docker

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.

4. Install Dependencies

If you haven't done so already, install the project dependencies:

npm install

5. Run Database Migrations

To create the tables in the database, run the Prisma migrations:

npx prisma migrate dev

6. Start the Server

To start the server in development mode, run:

npm run start:dev

The server will be available at http://localhost:3000.

7. API Documentation

The API documentation generated by Swagger is available at:

http://localhost:3000/api/docs

8. Tests

To run the application tests, use the command:

npm test

API Endpoints

1. Users

  • POST /user/signup: Creates a new user.
  • POST /user/login: Logs in a user and returns a JWT token.

2. Tutorials

  • 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.

Request Example

curl -X POST http://localhost:3000/tutorial -H "Content-Type: application/json" -d '{"title": "NestJS Basics", "content": "Learn the basics of NestJS", "userId": "1"}'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published