SeniorQuoter is an installable web app in PHP which helps high school yearbooks collect quotes from seniors to be put in the school's yearbook. Read more...
Ten revisions and two days later, Alpha 2 has a lot of bug fixes in it. In addition, I have finally linked and added icons for all of the pages. Setup should go much smoothly as I have added a lot of error checking code in there. Plus some more fixes here and there. Quotes are now printed as "preformatted" to preserve line breaks. Every script has been edited for the making of this release!
However there is still a ways to go, including character encoding, debugging interface, multiquery setup, and several serious security flaws.
Fixed
SeniorQuoter 2.0alpha1 is out!!!! This version still has a lot of bugs (and is missing a lot of links to features), but is feature complete! SeniorQuoter 2.0 was developed by the Group Study at Haverford High School: Michael Plasmeier, Michael Gdovin, Shawn Ard, Sean Maguire, and Gary Hunt.
This version is only recommended for testing (and it needs a lot of that!) There are still many bugs in SeniorQuoter, including several security vulnerabilities. Also many pages are not linked to each other. The team will be spending the next week fixing the bugs.
There will be more posts coming in the next few days listing the features of Version 2.0 and the new administration interface. Also, we made many changes to the database (and more to come possibly), so I wouldn't try to upgrade from version 1. Instead this is for developers to play around with so we can get SeniorQuoter ready for quote collection next year.
Or comment on this article.
Bugs
bug_id bug_severity priority op_sys bug_status resolution short_desc
28 normal P3 All NEW Add options to config file
30 normal P2 All NEW Menus not linked right
36 normal P3 All NEW Style SQ Log in page
38 normal P3 All NEW Make redirect a function
40 major P2 All NEW Secure forgot password
41 trivial P3 All NEW SeniorQuoter Fav icon
42 major P2 All NEW SQ: When a user is disabled - don't let them forget password
43 normal P3 All NEW SQ: Make Button-Link CSS
44 minor P3 All SQ: Nasty words dictionary
45 critical P2 All NEW SQ: Cookies go cross install
46 normal P3 All NEW SQ: "Date registered" is changed if a user is edited
55 minor P3 All NEW SQ: Set up Debugging interface
65 major P3 All NEW Funny character don't display right in quotes
66 enhancement P4 All NEW SQ: Sort by letter
70 normal P3 All NEW Color Picker doesn't work in IE7
71 normal P3 All NEW Upload not secure
72 normal P3 All NEW Remember Me Doesn't Work
75 normal P3 All NEW Double Quotes on view quotes page
77 normal P3 All NEW SQ: Unify character encoding
78 normal P3 All NEW PDF Invitations Bottom Half Uneven
81 normal P3 All NEW SQ: Invitations need Logo and style
84 normal P3 All NEW Add Students Needs to only Allow 10 digit codes
85 normal P3 All NEW Upload Picture Needs Refresh
I ran David A. Wheeler's 'SLOCCount' on 12/28/2007 and found that SeniorQuoter contained 3.66 person months of code. This would have cost $41,153 to develop had it not been written by volunteers.
Total Physical Source Lines of Code (SLOC) = 1,493
Development Effort Estimate, Person-Years (Person-Months) = 0.30 (3.66)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.34 (4.09)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 0.89
Total Estimated Cost to Develop = $ 41,153
(average salary = $56,286/year, overhead = 2.40).
Our group study in web design at Haverford High School is going along fine. Last week we finished up learning PHP with database driven websites. All of the participants made their own "user registration" site. These sites had a register page, a list of users, ability to edit or delete a user, and the ability to log in and log off with session cookies. In addition, each participant customized their site using their knowledge of CSS to their favorite colors and fonts.
Last Friday, we gave presentations to our sponsors in the school technology department showing off what we had been working on. Shawn Ard started off by talking about phpMyAdmin and showing off his own personal "Articus" user registration page he had been working on in his free time. Gary Hunt showed off his user's site and talked about it's use of a MySQL database. Sean Maguire showed off his email sending script and his tip calculator he made a few weeks before. Michael Gdovin used his time to show the "black hat" skills he learned with an "email spam" page and a page which would crash the browser when loaded. Michael Plasmeier, group leader, showed off his plans and design for the SeniorQuoter admin site.
This week the participants started working on the SeniorQuoter admin site. Each participant was assigned to be the lead on a particular feature for the first phase. Michael Gdovin will be working on the configuration and install pages. Gary Hunt will be working on the view quotes page and the approval system. Shawn Ard will be working on the Colors and Design sections. Sean Maguire will work on the authentication and admin users. The managing students and passwords section is still open. Michael Plasmeier will coordinate and assist the other participants.
The week got off to an uneven start as Michel Plasmeier rushed to get the framework for the new admin site up and issuing test accounts on his new server. However, it was still a productive week as the team got used to using Subversion to track revisions.
Michael Plasmeier designed the site (using the Wordpress admin theme) and installed the basic framework. This week Michael started to think about the paths SeniorQuoter would run on and he learned how to write a "flat-file" configuration page.

Admin Theme CSS
Shawn Ard cleaned up the interface a bit and started to work on his color configuration page. This page will allow schools to easily customize SeniorQuoter to their school's colors. In the future, this page will have a color wheel (from Drupal) to assist color selection.

Color Page Code so far
Sean Maguire is building the authentication and admin users section. This week he designed the database schema and built the registration, view users, and edit users page.
CREATE TABLE `admin_users` ( `id` int(10) NOT NULL auto_increment, `first_name` varchar(20) NOT NULL, `last_name` varchar(30) NOT NULL, `email` varchar(100) NOT NULL, `password` char(40) NOT NULL, `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `authorized_by` int(10) NOT NULL, `lastlogonIP` int(10) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) ) ENGINE=MyISAM;
Gary Hunt finished the listing of quotes page very fast because he clearly knows what he is doing. After that, he started to work on an "approval" system and designed the additional database schema for the system. He will implement this next week.

View Quotes Page Code
Michael Gdovin built the configuration page for SeniorQuoter. This page will collect things like the name of the school and quote length limit and output them into a static configuration file.

Config Page Code
(A daily can be found on ThePlaz.com)