|
From: <Eri...@Co...> - 2002-05-09 21:51:30
|
Bruce, Here are our contribution summaries. For more detail about volume of code changes and when they happened, check out ucsub.colorado.edu/~minick/onebook/whoDidWhat.html which, I believe, is endorsed as not blatantly wrong by the group. Those numbers are meant as a compliment to our summaries and peer reviews and don't mean a whole lot on their own. Andrew's Contribution Summary: Standard Code: My contribution to the code base was not as significant as those of some other members, but major pieces I added include: * System-wide date representation, conversion, integration, and storage * Complete groups functionality * ACLs JavaScript: Probably the biggest-bang-per-line contributions, code wise, were the JavaScript functions I built to enhance the interface. The list of what I can remember is as follows: * Implementation of selection and tabbing functions throughout * Select all/none code * Slick interface for passing onLoad() functions into the JSP template * Window focus and tabbing correction * text field/text input length control * Date passing from calendar Validation and Formatting: During the iterative process of source-code approval, I spent a very significant amount of time formatting source code, updating JavaDoc, and validating HTML output. Source code modifications include adding the team header to every file in the project, formatting everything to fit within 80 columns, standardizing the layout of HTML and Java files so they met certain code conventions, and standardizing variable naming use in files. During the same process, I also individually checked every line of JavaDoc in each of the Java files of OneBook to make sure all was correct. If documentation was missing, I added it. If it was mismatched or out of date, I rewrote or corrected it. In terms of code validation, though it was not a formal process, I used the W3C's code validation engine to check much of OneBook's code for compliance. Our goal was HTML 4.01 Transitional support, so I used that template with their program to check the output generated by the JSP engine. I found and fixed many overlapping tags, mismatched begin/end tags, and other problems of that sort. Testing/Help/Documentation: I was responsible for the help, test suites, and final testing of the Grading, Calendar, Portal, Groups, and Course Home Page interfaces. This work included writing test cases and results for each of the pieces, and creating all of the online help text for each section. Debugging: One of my favorite activities was to pick up an active bug from our bug-list on Sourceforge and find a way to fix it. Bugs I fixed include: * Select all/None in grading interface * Tab-order/Tab-Selection in grading interface * ACL functions in group interface * Name multiplicity in groups and users * JavaScript quirks in the calendar * Date display and processing across the project * The infamous Assignment sans file creation bug * Login field setFocus for sign-on * processInfoHandout, processCourseSection page URL redirection * Group creation intricacies Presentation: I contributed to the grammatical and formatting accuracy of the final presentation, and also calibrated the projector and computer to display the UI's colors correctly in the L3D so we could actually read the on-screen text. The Book: I helped the team to round up the most up-to-date copies of documents for the book, and was eventually the person who took it from a ZIP-file of a2ps-formatted code segments and Word documents (thanks, Joel!), to a printed, finalized form. Preparing the book at that level also included correcting formatting and layout errors for all of the documents, and unifying the presentation of each one. Joel Dice's Contribution Summary Code: Most of the code I wrote was for the Browser. This includes code added to most of the primitives to make them browseable, as well as an extensive UI for creating, browsing, and editing instances of those primitives. Additionally, I implemented delete() methods for all the primitives, including reference-counting code in the case of directories, and implemented cycle avoidance for the Group, Directory, and Document hierarchies. I also wrote our custom tag library, including a set of tags implementing the embedded help system. Finally, I worked with Gabe to engineer a partial redesign of the overall UI, specifically writing the Grades interface and most of the new navigation bar. Testing: I wrote and ran JUnit tests for most of the code I added to the primitives, and wrote 3 suites covering the browser for the Test Plan. Documents: I wrote the Developer's Manual and contributed heavily to the User Reference Manual. In addition, I compiled and created the materials necessary to compose a complete version of The Book. Finally, I wrote a lot of Javadoc. Presentation: I helped finalize the final presentation slides to a minor extent. I also helped plan the demonstration for that presentation and seed the database for it. Debugging: I fixed or helped to fix several major primitive- and database-level bugs, plus several UI bugs. These included the infamous primitive-cache-database bug, which was fixed using reflection, the problem of comparing a course section's term to the current term, the problem of associating the members of a group with the course section(s) that group is enrolled in and the grades that group has received, and the problem of storing descriptions longer than 255 characters in the database. Gabe's Contribution Summary: I played the role of code-monkey early on and was responsible for enough things that I don't really remember what all I worked on. From memory, a list includes: * Primitive tree debugging: I wrote a lot of JUnit code and didn't stop debugging until that bar was green. * File transfer: doing file I/O with HTTP is a bear, but I did find some tools out there (from O'Reilly at servlets.com) for uploading files. File download was a more esoteric problem to solve because our files are not just being sent over from the file system; they are all protected with ACLs and must be written to the output stream by custom code. * Statistics interface: The hard part about the statistics interface was the dynamically generated GIF that formed the most useful part of this page. Once our (very badly written) grading scheme was set, I used this to generate statistics. The UI for this page is pretty good. * UI redesign & implementation (with Joel): Joel and I redid the navigation and made the interface somewhat more coherent. This involved rewriting some of the primary pages. I think I did assignments, announcements, and handouts. In general, I handled most of the freaky weird problems (like dynamically generating a GIF or creating servlets for file transfer) and let the general programming up to the others. I also started and finished the user reference manual (with lots of Joel in the middle). Jamie Lunsford's Contribution Summary Code: I only did some code this semester. The major things I wrote were the Excel Dump of grades, Edit Class, Grading Plan, the current grade, and the original course list. Most of these I contributed the original code, and it was modified slightly later. Testing: I wrote tests for and tested about 8 of the final 20 or so test suites. I also submitted about 10 bugs that I found through doing these tests. Documents: I was in charge of the Pre-Beta Code Review. I looked through all the files to determine which needed more commenting and sent out information about which files still needed work. I also commented about a third to a half of the files myself. I printed up the code and bound it. I was also in charge of the User Tutorial, which I wrote completely, along with all the changes. I took all the screenshots shown in the tutorial, along with a bunch of others that probably never got used. And I wrote 8 of the test suites. Presentations: I helped finalize the slides for the final presentation. I also helped with the demo planning and helped seed the demo database. I also drew the pretty modular decomposition picture on the whiteboard. Debugging: I submitted and/or fixed a large number of UI bugs. Most of them were just little things that weren't the way they were supposed to be, but I did fix a couple of bugs that took you to the Apache error instead of our error page. Eric Minick's contribution summary Code: I wrote a bunch of code this semester, though not as much as some. My main contributions were the Calendar; the PortalBean which backended the Portal, Section Portal, Calendar, Assignment List, Handout List and Announcement List pages; and bringing a consistent format to the above pages. I did a lot of the original work on a couple of those pages as well. Testing: I was the test boss, and did some work to organize the test effort. Early in the semester I brought JUnit regression testing into the game, which helped early but wasn't very significant once the back-end solidified. I also organized the Test Plan, wrote the introductory sections and farmed out tasks to the rest of the team to write tests and execute them. I also did my share of that work. Documents: I had a lead role in the Test Plan, but otherwise only chipped in here and there in the docs. Presentations: For the final presentation, I churned out the first draft of the slides with a little help. I helped out with the demo planning as well. Debugging: I fixed my share of bugs, but I don't think any were spectacular. I also managed our bug list, prodded people to fix bugs and assigned bugs that weren't owned. |