No description, website, or topics provided.
JavaScript CSS HTML Other
Pull request Compare This branch is even with mzenzie:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.




MusicLessonPlanner is an organizational application for private music teachers that keeps track of their studio of students, lesson notes, schedule, and progress.

The current version can be accessed for use or testing at This website redirects automatically to IP address

Features implemented

  • Add/Delete/View student accounts
  • Teacher Login Authentication
  • Lesson Notes - Add/delete/view notes for each lesson and general notes for each student.
  • Edit existing student accounts - Allow student information to be updated at any point after the account has already been created.
  • Lesson Scheduling - Allow teachers to cancel or reschedule lessons.

Installation and Build

  • Install python, node, and express before running this app. Make sure that you install python version 2.7
  • Navigate to the directory where you wish to install MusicLessonPlanner and clone the repository.
  • Navigate into the project directory.
  • Run the install script through whatever shell you use. On most distros, this is
$ sudo bash

To run the app, in your terminal execute:

$ node app

If you want to run the server persistently (i.e. on a remote server) use the provided script to run it in a screen. If you are unfamiliar with the use of screen and running on a remote server, it is recommended to read the manual.

$ runapp

To later stop the server, use the provided script

$ stopapp

or interrupt it with CTRL-c.

To check that the server is running, open your internet browser and go to the localhost:


Database Access

The entirety of the database can be found in ./mlp.sql. To run any SQL command you desire on the database, navigate to ./database on your machine and run the script:

$ python

Here are some possible commands you may want to execute...

Note: you will need to execute python before each new SQL command.

The following command creates a table with two columns, one for text, one for integers.

$ create table example(text, INTEGER)

To insert a set of values into a preexisting table

$ insert into example values('hello', 101)

You can also view information stored in an existing table by executing

$ select * from example

Additional SQL commands can be found here


Testing is implemented using the Mocha testing framework. Within this framework, unit tests use should and some integration tests use supertest (with some possible overlapping). All test files are located in ./test.

The other integration tests use Protractor, which currently tests Firefox and Chrome. Downloads these browsers to test on them.

All Unit tests can be run from the root directory with the following command

  $ mocha

The integration tests are run atgit

More detailed testing instructions, and complete Integration tests, look here.

Bug Tracking

All bugs are monitored here under the issues subsection of our GitHub repository. New issues can be added by clicking the green “New Issue” button at the top right of the issues page.

Priority of bugs is determined by labels with "bug" being the highest priority and "wontfix" being the lowest. Multiple labels can be attached to one bug to create in-between levels of priority.


MusicLessonPlanner is built using a derivative of the "MEAN" stack:

Change Log

0.1.0: Initial BETA version


  • Added tooltips
  • Added Bug report buttons
  • Preliminary logo and styling for login, registration, about
  • The teacher's name is displayed when logged in.
  • Refactored controllers.js to clean up the code.
  • Added form validation, so no blank fields are allowed.


  • Implemented editing student records
  • Implemented editing lesson notes
  • Implemented rescheduling/canceling lessons
  • Fixed today view


  • Added a message when the user tries to login with the wrong email/password
  • Added a message when the user tries to create an account with a duplicate email


  • Fixed an email validation error
  • Fixed some of the date display problems (The dates being edited still are a bit ugly)


  • Fixed the issue with datepicker in editing where the calendar would become non-functional after the first use.
  • Refactored controllers.js to have separate controllers for editing and rescheduling.
  • Replaced the current pagination with a Angular-UI pagination, eliminating some odd errors and improving appearance.

0.1.3 (Pre-release)

  • Hopefully the last BETA version before 1.0.0
  • Changed all of the date input types from text with a BootStrap datepicker to date inputs that use each browser's default method. This will improve user experience on iOS, Android, and Chrome. (iOS for example has its own date picker which most users would expect.)

0.1.3a (Pre-release)

  • Fixed a bug where a dates were not displayed in fields for rescheduling and editing students.

0.1.3b (Release candidate)

  • Fixed email validation error in creating/editing student records.

1.0.0 Final Release

  • Removed Beta tag