API desenvolvida com o intuito de gerenciar projetos de usuários registrados. Sendo possível criar usuários, criar projetos e realizar a atualização/edição dos respectivos projetos.
- Node js / Typescript
- Prisma
- Express
- Docker
- Postgres
- Baixe/clone o repositório disponibilizado
- Configure as variáveis de ambiente listadas no arquivo .env.example
- Instale as dependências da aplicação com o comando
yarn install
- Para criar a conexão com o banco e consequentemente as tabelas utilize o comando
docker-compose up -d
e em seguidayarn migrate:up
- com a conexão estabelecida e as tabelas criadas com o comando
yarn start
a aplicação estará rodando na portalocalhost:3000
. Você estará apto a utilizar os endpoints.
POST /users - FORMATO DE ENTRADA:
{
"name": "Gabriel",
"password": "123456",
"username": "gabriel-dev"
}
POST /users - FORMATO DE SAÍDA - STATUS 201:
{
"id": "6984d12c-0eb8-40b3-9d9e-93022e23905b",
"name": "Gabriel",
"username": "gabriel-dev"
}
POST /login - FORMATO DE ENTRADA:
{
"username": "gabriel-dev",
"password": "123456"
}
POST /login - FORMATO DE SAÍDA - STATUS 200:
{
"accessToken": "eyJhbGciOiJIUzIjoiMSJ9MkgprS3kvUpaZtQKhQYSAGJjE9P7x9HGJiDE",
"username": "gabriel-dev"
}
POST /project - FORMATO DE ENTRADA:
Headers: username
{
"title": "Back-fontes",
"zip_code": 88064092,
"cost": 1928873,
"deadline": "2023-01-10T00:00:00.000Z"
}
POST /project - FORMATO DE SAÍDA - STATUS 201:
{
"id": "f3ce3b96-5d60-4b44-a385-81c83b4d9dda",
"title": "Back-fontes",
"zip_code": 88064092,
"cost": 1928873,
"done": false,
"deadline": "2023-01-10T00:00:00.000Z",
"username": "gabriel-dev",
"created_at": "2023-01-22T15:44:31.287Z",
"updated_at": "2023-01-22T15:44:31.287Z"
}
GET - /projects - FORMATO DE ENTRADA:
Headers: username
GET - /projects - FORMATO DE SAÍDA - STATUS 200:
{
"projects": [
{
"id": "7ac36869-4891-4dfc-abfa-4705efd14725",
"title": "Frontend-fontes",
"zip_code": 88064092,
"cost": 1928873,
"done": false,
"deadline": "2023-01-10T00:00:00.000Z",
"username": "gabriel-dev",
"created_at": "2023-01-21T00:56:20.766Z",
"updated_at": "2023-01-21T00:56:20.766Z"
},
{
"id": "2d86ed01-f97c-45a6-abc7-9f38a2ff9004",
"title": "Back-fontes",
"zip_code": 82600290,
"cost": 100,
"done": true,
"deadline": "2025-01-10T00:00:00.000Z",
"username": "gabriel-dev",
"created_at": "2023-01-21T00:29:45.979Z",
"updated_at": "2023-01-21T01:31:24.205Z"
}
]
}
GET - /project - FORMATO DE ENTRADA:
Headers: project_id
GET - /project - FORMATO DE SAÍDA - STATUS 200:
{
"project": {
"id": "4fd9d3fa-2d71-459d-985a-a78f8a69731c",
"title": "Frontend-fontes",
"zip_code": "Florianópolis/SC",
"cost": 19888,
"done": false,
"deadline": "2023-01-27T19:30:40.000Z",
"username": "gabriel-dev",
"created_at": "2023-01-22T19:40:30.950Z",
"updated_at": "2023-01-22T19:40:30.950Z"
}
}
PUT /projects/:id - FORMATO DE ENTRADA:
Headers: username
{
"title": "FullStack",
"zip_code": 82600290,
"cost": 1004566,
"deadline": "2025-01-10T00:00:00.000Z"
}
PUT /projects/:id - FORMATO DE SAÍDA - STATUS 200:
{
"message": "Project updated."
}
PATCH /projects/:id - FORMATO DE ENTRADA:
Headers: username
PATCH /projects/:id - FORMATO DE SAÍDA - STATUS 200:
{
"message": "Project updated."
}
DELETE /projects/:id - FORMATO DE ENTRADA:
Headers: username
DELETE /projects/:id - FORMATO DE SAÍDA - STATUS 200:
{
"message": "Project deleted."
}