Inspiration

Princeton students constantly look through the Course Registrar based on their major, distribution requirement, or professor. However, this is considerably more difficult on mobile devices due the the course registrar's inconvenient set up, which is designed exclusively for desktops/laptops. Consequently, CLASSified is designed to greatly facilitate mobile portability of Princeton's course registrar.

What it does

Given the search query, divided into Course Name, Distribution Requirement, Professor, Major, the application accesses the appropriate source code of the course registrar and scrapes the necessary information from the XML format. This information is then presented in a convenient 2 list view (open and closed courses) through which the user can scroll.

How I built it

We built it using Android Studios, majorly taking advantage of Java's string library. We've noticed that the URL of the course registrar contains keyword fields that we could readily exploit using simple string concatenation. Consequently, after acquiring the desired URL, we access its source code and parsed through it to scrape the necessary information for all the pertinent classes.

Challenges I ran into

Debugging for possible user mistakes when searching for different queries was especially difficult, for the program could crash depending on the user's input. Consequently, safeguarding against this mistake has been most time consuming as well as challenging.

Accomplishments that I'm proud of

The fact that we were able to build this during the time slot given has been something that we are somewhat proud of. Furthermore, we believe that app idea itself could be further developed--meaning it has much more potential-- so that more students can readily take advantage of this application.

What I learned

We have learned a number of things through this experience. For once, we learned how to predict the rather unpredictable behaviors of users, considering highly unlikely cases (boundary/stress testing) and how we can design our code to handle these kinds of situations. In addition, we learned how to use http request to access the source page of a web page and find the necessary information from it.

What's next for CLASSified

We are currently working on an implementation in which users can access more information about a given course after he/she clicks on a course in one of the list views. Furthermore, the front end can definitely be improved upon so that we can provide a more enjoyable experience for the users. Most importantly, we are also thinking about how to implement another search function that displays what other open/closed courses meet during the time slot of a certain course for which the user searches. This will facilitate a further improved function that the course registrar currently lacks. Our final goal would be to have this app be available on both Android Google Play Store as well as the iOS App Store.

Share this project:

Updates