Email Me
The University of Texas at Austin

Transcript Office

May 25, 2011

At the end of APCS1, our teacher gave us an open-ended end-of-year project. Everyone had three choices:

  • Build Something In Gridworld
  • Don't Remember: Probably Has To Do With Gridworld
  • Build A GUI App Utilizing Some Sort Of Database

While I wasn't too keen on a making a "boring" application involving a database, I definitely didn't want to make a Gridworld project. I don't have anything against Gridworld; it's very well written and has a very good OOP design to learn from. It's just after a whole year of playing around with Gridworld, I was getting very tired of looking at grids and terribly looking icons stepping around the screen in blocks...


Picture of the Transcript Office Program

Screenshot taken by Jonathan Lee

Since this was the end-of-year project, our teacher wanted us to make it official as well as practice some software engineering requirements. Each group was required to come up with a project proposal listing exactly what data will be maintained and exactly what features will be available. This was to be submitted before starting and both the idea and the proposal had to be approved by the teacher before programming away. Any further changes to the proposal made during the implementation phase also had to be submitted in writing and approved.

As a very typical Asian or student from Plano, I LOVE to check my GPA ALL THE TIME. This obviously led to my suggesting that we build a GPA/transcript tracker. Other ideas were thrown, but eventually my idea came out top. We brainstormed and came up with a proposal:

    Database:

  • Student Data
    • ID/Name
    • Grade Level
    • Auto-Calculated GPA
  • Course Data
    • Name
    • Semester Grade
    • GPA Scale

    Features:

  • Determine Student's Rank
  • Save Student Transcript to File
  • Search by ID, Name, or Course Taken
  • Display Top-Percentile
  • Sort by ID, Name, or GPA
  • Save Sorted Output To File

    Other Features:

  • Modify Students
    • Add/Delete
    • Change Name, Grade Level
    • Add/Delete Courses Taken
    • Change Course Grade
  • Change Course Scale

As we started to work on the project, implementing the features and unit testing to make sure everything worked, we realized we had forgotten something very important in our proposal. And so we had to submit our first proposal change:

    Added Features:

  • Save Database To File
  • Open Database From File
  • Give A Name To A Database

Nearing completion of the project and the due date, we once again submitted another change request. One of the features we had included wasn't working the way it should because of the way Windows processes line breaks vs Unix (\r\n vs \n) making Notepad formatting look unreadable:

    Removed:

  • Save Student Transcript To File

    Replaced With:

  • Load Student(s) Transcript To Clipboard

So that's the story behind this useful little program. Without further ado, here is the program, sample databases, source code, project proposal, and proposal changes: Download Me!

Jonathan Lee
University of Texas at Austin
Phone: 214.609.0803