Giter Site home page Giter Site logo

megahack-orama-server's Introduction

MEGA HACK #5 - Desafio Órama - Server

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.

Sobre o projeto

Esse projeto foi desenvolvido durante a 5ª edição do Mega Hack para o desafio da Órama.

Tente você mesmo

Pré-requisitos

Para rodar este projeto você precisará ter instalado o NodeJS.

Instalar

Clonar o repositório

# 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

Rotas

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."
}

Autores

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.