During my three months here at Princeton I have got to get excited about and appreciate many of the advantages Princeton gives. I have also realized that some of these opportunities come with great responsibility. One of such opportunities is the freedom to craft our own academic experience with the courses we want. While this is a great opportunity, sometimes it may become more frustrating then if all the courses were forced to us.

Many of my upperclassman friends also agreed that even for them it is sometimes difficult to see a clear path, especially if they want to do several certificate programs.

This application comes to help all of us through visualizing a rough four year plan of courses given our interest

What it does

It has built in data of all the major and certificate course requirements. Getting major, degree(AB and BSE) and certificate program interests from the users, the program goes through the tree of possibilities and visualizes a schedule to accomplish all of that in 8 terms. The user can then customize the generated output by drag-dropping and by switching between equivalent courses or courses under the same general requirement(the last two are planned but are not currently implemented)

How I built it

It is a web application having AngularJS and jQuery in the frontend, MongoDB and Node.js in the backend. I have used bower and npm to keep track of dependencies

Challenges I ran into

It is not hard to tell that I am as far from design as I can get. Although in this project the intrinsic beauty of angular components kinda shadowed it, it still is obvious. It was one of the biggest challenges for me to make this app look somewhat nice. Because I had not done any angular project before, this was challenging in terms of angular specific javascript subtleties.Unlike to what I thought in the beginning, my javascript intuition was not enough to figure things out. Last but not least, I had difficulties finding teammates. Because I was doing a Princeton specific project, others were not very interested and it was even hard for me to explain why exactly this is needed in Princeton. At the same time it was difficult to find Princetonians around. I can only hope that in the following HackPrincetons there will be more participants from Princeton

Accomplishments that I'm proud of

  • I managed to implement drag&drop -I applied some cos226 skills when building the graph( did not manage to complete this part as did not know enough about graphs yet!) ## What I learned
  • that React is not the ultimate answer of Life, Universe and Everything
  • how to use Microsoft Azure backend services

What's next for 4-years-of-fun

-Revisit design

  • update the missing data
  • ask different majors to verify that there is correct information about their majors
  • possibly implement with Course evaluation website and Recal
  • implement authentication and build student preferences using TigerHub info
Share this project: