Skip to content
This repository has been archived by the owner on Mar 9, 2020. It is now read-only.

software-assignments-spring2021/spring-2019-instrument-exchange

Repository files navigation

Build Status

README

History

The project was designed by Jonathan Wang who was influenced by his musical interests growing up. Seeking to introduce newcomers to music, he sought an opportunity to provide them with a platform that would allow anyone to sample new instruments or practice in private studios regardless of social or economic status.

Instrument Exchange

Instrument Exchange is an online platform designed to enable instrument and studio owners to list their equipment and space for rental or sale. This platform enables aspiring musicians to trial new instruments from other instrument owners. The interface will be very similar to Ebay or Craigslist where consumers are able to browse on an easily navigable interface where they are able to filter by a number of attributes including location, price, instrument, user rating, and condition of instrument. Users can sign up on the website and browse instruments and studios in their local area for lease or sale as well as list their own equipment for others to view. In signing up, all users will have dual ability to list their own instruments as well as purchase from others. Furthermore, the product will possibly aspire to implement a function to introduce a social media like platform that enables others to seek performances in listing their expertise, as well as list music lessons that others would be able to purchase.

Technologies

The project will utilize JavaScript/React as a frontend framework to allow users to easily navigate the platform. In addition, the unit testing framework Mocha will be used to complement our use of JavaScript. MongoDB will be used as a database platform to maintain users' data and transaction history to record all products listed and purchased as well as user profile information such as login and password. The authentication software used to ensure security will be Passport.js. A file system will be used to maintain all photos listed by sellers. Monetary transactions through our platform will be securely done through implementing PayPal.

Update: Our application has been deployed in Google's Kubernetes Engine (GKE). We have also performed load testing by sending 100 Billion request per second on average and the kubernetes cluster was able to successfully create 8 replicas of the application. Please refer to load_test.yaml for more details.

Technologies

alt technologies

Official links can be found here:

Getting Started

This project has yet to reach the stage of a minimum viable product. However, more detailed instructions to come on how to install the project on your local machine. To contribute to our project, kindly clone or fork a git repository on to begin.

Prerequisites

Before working on this project, ensure that there is a MongoDB instance running on the local machine at the default port 27017.

Installing

Navigate to the application_code directory run the command npm install to install all the packages required for this project to run.

Running the Application

Navigate to the application_code directory run the command node app.js. As mentioned in the Prerequisite section, make sure that you already have a MongoDB instance running before you run this command.

Open a web browser, and navigate to http://localhost:3000 to view the app.

Running the tests

Run the command npm test to run all the unit tests written. To generate code coverage report run the command npm run test-with-coverage

Links

For more information, please read our REQUIREMENTS.md

If you would like to contribute to our project, please refer to CONTRIBUTING.md for instructions.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •