Essa é o backend do aplicativo desenvolvido durante a 5º edição do Mega Hack.
Foi desenvolvido utilizando NodeJS com Express e seu principal objetivo é de lidar com investimentos de usuários.
Esse projeto foi desenvolvido durante a 5ª edição do Mega Hack para o desafio da Órama.
Para rodar este projeto você precisará ter instalado o NodeJS.
# Clone o repositório
$ git clone https://github.com/mcosta21/megahack-orama-server
# Acesse a pasta
$ cd megahack-orama-server
# Instale as dependências
$ npm install or yarn
# Inicie o servidor
$ npm start ou yarn start
O servidor está configurado para se comunicar pela porta 3333, através da rota: http://localhost:3333/
- Buscar por um usuário
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/users/:userId | GET |
- | Code: 200 - OK Content: { "id": 1, "firstName": "Victor", "lastName": "Ladeira", "email": "[email protected]", "yieldReceived": 50 } |
- Buscar por todos os usuários
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/users/ | GET |
- | Code: 200 - OK Content: [ { "id": 1, "firstName": "Victor", "lastName": "Ladeira", "email": "[email protected]", "yieldReceived": 50 } ] |
- Criar um usuário
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/users/ | POST |
{ "firstName": "Marcio", "lastName": "Costa", "email": "[email protected]", "password": 123123, "passwordConfirmation": 123123 } |
Code: 201 - Created Content: { "id": 2, "firstName": "Marcio", "lastName": "Costa", "email": "[email protected]", "yieldReceived": 0 } |
- Logar um usuário
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/auth/ | POST |
{ "email": "[email protected]", "password": "123123", } |
Code: 201 - Created Content: { "id": 1, "firstName": "Victor", "lastName": "Ladeira", "email": "[email protected]", "yieldReceived": 50 "token": "iuehqwnuin2189321kjnsdniksjd912" ``}` |
- Atualizar um usuário
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/users/ | PUT |
{ "newFirstName": "Thiago", "NewLastName": "Goulart", "newEmail": "[email protected]", "newPassword": 123456, "newYieldReceived": 42 } |
Code: 200 - OK Content: { "id": 2, "firstName": "Thiago", "lastName": "Goulart", "email": "[email protected]", "yieldReceived": 42 } |
- Remover um usuário
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/users/ | DELETE |
- |
Code: 202 - Accepted Content: { "id": 2, "message": "Usuário Removido } |
- Buscar por uma categoria
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/categories/:id | GET |
- |
Code: 200 - OK Content: { "id": 1, "name": "Tesouro Direto" } |
- Buscar por todas as categorias
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/categories/ | GET |
- |
Code: 200 - OK Content: [ { "id": 1, "name": "Poupança" }, { "id": 2, "name": "Tesouro Direto" } ] |
- Criar uma categoria
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/categories/ | POST |
{ "name": "Ofertas públicas" } |
Code: 200 - OK Content: { "id": 3, "name": "Ofertas públicas" } |
- Atualizar uma categoria
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/categories/ | PUT |
{ "categoryId": 3, "name": "Ofertas Públicas" } |
Code: 200 - OK Content: { "id": 3, "name": "Ofertas Públicas" } |
- Remover uma categoria
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/categories/:categoryId | DELETE |
- |
Code: 200 - OK Content: { "message": "Categoria removida." } |
- Buscar por uma série
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/:id | GET |
- |
Code: 200 - OK Content: { "id": 1, "cost": 200, "yield": 10, "duration": 2, "description": "Meu Precioso", "description": "Invista no Tesouro Direto com segurança", "category": { "id": 2, "name": "Tesouro Direto" } } |
- Buscar por todas as séries
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/ | GET |
- |
Code: 200 - OK Content: [ { "id": 1, "cost": 200, "yield": 10, "duration": 2, "description": "Meu Precioso", "description": "Invista no Tesouro Direto com segurança", "category": { "id": 2, "name": "Tesouro Direto" } } ] |
- Buscar por todas as séries de uma categoria
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/category/:id | GET |
- |
Code: 200 - OK Content: [ { "id": 1, "cost": 200, "yield": 10, "duration": 2, "description": "Meu Precioso", "description": "Invista no Tesouro Direto com segurança", "category": { "id": 2, "name": "Tesouro Direto" } } ] |
- Criar uma série
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/ | POST |
{ "cost": 200, "yield": 10, "duration": 2, "title": "Meu Precioso", "description": "Invista no Tesouro Direto com segurança", "categoryId": 2 } |
Code: 201 - CREATED Content: { "cost": 200, "yield": 10, "duration": 2, "title": "Meu Precioso", "description": "Invista no Tesouro Direto com segurança", "category": { "id": 2, "name": "Tesouro Direto" } } |
- Atualizar uma série
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/ | PUT |
{ "serieId": 1, "newCost": 1000, "newYield": 15, "newDuration": 180, "newTitle": "Eu sou o Homem de Ferro", "newDescription": "Invista na poupança agora mesmo" "newCategoryId": 1 } |
Code: 200 - OK Content: { "id": 1, "cost": 1000, "yield": 15, "duration": 180, "title": "Eu sou o Homem de Ferro", "description": "Invista na poupança agora mesmo", "category": { "id": 1, "name": "Poupança" } } |
- Remover uma série
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/:serieId | DELETE |
- |
Code: 202 - Accepted Content: { "message": "Série removida." } |
- Buscar por amigos
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/friends/ | GET |
- |
Code: 200 - OK Content: [ { "id": 2, "firstName": "Marcio" "lastName": "Costa", } ] |
- Criar uma amizade
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/friends/ | POST |
{ "friendId": 2 } |
Code: 200 - OK Content: { "message": "Amizade criada" } |
- Remover um amigo
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/friends/:friendId | DELETE |
- |
Code: 202 - Accepted Content: { "message": "Amigo removido." } |
- Buscar por investimentos
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/series/ | GET |
- |
Code: 200 - OK Content: [ { "serie": { "id": 2, "title": "test" "id": 1, "startDate": "2020-11-15", "expirationDate": "2020-11-25," "private": 0 ] |
- Criar um investimento
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/investments/ | POST |
{ "expirationDate": "2021-10-11", "privateBool": false, "serieId": 1 } |
Code: 201 - Created Content: { "serie": { "id": 1, "title": "Meu Precioso," } "id": 1, "expirationDate": "2020-11-25", "private": false } |
- Remover um investimento
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/invesments/:id | DELETE |
- |
Code: 200 - OK Content: { "message": "Investimento removido." } |
- Buscar por um post
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/posts/:id | GET |
- |
Code: 200 - OK Content: { "id": 1, "datePost": "2020-11-15" "title": "Meu primeiro investimento" "description": "Estou muito feliz por começar a investir" } |
- Buscar por posts dos amigos
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/posts/ | GET |
- |
Code: 200 - OK Content: [ { "user": { "id": 4 "firstName": "Joelma" "lastName": "Duarte" }, "investments": [ "serie": { "id": 1, "title": "Meu Precioso" "description": "Invista no Tesouro Direto com segurança" "category": 2 } ] ] |
- Criar um post
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/posts/ | POST |
{ "title": "Comecei", "description": "Estou investindo agora!", "investmentId": 1 } |
Code: 201 - Created Content: { "id": 3, "datePost": "2020-12-12", "title": "Meu Precioso," "description": "Estou investindo agora!", "investmentId": 1, "userId": 2 } |
- Remover um post
Endpoint | Método | Corpo | Resposta |
---|---|---|---|
/posts/:id | DELETE |
- |
Code: 200 - OK Content: { "message": "Post removido." } |
- Marcio Costa @mcosta21
- Victor Ladeira @ladeira1
- Thiago Goulart @thiagogoulart95
- Adriel Medeiros @Adriel2105