This project was born out of our collective confusion about our path within the CS field. There are so many different different specializations, and it can seem daunting to declare your interest for the next few years and beyond. When we came across the PeterPortalAPI, we thought of the perfect project to help our fellow students who might also be struggling to determine their specialization!
Specialization Matcher matches the classes users would like to take and the best specialization based on the selected classes. We utilized the PeterPortalAPI to create a quiz to match the classes a student wants to take to the associated specializations. In addition, we compiled all of the resources we found to be valuable in determining one’s specializations.
We utilized HTML, CSS, and Javascript for the frontend and APIs for the backend. In addition, we used an algorithm and data structures to determine the specializations that best fit the user.
One major challenge we had as a group was a lack of experience in web development and in particular using JavaScript to program the back-end development. Each of us struggled with using JavaScript, but through the help of volunteers and online resources we were able to learn how to program the ideas we had come up with. Another challenge we faced as a whole was the pressure of the time constraint. Since we had such a short amount of time to program both ends of development, it was hard to simplify and implement our project within the allotted time.
We are very proud of the user interface, as we challenged ourselves to implement many features that we have never created before, such as the vertical navigation bar and the collapsible button. We are also extremely happy with our website aesthetics. Finally, we are most proud of our use of efficient algorithms to determine how a set of classes would match to certain specializations.
We became much more comfortable with both front and back end development through this project. We were able to create the front-end and connect to the back-end much faster and seamlessly than in our previous hackathon. We also utilized more intermediate CSS concepts, such as grids and dropdown menus, to increase the aesthetics of our website. Another concept that was important for our website was the difference between having different HTML files and overwriting the same file.
The thing we found most interesting to learn, however, was new Javascript functionality. Most notable were the toggle function and how to protect our website by preferring createElement over innerHTML.
In the future, Specialization Matcher will include more information to help computer science students navigate difficult tasks, such as finding the best professors to take through linking Zotistics, Rate My Professor, and relevant Reddit pages.
Another major feature we hope to implement helps users optimize their four year plan. It will include an interactive table that would allow users to drag and drop classes, sorted by specialization, into a four year plan. It would also include constraints so that users could not arrange their plan in a way that would ignore the necessary prerequisites and corequisites. It would also have a pop-up to show which prerequisites are necessary for each class the user wants to take.
In addition, Specialization Matcher will include more questions to help users find different options for adjacent minors or second majors, as well as check constraints for allowed major and minor pairings against their preferences.