Giter Club home page Giter Club logo

projeto21-singmeasong-1's Introduction

Projeto 21 - Sing me a Song

Descrição

Este é o vigésimo primeiro projeto do Bootcamp da Driven. O template foi entregue totalmente funcional, front e back end (instruções para rodar localmente à seguir). Entretanto, o mote deste projeto é a implementação de testes automatizados, a ver: End-to-End no front-end com o Cypress, Unitários e de Integração no back-end com o Jest. Nesse ultimo, os testes unitários abordaram apenas a camada de serviços.


Tecnologias e Conceitos

  • JEST, Supertest
  • Cypress
  • Node.js
  • TypeScript
  • Prisma

Rotas

POST /recommendations
    - Rota para cadastrar uma recomendação
    - body:{
        "name": "Lorem ipsum",
        "youtubeLink": "www.youtube.com/seu-link",
}
POST /recommendations/:id/upvote
    - Rota para votar positivamente numa recomendação. Não espera nada no corpo
POST /recommendations/:id/upvote
    - Rota para votar negativamente numa recomendação. Não espera nada no corpo. Se a recomendação tiver uma pontuação abaixo de -5 ela é removida do banco de dados.
GET /recommendations
    - Lista as 10 ultimas recomendações do banco
    -body:
    [
	{
		"id": 1,
		"name": "Chitãozinho E Xororó - Evidências",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 245
	},
    {
		"id": 2,
		"name": "Chitãozinho E Xororó - Evidências de Tras pra frente",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 145
	}
    ]
GET /recommendations/:id
    -Rota para pegar dados de uma recomendação pelo id
    -body: {
		"id": 1,
		"name": "Chitãozinho E Xororó - Evidências",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 245
	}
GET /random/
    - Rota para pegar uma recomendação aleatória
    -Body: {
		"id": 2,
		"name": "Chitãozinho E Xororó - Evidências de Tras pra frente",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 145
	}
GET /top/:amount
    - Rota para pegar as X recomendações mais votadas, com um limite de 10.
    -body:
    [
	{
		"id": 1,
		"name": "Chitãozinho E Xororó - Evidências",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 245
	},
    {
		"id": 2,
		"name": "Chitãozinho E Xororó - Evidências de Tras pra frente",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 145
	},
     {
		"id": 3,
		"name": "Chitãozinho E Xororó - Evidências de Frente pra Tras",
		"youtubeLink": "https://www.youtube.com/watch?v=ePjtnSPFWK8&ab_channel=CHXVEVO",
		"score": 45
	}
    ]

🏁 Rodando a aplicação

Este projeto foi inicializado com o Create React App, então certifique-se que voce tem a ultima versão estável do Node.js e npm rodando localmente.

Primeiro, faça o clone desse repositório na sua maquina:

git clone https://github.com/grakzanchetta/projeto21-singmeasong

Depois, dentro da pasta, rode o seguinte comando para instalar as dependencias, na pasta front-end, e na pasta back-end.

npm install

Depois, para inicializar o banco de dados, utilize os seguintes comandos dentro da pasta back-end

npx prisma generate

e depois:

npx prisma migrate dev

Finalizado o processo, é só inicializar o servidor front-end com

npm run start

E do back-end com

npm run dev

Para rodar os testes automatizados, na pasta do front-end use o comando: (testes e2e)

npx cypress open

Para rodar os testes automatizados, na pasta do back-end use o comando: (testes unitários)

npm run test:unit

Para rodar os testes automatizados, na pasta do back-end use o comando: (testes de integração)

npm run test

projeto21-singmeasong-1's People

Contributors

grakzanchetta avatar

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.