It was about a year ago when I started working on my Student Council Attendance tool for Speed School Student Council. This tool was designed to solve the problem of accurately tracking member attendance and make my job as DoA easier. After successfully putting this tool into use, I was ready for my next challenge. The next item on my list was creating a way to transparently track our council's budget including how we spend our money. I ended up spending the majority of my spring break this year working on my newest open source PHP tool, Organization Budget and Finance.
This is my first web based application that I designed in such a way that it could very easily be used by other groups or individuals. The design takes into account no special considerations from SSSC and simply attempts to fill a very specific need. This application is not designed to be a complete financial tool or even be used to balance a budget or an account. I am hopeful that someone will come across this tool and find a use for it.
This tool is used for allocating funds and tracking receipts for specific line items. I have implemented almost all of the major features and hope to have our new DoF put this tool into use very soon. The tool is based around the concept of a line item. This is a budgetary item that can have any number of sub line items. This can go as many levels deep as desired or necessary. This essentially creates a tree structure which represents the budget itself. The top level is designed to be used for each years budget. The next level will be used for all of the major events or funded items. The successive levels provide additional details to how funds are allocated. Multiple funding sources can be allocated to each line item. Any number of receipts can also associated with line items and represent money spent. There is not direct connection between the funds and the receipts meaning the allocated funds are treated as essentially one pile of money that receipts deduct from.
The design approach for this tool was to keep it as simple as possible, specifically with respect to the database. However, some interesting features have been built on top of this core set of information. Receipts, sources, and line item's can be made private. The reason for this is that not all information should be made publicly available, at least initially. The obvious use of this feature would be hiding items that are not yet finalized, such as next year's budget, or hiding receipts that have not cleared the account yet or the amount has not been confirmed.
Other features include the ability search the database for specific receipts or line items. This will especially be useful when trying to find out how much was spent on something from a previous year. The budget pages use custom CSS formating which allows for easy printing and avoids all of the fancy styling that is part of the web site. Lastly, the entire database can be easily downloaded in a single click as an XML file for easy backup and data portability.
Why put in all of this work for this tool? In the end it boils down to transparency. I strongly believe that SSSC will benefit from more transparency. It starts with having this tool being open source and ends with our budget being available for anyone to look at. In the end, not many people will care how much we spent on pizza at Fall Festival or how much the E-Expo name tags cost for all of the council members. However, certain council members will care about this information and having an accurate record is priceless.
Our historical records with respect to finances have mostly been lost to time. The real judge of my success will be time. What will the state of these records be 10 years from now? Hopefully I remember to look back and see if I was successful.
Friday, March 26, 2010
Organization Budget and Finance
Thursday, March 18, 2010
Becoming an Open Source Developer
I have been writing computer programs for a very long time. My first experience was writing Logo programs when I was in elementary school. I have come a long way since then. In high school I began programming in PHP and was able to make functional applications. In college, as a Computer Engineering & Computer science student, I have completed a wide variety of programming projects, but only recently have I started releasing my code open source.
Monday, March 8, 2010
NAESC 2010 Best Website: http://speedcouncil.org
Every now and then the hard work that I do gets recognized. I was not able to attend this year's NAESC National conference in Austin Texas, but I did apply for the best publication / website. As it turns out, we won! So I don't have to explain everything, here is our application we turned in to the conference:
1. Describe the publication or web site's purpose, audience, and design.
The Speed School Student Council website serves as the main public face for the council. The main components for the website include individual member history, a list of events and descriptions, a calendar of events, a photo gallery, and council documents. The website uses the Drupal content management system to provide an easy to use navigation structure for browsing all of the content. A new addition to the website is historical meeting minutes dating back to 1948. These newly digitized records amounting to 1,900 pages of content that are now available. Newly created documents are managed in Google Docs and embedded directly in the website. This allows for easy collaboration and a much easier interface for members to modify and update the content.
2. What is the value of the publication or web site?
The biggest innovation of the SSSC website is the attendance records, committees, and achievements. The information displayed on the website is obtained from a web based application called Student Council Attendance (http://code.google.com/p/student-council-attendance/), an open source application developed by a member of SSSC. All of the members of the council are tracked using this system. Attendance at meetings is taken and automatically made available on the website. This includes automated reporting as members fall into bad standing. Committees and their members are also tracked and available on the website. A fun aspect of the website is Council Achievements, which are based off of achievements awarded in video games. Members are awarded achievements for serving on the council and doing various tasks, including attending major events.
3. Please link to a digital copy or image of the publication or the web site.
http://speedcouncil.org
One of our amazing freshman, Jeremy Bozarth, gave a presentation on how we use our website to promote our council and encourage involvement. Our website has a wide number of features that are not present on many other council's websites. While I have not heard all of the details yet, my understanding is the attendance for the presentation was very high and it was an amazing presentation!
Wednesday, February 17, 2010
Grooming my Social Graph
Google Buzz peaked my interest in my social graph. I knew about Google's Social Graph API but I never looked into it before. It turns out that it uses XHTML Friends Network, XFN for short, to declare links between various services. The entire system is built on top of the existing web and uses links that are already in place. When a person links to another person's page, they describe the relationship using the "rel" attribute. There are several defined ways you can describe your relationship using a link that are shown in the following table:
Depending on how you want to describe your relationship, there will be different values used in the rel attribute. You can also use multiple to describe a single relationship. For example, if you have met someone and are their friend you may use rel="met friend" in a link.
Monday, February 15, 2010
Google Buzz and the Not-So-Live Web
The thing Google has realized is that people want everything to happen instantly. This is most true when it comes to communication. However, that is not the area in which Google shines. They have probably done more for means of instant communication than any other company on the Internet. The product that comes to mind that no one really cares about is pubsubhubbub. This is a way that instant communication means can scale in a decentralized method.
What it comes down to is alerting other services when an action is performed. In my case this is most often posting a status message on Twitter. Facebook manages to import this message as me status in only a few seconds. Occasionally it doesn't work, but the delay is typically very small.
Now one of the benefits of Buzz is that you can import feeds from other services. One of the first things I did was import my Tweets into Buzz. Twitter is great because typically the things you say are time sensitive. Right now, messages take many hours to be imported into Buzz. So when I say I'm watching TV at 9 PM on Twitter, it gets sent out to the world on Buzz at 3 AM and my friends thing I'm crazy. You would think at the very least they would use the post time included as part of the Atom feed.
The real problem probably doesn't boil down to technology. The problem is more likely companies and openness. Twitter believes it has value in keeping their data locked down, at least slightly. This is not going to be the case moving into the future. Users are going to be in control of their data, and if we want two services to integrate and they do not, something is going to have to give.

