Musikan is an open community of independent artists and music lovers similar to that of Spotify or Amazon Music. Musikan is a streaming music web application for personal use where artists can share their music and discover songs, playlists and artists.
This project was made by a team of passionate music developers using continuous integration and agile methodologies.
This app has been built with MongoDB, Express, Node, Firebase and Cloudinary on the server side, and React, Redux for the client side.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
You need to install NodeJs and Install the NPM packages with npm install command. You will also be required to create accounts for: - Firebase - MongoDB Atlas - Cloudinary
First, you will need to clone or fork the repository into your Github account:
frontend ->$ git clone https://github.com/AranBeitia/musikan-front --> further instructions in this link
backend -> $ git clone https://github.com/Jose1i1o/musikan-node-back
When you have all the dependencies installed you need to create two .env files, one located in client folder, one in server folder containing the new encryption keys. Please refer to the examples below:
Folder structure 🗂
├── documentation // All project wireframes, PRD, and presentation files ├── server // Backend Node Server │ ├── src │ │ ├── config │ │ ├── controllers │ │ ├── db │ │ ├── middlewares │ │ ├── models │ │ ├── repositories │ │ ├── routes │ │ ├── services │ │ └── utils │ │ └── index.js │ │ └── server.js
This back end side is our main API. Here we receive most of the requests that are sent by the front end. This API has the core functionalities of the back end such as the authentication, the database management and the use of other third party services as cloudinary. This API also interacts with the other side of our back end.
- Clean & efficient Code
- API architecture with the easiest flow for the frontend
- Comfortable user experience
- Safe server side
- Transparent and fluid team communication
- Collaborative work
In order to achieve all of our goals we have implemented the Scrum Agile Methodology. We divided all the process into four separated Sprints contained within 3 weeks, everyone of them with their own goals. To manage those sprints we set daily, sprint plannings and review and sprint retrospective meetings. We used Github Projects to divide our sprints, issues and tasks on boards using the Kanban structure. We also implemented a code review system in order to get all the team connected with all parts of the project.
Based on Agile methodologies we had daily reviews, sprint plannings and sprint reviews. This was done in order to agree on the requirements, design, develop, test, deploy and review each sprint.
If you want to contribute, please fork the repository, create a new branch whit your contribution, and push the branch as a pull requests.
Thanks goes to these superb people
Antonio Copete |
Arantza Beitia |
Carlos Velilla |
Jose Valenzuela |