Course scheduling has been a pain for students around the US, what Ephemeris aims to do is not only create an entirely new interface to register, but also use algorithms to automatically create possible schedules for the student to choose from.
What it does
The Web App uses an algorithm to select among a pool of classes and displays all possible course combinations to suggest different schedule options. This algorithm takes out the manual labor usually involved in looking and registering for classes, and allows the student to view possible schedule configurations to fit his or her semester best.
How I built it
The hack consists of three parts: the first one is a web application where you can sign in and select your classes with your preferences (like selecting a specific professor, a specific time, or leave options without preference); this information is sent through a POST request to our localhost server; the second part of the hack, is a couple (or more) classes and databases that run the input, create the possible schedules according to the university’s course data, and produces an output; the third part of the hack, displays the possible schedules in an android phone. The phone supports a smooth calendar interface that also allows the user to sign-in and create or view a registration session.
Challenges I ran into
We had trouble trying to develop the algorithm to organize and schedule classes. Getting the data proved not too difficult, but finding an efficient algorithm to compare each class for conflicting schedules is challenging. Eventually, our team found a solution and implemented it into our program. Communicating with multiple devices through the network proved much more difficult than initially realized. For example, POST requests often failed unexpectedly.
Accomplishments that I'm proud of
The backend of the app effectively runs the schedule organizing algorithm. The user can choose what course preference he or she has. If no preference is selected, all courses of the same name will be considered for the schedule generation.
The Web UI for the main page turned out to look fantastic. The background displays a cool blue gradient which is much easier on the eyes than existing course registration software, and links to class registration and available classes are simple to use.
What I learned
HTML/CSS, Java, Android, and backend development. After tackling the problem of organizing classes, we developed an effective algorithm to schedule courses.
What's next for Ephemeris
Recommender systems could be implemented to allow students to see which courses are most popular and which teachers are better than others. Smartwatch and wearable compatibility will also be implemented soon.