This is a registration assistance web application written in Node.js; access the site at gtcoursewatch.us
node app.js
chmod +x start
./start
Note: mongod must be running in both cases.
The core of the course watching system is a web scraping poller in Node.js that checks OSCAR for available seats every two minutes or so using setInterval. The system also automatically updates itself for new terms based on the date by using setInterval. Course watch requests are persisted using MongoDB.
This feature would not be possible without PhantomJS, which is a really cool and powerful tool. Basically, using the information a user provides, we can log in and register them for a course with Phantom running as a child process of Node.js on the server.
A request to the server is made to scrape oscar for course information, which is then displayed in an animated pie chart made with Mike Bostock's fantastic d3.js data visualization library.
Since I decided to experiment with WebSockets and socket.io when I started this project, adding live chat was quite simple. WebSockets are the supposed to be the future, and I can totally believe it.
- Node.js
- MongoDB
- PhantomJS
- d3.js (Data Visualization Library)
- socket.io (WebSocket Library)
- Twitter Bootstrap