Wavetronic es una app realizada en React Navtive, una nueva forma de descubrir y compartir música con tus amigos.
En este repositorio encontrarás el backend de la app en forma de Api REST, realizado en NodeJs/Express con soporte en MongoDB.
Para instalar este proyecto:
$ git clone https://github.com/mtzfactory/wavetronic-api
$ cd wavetronic-api
$ npm install
$ npm start
El servidor utiliza una serie de variables de entorno que deben configurarse previamente a su ejecución. Para ello creamos un fichero .env con el siguiente contenido:
DEBUG=app,web,api,auth,usr,jmo
API_PORT=<api_port>
API_SECRET=<api_secret_para_passport>
MONGO_HOST=<host_mongodb>
MONGO_PORT=<puerto_mongodb>
MONGO_DB=<base_de_datos_mongodb>
MONGO_USER=<usuario_mongodb>
MONGO_PASS=<clave_mongodb>
Para poder realizar consultas a nuestro proveedor de contenidos, en este caso Jamendo, debemos registrarnos como desarrollador en su plataforma y configuar nuestro entorno con nuestro identificador de cliente.
JAMENDO_CLIENT_ID=<jamendo_client_id>
JAMENDO_CLIENT_SECRET=<jamendo_client_secret>
También es necasio la server key de Firebase, para poder enviar y recibir notificaciones push, la cuál la puedes encuentrar en la sección de Configuración / Mensajería en la nube, una vez registres tu proyecto.
FCM_SERVER_KEY=<server_key_de_firebase_cloud_messages>
En la carpeta postman se encuentra un fichero que se puede importar a la aplicación con el mismo nombre. En este fichero estan dados de alta todos los endpoints de nuestra Api así como las diferentes acciones que nos permite, echale un vistazo...
Una vez hemos probado que todo funciona en local, es hora de subirlo a un servidor en la nube, en este caso hemos escogido Heroku por su sencillez de mantenimento, a parte de que es gratis claro ;-)
Del mismo modo que configuramos el entorno en nuestra máquina de desarrollo, debemos hacerlo también en Heroku. Esto lo conseguimos de la siguiente manera:
$ heroku config:set API_SECRET=<api_secret_para_passport>
$ heroku config:set MONGO_HOST=<host_mongodb>
$ heroku config:set MONGO_PORT=<puerto_mongodb>
$ heroku config:set MONGO_DB=<base_de_datos_mongodb>
$ heroku config:set MONGO_USER=<usuario_mongodb>
$ heroku config:set MONGO_PASS=<>
$ heroku config:set JAMENDO_CLIENT_ID=<jamendo_client_id>
$ heroku config:set JAMENDO_CLIENT_SECRET=<jamendo_client_secret>
$ heroku config:set FCM_SERVER_KEY=<server_key_de_firebase_cloud_messages>
La única variable que no se debe configurar es API_PORT, ya que el propio Heroku lo hará por nosotros.
Para comprobar que se ha congigurado correctamente el entorno de Heroku podemos ejecutar el siguiente comando:
$ heroku config