/Magic-Mirror

A simple magic mirror with some cool functionality

Primary LanguageTypeScript

Magic Mirror COP 4331 - Spring 2019

Team Members

  • Sidney Packer
  • Matthew Saucedo
  • Joseph Musante
  • Mardochee Cajuste

Vision Statement

The Magic mirror is an all in one mirror and information hub that can be used to display useful information such as weather, travel times, calendar events, and more! For a student this can be the difference between knowing when an assignment is due and missing it entirely. For a business professional it can ensure before leaving for work that there are no accidents are on the way and keep them informed of the current events. Anyone who likes to read the top news headlines or check the weather, will be able to do so by simply glancing at the mirror. This will save a lot of time by not having to check your smartphone or turn on the TV. With a magic mirror in your bedroom, not only will you ensure you look dapper, you will always be informed before leaving the house!

The magic mirror can be programmed to display different types of information depending on the user’s needs and lifestyle. The flexibility of this mirror sets it apart from other types of devices, many people have mirrors in their room which they check before they go out. Displaying various types of information on this mirror will enable you to multitask like never before!

Sprint 1

User Stories

Design Documentation

Burndown Chart

Basic Demo

Video Demo

Sprint 2

User Stories

Design Documentation

Burndown Chart

Burndown Chart Explanation

Basic Demo

Video Demo

Sprint 3

User Stories

Design Documentation

Burndown Chart

Burndown Chart Explanation

Basic Demo

Video Demo

Grading

Backlogs: We've chosen to implement a Kanban board using Github Projects. Within this tab lies our Product and Sprint Backlogs as well as the current status for tasks we're tackling within the current sprint. As these tasks are finished, they are moved to done, which is essentially the "done" pile of the Sprint Backlog. Github labels are used for priority and categorizing.

Burndown Chart: Our burndown chart is automated based on each Sprint milestone and populated as issues are moved to "done" and closed. Click here to see this live.

User Stories: User stories and related tasks are implemented as Github issues and, as mentioned, are tagged according to priority/category. Validation criteria can be seen within the respective issue as well

Development

Frontend Dev Server

ng serve

Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code Scaffolding

ng generate component component-name
ng generate directive|pipe|service|class|guard|interface|enum|module

Frontend Build

ng build
ng build --prod

Testing

ng test
ng e2e

Initial setup

First at the root of the project folder run:

npm install

To set up the virtual environment necessary for development, at the root of the project folder run:

npm run api:venv

To install all necessary dependencies for development, at the root of the project run:

npm run api:install

To start the server, at the root of the project run: (This is all that's needed for all subsequent runs)

npm run start

Navigate in web browser to the given localhost specified in terminal

Server Tests

To run tests we have set up for route methods, run

python api/tests.py