CourseReg
From MWWiki
Contents |
Automated Course Registration
Project Overview
The goal here is to create a web-based application/service that allows automatic registration of courses. There are several side projects to this initial goal, but currently the focus is to allow users to log in, input desired courses and time to register, and have the application submit their requests automatically on their behalf at the designated time, forwarding the results to the users afterward.
Description
Since course registration is performed electronically through Carnegie Mellon's WebISO portal, an automated process with which to register only seems logical (though perhaps not within the spirit of such a thing). This implementation provides a way for, given specified user authentication credentials and course number and sections, this application will automatically authenticate the user through the CMU WebISO portal. It will then proceed to the course registration website and attempt to automatically register the user for the selected courses.
The current beta status indicates that a working prototype has been developed. The proof-of-concept script below will, given the correct settings (within the script itself), successfully register the user. There is error-checking (though it is minimal), and error recovery is nonexistent. A more modular approach is also desirable, so as to improve the scalability and allow for greater depth of deployment.
Ideally, given sufficient development time, a database with website front-end would be deployed to allow users to input their credentials and their preferred course lists. A crontab is assumed to be at the heart of this, executing periodically and checking for any pending "jobs", or in this case, registration requests. Those requests will then be executed at an arbitrary time. In the event of an error, the original users will be notified so they can take appropriate action.
Status
Iteration 1: beta
File Structure:
- curl.php (proof-of-concept)
Notes
- All global configuration values are set within the POC script (see above)
- Using settings in POC script:
- WebISO authentication is performed (given valid username and password)
- Access is obtained to CMU course registration
- Administration screens are successfully navigated
- Requested course number and section are inputted (again, as specified in script configuration)
- Upon registration success, user is notified
- POC script functions perfectly
- Next iteration will feature a more mature and modular implementation
- Significant improvements could be made to RegEx, allowing for a broader range of HTML parsing
- Also design screen recognition
- Academic advisor verification
- Semester selection
- Course and section input
- Number of credits for selected course (research, thesis, etc)
- Handling registration failure
- Allow waitlist option
