Sent first e-mail about the project to Ryan Walsh and Caitlin Sullivan
Talked to Kernighan about feasibility of project.
We are now officially a group of four!
First Meeting. Decided on basic features
Met Joseph Perla to discuss implementation of SCG.
Discussed our upcoming meeting with Kernighan.
Met with Kernighan for the first official "project meeting". Installed Subversion
Installed Apache. Decided on Platform Level Architecture
Submitted Project Proposal with database structure
Found the Registrar's Magic Text Files
Experimented with various prerequisite expressions specifications. Some conceptual changes in design.
Met with John Grieb and got course table specifications
Group meeting. Discussed the use of separate pursuit codes in addition to group codes. Designed and agreed on user interface. Split up tasks based on newest block diagram.
Meeting with Haakon.
Preliminary Interface Specifications
Figured out (a) way to implement cross listings. Discussed the interface requirements of the GUI and the php interface of database access. Sketched preliminary class definition for database functions, and created a proof-of-concept rudimentary drag-n-drop implementation. Started coding! Work going on in import scripts, GUI and report generator
Created the prototype directory structure. Added a very rudimentary version of the the Pursuit.php interface as an example that we can work off of.
Preliminary creation script working. First database working! Database specifications updated.
Came up with a format for specifying groups and program requirements. Meeting with Haakon. Haakon wants back-end finished as soon as possible(?).
Started work on the php interfaces
Basic GUI template up
Initial version on report generator working
Modified interface and database specifications to allow for distinctions between pursuits and semesters. Created a new table, offerings for this purpose. Preliminary insertion script up. Built PHP backend interface framework. Got some basic drag and drop stuff working, although there's lots of bugs still. Created schedulepane.php which will draw up the semesters in a given schedule. Added searchpane.php. Now we have a basic prototype functionality. gui.js contains all the javascript for the drag n drop. Right now the Droppables are not recreated after adding a class, so you can only add once, then you have to refresh. Also no way to delete a class.
Initial Searching working
Prototype Presentation. Nearly complete database interface framework with most of the important accessor methods implemented, a basic functional set of scripts for data import, a working drag-and-drop interface to the course schedule, a basic keyword search, and a working report generator that produces so far pretty unreadable simplified prerequisite expressions.
GUI meeting after prototype. Discussed various design issues including the search bar.
Switched to POST. Database entry automated (without repetition of rows). Added crude processing indicator.
Met with Haakon. By now we have an extensive things-to-do list for the Alpha test next week. We explain our plans to Haakon and demonstrate a few new features (more advanced search, status indicator). Big organizational change: now the .css is broken down into three files, and javascript is beginning to be broken down. searchpane.js defines a searchPane Object that is used instead of global functions, making for MUCH cleaner javascript code.
GUI restructuring: now all schedulepane functions separated to schedulepane.js
Preliminary logging
Functionality in front-end modified. All the javascript is now in place to separate updating of the GUI from updating of the schedule. When you add courses to a semester, it is instantaneous, and deleting those added courses is also instantaneous. Because no AJAX update replaces HTML, drag n' drop now works in IE after adding a class. Because no AJAX updates happen anymore, nothing is saved to the MySQL database. (!)
Instantaneous adding and deleting of all pursuits has been implemented. Appropriate default messages for different semesters. All schedule state is stored in javascript. Schedulepane.php now only uses JSON to send data back to the client (much more efficient/cleaner). Search tabs working (this version uses db10)
Database structure changed so that pursuits are part of groups with their own code so each pursuit has a primary group. Decided to revise language for prerequisite expressions
New version of report generator uploaded in preparation for major improvements in the future. Input/output format has changed. Output format now supports subexpression groups, clean syntax error handling, display of utilized pursuits, and multi-line printing of simplified expressions. PrereqReport.php needs to be changed significantly to conform with the new standard.
Preliminary Login page up but without security. Uses cookies.
Realized Registrar's Prerequisites were very badly defined
Report Generator working!
Presentation!
Started testing with users
Tables now can have pursuits with the same code but different titles (except for groups, memberships). Fixed GUI so that it always displays two columns. People with lower resolution can just maximize their screen, and no more "pushing" of the schedulepane by the searchpane.
Work done on documentation
Project submitted!