Code Monkey home page Code Monkey logo

acelera-movies-back's Introduction

Template Node JS

Este repositório serve como template para o backend de um projeto utilizando Node JS para a Aceleradora Ágil.

Tecnologias

  • Node
  • JavaScript / Typescript
  • Express
  • TypeORM

Configurando projeto

Pré requisitos

Preparando o ambiente de desenvolvimento

  • Instalar o Git

  • Instalar Oh my zsh

  • Instalar NodeJS

  • Instalar o Yarn

    Abra o terminal do seu sistema operacional e digite o seguinte comando:

    npm install -g yarn
  • Instalar Postgres

  • Instalar Beekeeper

  • Instalar Visual Studio Code

  • Clonar repositório

    Abra o terminal do seu sistema operacional e digite o seguinte comando:

    git clone <endereço-do-repositorio-com-terminação.git>
  • Iniciando a aplicação

    Após clonar esse repositório para sua maquina, ainda no terminal digite e aguarde a insstalação ser concluída:

    cd backend-nodejs
    yarn install

    Após a instalação, digite o comando:

    yarn dev

    você deverá notar uma mensagem no terminal ao final:

    Server's running in http://localhost:9000
  • Rodar testes End to End

Subir aplicação após criar a modificação e o testes na pasta ./e2eTest bash yarn dev

Rodar todos os testes e2e bash yarn run test:e2e

TypeORM

  • Criando Migration

    yarn typeorm migration:create -n <NomeDaMigration>

Preparando ambiente de teste

Variáveis de ambiente

Essas são as variaveis de ambiente que essa aplicação precisa para funcionar em qualquer ambiente. Os valores que devem ser atribuidos a elas vão depender dos ambientes.

Para caso de ambiente local (sua máquina) deve ser criado um arquivo .env na raiz do projeto

NODE_ENV=
PGSSLMODE=no-verify

acelera-movies-back's People

Contributors

narukaioh avatar

Watchers

 avatar James Cloos avatar Alejandro Olchik avatar Yasser Rachid avatar Mar avatar Ghilherme Ghidorsi avatar Bárbara Anger avatar

acelera-movies-back's Issues

criar endpoint GET login

Contexto

  • Eu como desenvolvedor quero que, ao utilizar o postman e o endpoint GET /login com as credenciais email e senha nos parametros, receba autorização de acesso

Critérios de aceitação

  • O login deve ser feito no endpoint de "login" por meio do metodo de requisição GET
  • Deve haver uma verificação se a senha digitada for igual a senha já criada, e outra verificação se o login digitado, for igual o login ja criado
  • em caso de sucesso, retorne um json de:
{ "auth":"true",
  "message":"sucesso"}
  • em caso de falha, returne o json de:
{"auth":"false",
 "message":"falha"}

Material de apoio

criar endpoint POST movie

Contexto

  • Eu como desenvolvedor quero que, ao utilizar o postman e utilizar endpoint de /movie com o metodo de POST, com as credenciais corretas para criar um filme, ele seja salvo.

Critérios de aceitação

  • Um filme deve ter os seguintes campos obrigatórios
{
"id":"number"
"title":"string",
"gender":"string",
"classification":"string",
"subtitle":"string",
"image":"string",
"releaseDate":"date",
"director":"string",
"writer":"string",
"studio":"string",
"actors":"string",
"resume":"string",
"awards":"string",
"note":"number"
}
  • Deverá ser feito uma verificação se esses campos estão sendo preenchidos conforme o esperado
  • Uma entidade deverá ser criada com os mesmos campos
  • em caso de sucesso, retorne um json com o objeto do filme e:
{ "status":"200",
  "message":"sucesso"}
  • em caso de falha, returne o json de:
{"status":"500"
 "message":"falha"}

Material de apoio

criar endpoint GET movie por ID

Historia

Eu como desenvolvedora, desejo ter acesso as informações completas do filme selecionado.

Contexto

utilizar o endpoint GET /movieId, para retornar as informações sobre o filme selecionado pelo seu ID.

