Our project involves developing a private web-based dashboard for Mother Road Brewing Company in Flagstaff, AZ.
Intro
The brewery relies on multiple data sources for executive and management teams to create production forecasts, sales goals, and monitor financial performance. Our goal is to collect data from applications such as VIP and Square in order to present them to employees in a more effective way. The dashboard will allow users to compare the current state of sales to data from the previous month or year. Users will also be able to set custom goals within the application.
Team Members
Developers
Andrew Alonis
Veronika Alves
Rick Jamil
Jason Travis
Mentor

Dr. Maggie Vanderberg
Email: Maggie.Vanderberg@nau.edu
Office: NAU, Engineering Building, Room 212
Phone: 928-523-3698
http://www.cefns.nau.edu/~mlh395
Sponsor

Michael and Alissa Marquess
Founders and Managing Partners
Mother Road Brewing Company
7 South Mikes Pike
Flagstaff, Arizona 86001
Tools
Collaboration and Version Control
Google Docs: Used to create and share project documents such as the Software Requirements Specification, Design Document, and Presentations
Git: Source code management program used to track, merge, and compare revisions
waffle.io: A project management service that integrates with the issue tracker for the Git source code repository. It is used to distribute
Software Stack
Heroku: A cloud computing service used to host the application
NodeJS: Server-side event-driven Javascript runtime in which the backend executes
ExpressJS: The de facto NodeJS web-server framework
Foundation: A frontend framework
AngularJS: Client-side framework used to create an interactive web applications following the Model-View-Controller paradigm
MongoDB: A NoSQL database used to persist information such as user and application authentication credentials, sales goals and trends, permissions, etc
Development Tools
StriderCD: A Continuous Integration & Deployment Server used to monitor the Git source code repository for changes. When a change is detected, it runs the test suites, code quality analysis tools, and any other prelease actions. Assuming everything passes, it automatically uploads the latest release to the production server.
GruntJS: Task-runner used to automate tasks such as spawning local development servers, monitor the project directory for changes, run code quality static analysis tools, generate documentation and reports, and execute test suites
Karma: Test runner to automatically spawn server processes, execute the test suite in various browsers, and report the results
JsHint and JSCS: Javascript code quality static analysis tools
Mocha: Behavior Driven Development Javascript test framework for unit testing both server-side and client-side code
Protractor: A framework to create end-to-end functional tests for AngularJS applications
PhantomJS
Jsdox: Scans program source code to generate developer API documentation