selfscheduler is a project developed to improve the usability and features of the existing collegescheduler used at many universities across the US. To do this we reverse engineered the socket.io connections going to and from the server to develop a 1:1 compatible implementation that allows us to include advanced features such as autoenroll, our solution to making sure that you get that one class that you need for the ultimate schedule. We also implemented a proxy between collegescheduler and the user to ensure that the users cookie is always available for quick schedule changes.
Node.js is the runtime we decided to use for this project because of its long standing reputation in the programming world
Typescript - Most if not all of the backend code is written in typescript. TS was chosen over javascript because for a complex project ensuring that types remained consistent throughout was crucial to having less error prone code. While it was a decent learning curve it definitely made development easier especially towards the end
Express.js was used as a minimalist web framework. It gave us low enough capabilities without going too low that it was hard to develop with
EJS was used as a minimalist template framework. It allows for the fine development of HTML with the niceties of server side rendering which was crucial for this project to be lightweight
Socket.io - used to interface with shopping cart and enrollment actions in collegescheduler
Original College Scheduler Proxy - Helped us implement the proxy part of the program with speed
sorttable - Allowed us to create easy to sort tables with minimal effort