Inspiration

We wanted to work on a tool that we would find personally useful, so we started thinking about school-related projects that we could build. All the school organizer apps that currently exist are either pretty bare-bones, far too full-featured, or specific to a single niche. We wanted to build something easy to use that would also let us keep our lives organized and our tasks at hand.

What it does

Scheduler is a course calendar application and a to-do application combined into a single view, optimized for planning your day or preparing for the week ahead.

How we built it

The app runs in Angular.js, making API calls to and from a database via AJAX requests to PHP scripts. The uncommon combination of Angular with PHP came from our existing skill sets and our interest in learning how to integrate them with one another.

Challenges we ran into

Not surprisingly, integrating Angular.js with PHP proved difficult at times. Using JSON, the obvious choice for data interchange between the front and back end, most of these issues were eliminated. More challenging was that there are certain quirks of the way each environment runs, and we had to quickly grasp an understanding of how each other's part works in order to be able to ensure they worked together.

Accomplishments that we're proud of

Getting it working! Events are successfully retrieved from the database. We successfully implemented the ability to create a new event, including support for multiple calendars and recurring events.

What we learned

We each learned how to work with each other's respective environment, and have a better understanding of how Angular as a front-end framework fits together with PHP as a back-end API.

What's next for Scheduler

We did not have the opportunity to implement editing and deleting events. The database schema and API calls are prepared for these features to be extended in the near future, but there was simply not enough time to implement decent front-end interaction for these operations. They will include the ability to drag and resize events, as well as the option to change a recurring event for all occurrences or just the selected one.

Additionally, to-dos will be added in a future version. To-dos will be assigned to a calendar, with a due date and a date on which they will start "bothering" you to think about them (the default will be immediately, but can be changed to defer a task for a few days or to push it back to a specific date). A to-do will show up on the calendar alongside events, either in a class (if it's due in that class) or at a time (if it's due outside of class).

Built With

Share this project:

Updates