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 mlp.zenzie.net. This website redirects automatically to IP address
- 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 install.sh
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.
To later stop the server, use the provided script
or interrupt it with CTRL-c.
To check that the server is running, open your internet browser and go to the localhost:
$ python dbtest.py
Here are some possible commands you may want to execute...
Note: you will need to execute python dbtest.py 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
The integration tests are run atgit
More detailed testing instructions, and complete Integration tests, look here.
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:
- AngularJS: for enhanced HTML control
- Express: framework for Node.JS
- node.js: backend framework
- Twitter Bootstrap: CSS styling framework
- SQLite3: Database
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.
- 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.)
- 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