Project Summary - Collage Gradebook |
My project for the summer was to create a simple and efficient gradebook application. The gradebook is just a small part of a large project known as the Collage Project at UC Santa Cruz under the guidance of Tara Madhyastha. I was fortunate enough to get a project that taught me many new programming skills as well as provided advise and examples for my future. The people that I worked with were very friendly and always willing to help. Tara was great at encouraging all my little successes and helping to push me towards applying for graduate school. But now for the more technical details of the project:
The gradebook is designed so that a professor registered with the Collage Project can login and then upload a spreadsheet. The (registered) students of the class can then log in and see their individual grades. It's as simple as that really. The whole project was created using Java and Java Servlets rather than the traditional CGI. This was done for several reasons, but primarily because of the ease of use and modification and the simplistic way the XML and Servlets can Interact. The project runs on the Apache Software Foundation's Jakarta Project and uses the Tomcat servlet container. After I began to get the hang of basic servlets and manipulating the server, I began by creating the fundamental and underlying data structures and objects that were needed to support a gradebook application. Then I used the Java SQL libraries to connect my servlets to the MySQL database that will eventually be used as the central repository for the entire project. After the servlets were successfully inserting and extracting data from the database tables, I worked on uploading a file. For this I used the multipart request as described in the popular O'Reilly book "Java Servlet Programming Second Edition." The next step was then to get the data from the excel spreadsheet. For this part I utilized the jexcelapi library. This API made processing the data in the spreadsheet a snap! So putting all those pieces together, you have the basics of the gradebook. After a person logs on, they select a course from a list of courses they are registered for, then the data is extracted from the database and displayed in a nice HTML table. For the students they see only their personal data, but the professors see all the data that has been uploaded for a class. The professor can then upload a new or updated spreadsheet. I then added a few advanced features including the ability to use keywords. The keyword &url in the title row of an uploaded spreadsheet makes any value in that column of the spreasheet appear as a link so that students can easily look at realted sites or files designated by the professor. The keyword &box in the title row of an uploaded spreadsheet creates a textbox in the student's display so that the student can enter comments or questions that get saved into the database. The professor can then download the updates to save any additions or changes to the data or just view the changes in the display mode. Final touches will include a simple manual for use and perhaps an improved layout or more complete error handling. Additionally, we have plans to implelment the project in XML. At this point, however, it seemed like quite a daunting task and is not yet finished. The gradebook should be up and running on the Collage site in the near future. |