GithubHelp home page GithubHelp logo

antoniorev / listenyourmood Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 1.2 MB

Home Page: listen-your-mood.antoniorev.vercel.app

License: GNU General Public License v3.0

JavaScript 97.56% Dockerfile 2.44%

listenyourmood's Introduction

ListenYourMood 馃幍

Descripci贸n del problema a resolver

脷ltimamente estoy harto de salir del trabajo y pensar:

Me gustar铆a escuchar m煤sica tranquila, pero el maldito aleatorio en las canciones de Spotify hace que pase de El Concierto de Aranjuez a Thunderstruck, maldita sea.

Por ello, he decidido implementar una API, la cual dependiendo del g茅nero y de mi estado de 谩nimo me recomiende una lista de reproducci贸n en Spotify. A su vez, y por comodidad, se a帽adir谩 una opci贸n para poder reproducir la lista de reproducci贸n en la misma aplicaci贸n, sin necesidad de salir de la misma o tener que ir a otra p谩gina o aplicaci贸n

Para el desarrollo de este proyecto es necesario utilizar un usuario de Spotify por defecto, para poder generar un token para realizar peticiones al servidor de Spotify.

Microservicios y Routing

En el fichero api/lista.js se han implementado una serie de funciones que se ejecutan con las diferentes peticiones al servidor seg煤n la ruta indicada. Como avance del proyecto se han implementado:

  • Una petici贸n para obtener todos los g茅neros disponibles en Spotify.
  • Una petici贸n que se encargue de, a partir del g茅nero introducido, obtener su ID de la API de Spotify y volver a hacer una petici贸n al servidor de Spotify para generar una playlist en relaci贸n a dicho ID.
  • Una petici贸n igual que la anterior pero para obtener una playlist en relaci贸n a un artista.
  • Una petici贸n igual que la anterior pero para obtener el top canciones del artista introducido.

El fichero api/servidor.js es el fichero que se ejecuta en Node para levantar el servidor. As铆 se desacopla las funciones del servidor con el servidor en s铆.

Para la configuraci贸n distribuida, se ha utilizado etcd3 y la biblioteca de node node-etcd. Dentro del c贸digo del fichero servidor.js se crea una instancia de etcd para obtener el puerto de la variable de entorno port. Si est谩 vac铆a, se asigna por defecto el puerto 3000.

El framework escogido para gestionar los Microservicios ha sido Express, frente a otras opciones como Nest o Hapi. Dentro de la carpeta docs se encuentra el archivo frameworkParaMicroservicios.md, donde se explica el motivo de la elecci贸n de Express frente a las otras opciones.

La explicaci贸n sobre c贸mo se usa Express dentro de la API se encuentra en el archivo express.md, dentro de la carpeta docs.

Las posibles peticiones a realizar al servidor se encuentran explicadas en el archivo peticionesAPI.md, dentro de la carpeta docs.

Los tests para dichas peticiones se encuentran en el fichero lista.test.js. Utilizan Jest y Supertest para realizar dichos tests, evaluando lo que devuelve cada petici贸n variando los par谩metros introducidos. Dentro de la carpeta docs se encuentra el archivo tests.md, donde se explica lo realizado en cada uno de los tests.

Documentaci贸n a帽adida

Todos los ficheros de documentaci贸n se encuentran en la carpeta docs.

Herramientas y funciones Serverless

En la carpeta docs se puede encontrar m谩s informaci贸n acerca de la configuraci贸n de Vercel y de la explicaci贸n de la funci贸n Serverless (esta funci贸n ha sido sustituida por las diferentes funciones para los microservicios, por tanto el link est谩 obsoleto).

Pasos realizados (Issues / Milestones)

Dentro de la carpeta docs se encuentra el archivo pasos.md, que ir谩 reflejando los pasos que se den en los diferentes estados de la aplicaci贸n. Estos pasos deber谩n relacionarse con los diferentes issues, historias de usuario y milestones propuestos en el proyecto.

Herramientas necesarias

En la carpeta docs se aporta informaci贸n acerca de las herramientas utilizadas para el desarrollo de esta aplicaci贸n.

Instalaci贸n de las herramientas necesarias

En la carpeta docs se aporta el proceso de instalaci贸n de las herramientas necesarias para la ejecuci贸n de esta aplicaci贸n.

Test realizados

En la carpeta docs se aporta informaci贸n acerca de los tests usados para evaluar la consistencia de la aplicaci贸n.

Imagen de Docker para realizaci贸n de tests

Se puede consultar acerca de la imagen de Docker creada y del proceso de elecci贸n de imagen con respecto a todas las disponibles.

Herramientas de integraci贸n continua

Se puede consultar acerca de la herramientas de integraci贸n continua que se est谩n utilizando dentro de la carpeta docs.

Configuraci贸n Inicial del proyecto

La Configuraci贸n inicial necesaria para el comienzo del proyecto.

Autor

Antonio Jos茅 Revelles P茅rez

listenyourmood's People

Contributors

antoniorev avatar bytevictor avatar

Watchers

 avatar

Forkers

bytevictor

listenyourmood's Issues

Actualizar archivo README para el hito 2

Incluir una descripci贸n real de la clase que se vaya a testear, como instalarla y testearla y qu茅 uso va a tener dentro del servicio. Debe estar escrito para la persona que llegue, y no para que se corrija.

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.