OpenUhClassScheduleHelper: Milestone 2

onboarding

An overview of the application

Over the course of the last few months, my team and I have been working on building the Open UH Class Schedule Helper web application. The primary goal of this application is to help students be better prepared when registering for the coming semester. We attempt to accomplish this by providing several useful tools including a course search function, the ability for students and teachers to leave Late Breaking News, automatic update notifications as well as several other useful tools.

1. The Search Function
After logging in to the web application, the user is redirected to the search form. From here, the user can search for courses by a number of different criteria including department, course instructor, course title, focus attributes, meeting date and time. Results are presented in a easy to understand format.

news
2. Late Breaking News
We’ve implemented a system that allows both teachers and students to leave comments that they feel would be beneficial to students perusing the course offerings. Instructors may sometimes want to provide additional enrollments restrictions or elaborate on the course descriptions. Students could comment on what others could do to be better prepared for the course. This is feature allows this to happen.

3. Automatic update notifications
With the course information database updated regularly and the addition of teacher and student comments, the content of the web application is dynamic and always changing. To keep our users always in the know, we will be implementing a notification system. This system will send users either an email or a text message when new or revised information for a course they have added to their schedule or watch list becomes available.

4. Jquery FullCalendar Implementation
The jquery tool ‘FullCalendar’ is being used to display the users current schedule on both the Results Page and the My Account page. On the results page, events representing the day and time of a course are dynamically added to the schedule as the user mouses over an entry in the results table. If there are no conflicting events already on the calendar, the event is colored green; if conflicts exists, the event is colored red. Events already added to the schedule are colored blue.

Full Calendar displaying current schedule and temporary events.

Full Calendar displaying current schedule and temporary events.

View the installation instructions here.
And the deployed application here.

Works in Progress

While we have been ambitions with our plans for this application, implementation has been moving at a glacial pace and unfortunately, not all of the functionality mentioned above has made it into Milestone 2. In this section, I will discuss the functions of each page that are not yet complete.

The Search and Results Page
Currently, users are not able to add courses to their schedule or wait list from this page, nor are they able to add Late Breaking News.

Since the search form, results table and current schedule are all displayed on this page, pixel management has been, and continues to be, an issue. In an attempt to manage the available space, we’ve decided to limit the height of the results table by restricting the number results displayed at any time to 5; all other results will be paginated. This function has not yet been implemented since it relies on a mySql backend.

Pixel management continues to be an issue.

Pixel management continues to be an issue.

The My Account Page
From this page, a user will be able to set their notification preferences, view their schedule and watch list, view and edit their comment history and see what they’ve schedule in previous semesters.

Currently, we do not save the users notification preferences to the database, nor do we have a mechanism in place to issues notifications when necessary.

The jquery ‘FullCalendar’ tool is also used on this page to display the users current schedule as like previously reported, the events are not properly placed when using the deployed application.

Under the ‘Comments’ tab, every comment the user has made is listed in a table. From here, the user has the option to edit and delete their comments. In its current state, users are only able to delete a specific comment; the edit function is not yet complete.

The Map Page
Eventually, we would like to be able to display the location of each of the courses in the users schedule on a map. This page and function has not been implemented.

The Instructor Page
Since we are using CAS to validate login credentials, we are unable to access the instructor page by this method. Therefore, a link is displayed on the On boarding page that takes us to the instructor page. This page will identify the instructor, search the database for all course being offered by that instructor and display the results in a table. From here the instructor will be able to add, edit, and delete comments associated with each of their courses. These functions have not yet been implemented.

The Development Process

Developing this application has been difficult. I feel that we spent too much time working on the mock up and not enough time on implementing the functionality. If I recall correctly, our team was able to meet only once after being given the green light to begin building the app and although we met regularly over Google hangouts, those conversations are not as informational or productive as meeting and discussing the project in person.

I also feel that we could have been better prepared before moving into this phase of development. While working on the ui mockup, each page could be assigned to a specific team member and that person was free to build it however they wanted because the work they were doing rarely affected the work someone else was doing (because it’s just ui). This is not the case when implementing functionality; a component one team member is building may need to be used by the other team members. I realized late in this process that working with the group to develop an interface for each java object would have been extremely useful. This would have allowed all members to work on their component without having to wait and see what methods were being implemented by other team members.

Going forward, I think our group needs to communicate better and more frequently. I also think we could do a better job of allocating and distributing even amounts of work among all team members. Although we attempted to do this, it is difficult to assess how much work each issue requires. The list of Github issues can be found here.

Hackaday

Fresh hacks every day

Slashdot

Professional Portfolio