2. Web App Overview - WebJamApps/JaMmusic GitHub Wiki

2.1 Product Perspective

This is a web application accessible from a Chrome, Edge, or Safari browser. It provides a responsive design (allows for the interface to adapt with respect to cell phone or computer monitor displays). The application is partitioned into two codebases (client-side and server-side) that run on the NodeJS engine, use a noSQL datastore (MongoDB), and are hosted in a PaaS (Platform as a Service) offering (Heroku).

2.2 Technologies

Note: As our project evolves, new packages will be incorporated as needed. Refer to the package.json file for a current list of included technologies.

NodeJS: Web server and backend runtime

ExpressJS: Middleware Management Framework

MongoDB: Document data store

mLab: loud hosted MongoDB as a service

Mongoose: Document data store framework for MongoDB

GitHub: Code repository, version control, and collaboration

ZenHub: Agile project management

Heroku: PaaS hosting platform

Google Polymer: User interface web component library

ESNext: We intend to write our frontend JavaScript using the latest versions of ECMAScript, and use Babel to transpile it down for older browser support.

Babel: Transpiles the javascript to be browser compatible as configured

Webpack: Build and task runner used for the front end - our goal is to use the most minimal Webpack configuration as possible that enable fast loading