Critérios

  • criar endpoint getMovieId
  • criar a rota GET /movie/:id
  • Retorno sucesso:
{ "message": "Filme encontradas com sucesso.",
  "Movie" : {
 " ID ": "número do ID"
  "title": "titulo",
  "gender": "gênero do filme",
  "classification": "classificação",
  "subtitle": "sub-titulo",
  "image": "imagem",
  "releaseDate": "Data de lançamento",
  "director": "diretor",
  "writer": "escritor",
  "studio": "studio",
  "actores": "atores",
  "resume": "resumo",
  "awards": "prêmios",
  "note": "notas" }
  • Retorno erro:
{ "message": "Falha ao encontrar Filme." }

Materiais

Vanessa: criar endpoint GET movie

-- Objetivo --

Como desenvolvedora, ao utilizar o endpoint GET /movie, uma lisa de filmes seja respondida;

-- Critérios --
um filme é:

{
"id": number,
"name": string,
"resume: string,
"releaseDate: string,
"score": number,
"image": string,
"director": string,
"writter": string,
"classification": string,
, "studio": string,
}
deve retorna uma lista destes filmes

-- Material de apoio--

Protótipo - Acelera Movies
Metódos de Requisição: GET

Gabriela: criar endpoint GET movie

Objetivo

  • Como desenvolvedora, ao utilizar o endpoint GET /movie, uma lisa de filmes seja respondida;

Critérios

  • um filme é:
    {
    "id": number,
    "name": string,
    "resume: string,
    "releaseDate: string,
    "score": number,
    "image": string,
    "director": string,
    "writter": string,
    "classification": string,
    , "studio": string,
    }
  • deve retorna uma lista destes filmes

Material de apoio

criar endpoint GET movie

Objetivo

  • Como desenvolvedora, com o uso o postman, o endpoint GET /movies deve retorna uma lista de filmes.

Critérios

  • A requisição deve utilizar o método de requisição GET, no endpoint /movies
  • uma lista de filmes é:
[{
   "id": 1,
   "title": "o titulo",
   "releaseDate": "Data de lançamento do filme",
   "resume": "resume do filme",
   "note": "nota do filme"
}, 
{
   "id": 2,
   "title": "o titulo",
   "releaseDate": "Data de lançamento do filme",
   "resume": "resume do filme",
   "note": "nota do filme"

}]
  • em caso de sucesso, deve retorna uma lista destes filmes com uma message de sucesso
  • caso contrário, deve retorna um erro com uma message, falando o erro

Material de apoio

Vanessa: criar endpoint GET movie

Objetivo

  • Como desenvolvedora, ao utilizar o endpoint GET /movie, uma lisa de filmes seja respondida;

Critérios

  • um filme é:
    {
    "id": number,
    "name": string,
    "resume: string,
    "releaseDate: string,
    "score": number,
    "image": string,
    "director": string,
    "writter": string,
    "classification": string,
    , "studio": string,
    }
  • deve retorna uma lista destes filmes

Material de apoio

criar endpoint PUT movie por ID

Contexto

  • Eu como desenvolvedora, com uso do postman, quero que o endpoint /movie/:id com o metodo PUT, possa alterar as informações do filme.

Critérios

  • O endpoint deve utilizar o método de requisição PUT
  • Deve ser possivel alterar quaisquer das seguintes informações do filme:
{
"title":"string",
"gender":"string",
"classification":"string",
"subtitle":"string",
"image":"string",
"releaseDate":"date",
"director":"string",
"writer":"string",
"studio":"string",
"actors":"string",
"resume":"string",
"awards":"string",
"note":"number"
}
  • em caso de sucesso, deve retorna uma message de sucesso, dizendo que foi atualizado.
{
"messsage": "atualizado com sucesso"
}
  • caso contrário, deve retorna o próprio erro, com uma mensagem de erro.
{
"message": "não foi possivel atualizar",
"error": "o erro"
}

Matérial de Apoio

Protótipo - Acelera Movies
Método de Requisição: PUT

criar endpoint DELETE movie por ID

Contexto

Deletar filmes da lista.

Historia

Eu, como desenvolvedora
Quero deletar os filmes que não desejo mais que estejam na minha lista.

Critérios

  • Criar endpoint delete por id

  • Rotas delete / movie/:id

  • Requisição

DELETE /movie/:2
  • Caso de sucesso:
{ 
“Status”: “200”,
“Message”: “ok”}

Material de apoio

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.