Ferozuddin Alizada 8922142
Deliverable 3: The app is made using the
MEAN
( MongoDB, ExpressJS, Angular, and NodeJS) stack of technologies. The Front-end will be in Angular which is located inMusiQ
. And the database and the back-end can be found inbackend/src/mongodb.js
andbackend/src/api.js
This is a basic MEAN stack setup of the web application and has limited functionality. The source code are: Frontend, BackEnd, Database.
Since the project is a huge application and would require more than just a week or two weeks of works to complete since this is a fully functional music streaming application that uses AWS CDN technology to cache data on servers around the world to ease loading for the next user in that specific location. And implementing this requires a lot more time. The music streaming application as of now has basic functionality including Registration to the Database, Login, and music playback. It lacks the ability of storing sessions. Which will be out in the next version.
But the server can handle as much as 10,000 users since the load is distributed on AWS servers.
The MEAN stack music streaming app is a complicated piece of work since it is supposed to be huge with many features. And usage, deployment, and installation requires a lot of complicated procedures.
Angular uses Jasmine Testing Framework as the default. which uses Karma as a test runner and displayed in the browser. As for MongoDB and Express I am using Mocha Testing framework. The Test files can be found in Express Test and MongoDB Test.
To run the test simply use command line to browse to the /backend/src
or /backend/database
folders and run npm install
and then after the installation is complete run npm test
. Further instructions in the Installation Section.
Every Technology has a few npm dependencies which needs to be installed for the application to be deployed.
NOTE: Travic CI is added for continous deployment and integration but due to the security on the branch it can not be deployed.
Simply install docker and run docker-compose docker-compose.yml up
from the root folder
This is the simplest way to develop the application and use to it testing.
Or follow the following steps to install a developer version of it where you can edit the source code.
To run this application you need the following softwares/technologies.
- NodeJS and npm
- Run
npm install -g @angular/cli@latest
to install Angular CLI or runnpm install @angular/cli@latest
to install it locally which usually needs you to be in the MusiQ directory - MongoDB
After installing these softwares you can navigate to the MusiQ folder in the root directory and run make sure MongoDB server is running.
navigate to your MongoDB bin files and run mongo
for mac
npm install
ng serve
ng test
to run the unit tests
The web application will be served on localhost:4200 or the port written in the console.
To start the database and the backend navigate to backend/src/
and run
npm install
npm start
- Run
npm test
to run the tests
if the database fails to run simply run npm start
again
After running everything you can then test the login and Registeration of the web applicaiton.
The UI design is simple to make it easy for the day to day clients to simply play and pause music.
Sample data is seeded in the AWS cloud which includes the audio files and the cover photos for the albums. the links can be found in Sample data
Not everything is functioning, basic functionality has been implemented to show understanding of the technologies and languages.