This page contains information regarding Google's Summer of Code 2008. Students who wish to participate can find information related to the gateway and the Vermont Department of Taxes , as well as possible ideas for projects, mentors, and contact information. Please note that this information is tentative, we have not been accepted as a mentoring organization yet. The list of accepted mentoring organizations should be posted on March 17th.
Located in the North-Eastern United States, the Vermont Department of Taxes Information Systems division is responsible for the automated systems that provide the capture, processing and presentation of data collected from all tax and related returns filed with the Department. The Enterprise Architecture group within the Information Systems division maintains several open source } projects including a collection of Streamlined Sales Tax and Modernized eFile software called Gateway , an on access virus scanner based on Clam Anti-Virus called inoclam , a web service for performing on demand virus scanning called Gateway Anti-Virus , a localization library called locale4j , a TMX file editor called tmx-editor , and two Apache Maven plugins maven-har-plugin and maven-sar-plugin . Our software implements many open standards such as XML , XSLT , XML Schema , SOAP , TMX , CSV , SQL , JAAS , MeF and SSTP . Our software uses open source technologies such as Apache XML Beans , JUnit , JBoss , Apache Axis , MySQL , HypersonicSQL , Hibernate , Java Server Faces , Apache Maven , OpenCSV and many others. Many states keep independently reinventing the wheel, implementing similar tax applications individually through internal efforts or with an expensive contractor or vendor. The Vermont Department of Taxes aims to offer states, vendors and individuals the option of becoming part of our community and helping further open source tax software, free of cost. We are currently assisting Nevada as the second state to begin implementing the Gateway as their solution to supporting Streamlined Sales Tax. For more information about our organization's open source efforts, see our 2008 Federation of Tax Administrators Outstanding Technology Award Nomination . You can also check out a demo of our Gateway portal project here or visit our project pages: gateway on SF.net , gateway on Freshmeat , gateway on CIA.vc , gateway on ohloh.net , gateway on fisheye , gateway on GovernmentForge and gateway on koders .
From the FAQ ...
Google Summer of Code (GSoC) is a program that offers student developers stipends to write code for various open source projects. Google will be working with a several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Historically, the program has brought together over 1,500 students with over 130 open source projects to create millions of lines of code. The program, which kicked off in 2005, is now in its fourth year. If you are feeling nostalgic or are interested in learning more about the projects we have worked with in the past, check out the 2006 and 2007 program pages.
While the majority of past student participants were enrolled in university Computer Science and Computer Engineering programs, GSoCers come from a wide variety of educational backgrounds, from computational biology to mining engineering. Many of our past participants had never participated in an open-source project before GSoC; others used the GSoC stipend as an opportunity to concentrate fully on their existing open source coding activities over the summer. Many of our "graduates" have later become program mentors.
Also see the Google Summer of Code 2008 Flyer .
Language
The primary language for development is Java . Other languages may be used depending on the nature of the project. If your project will use a language other than Java, please note it in your project proposal and provide some justification for the decision. The mentors and project members are willing to mentor projects in C/C++ , C# , Java , PHP , perl , python and ruby . If you'd like to use another language , please e-mail Tom Cort or Matt Gagne for approval. Students must be reasonably fluent in the implementation language prior to starting their project.
License
The primary license for code is the Mozilla Public License 1.1 . The primary license for documentation is the GNU Free Documentation License version 1.2 . Other OSI approved licenses may be used depending on the nature of the project. If your project will use licenses other than the MPL and GFDL, please note it in your project proposal and give reasons why your code must be licensed differently.
Platforms
Standalone applications be must support Microsoft Windows, Apple Mac OS X and GNU/Linux at the very least. Standalone applications must support big endian and little endian byte ordering on 32-bit and 64-bit hardware. A mentor can assist with testing on any of these platforms if the student doesn't have access to a test machine. Web applications must be cross browser, supporting the 3 most popular browsers on Microsoft Windows, Apple Mac OS X and GNU/Linux. Web applications must be deployable (hostable) on GNU/Linux. Again, a mentor can assist with testing.
Project Ideas
Several project ideas can be found in the Ideas List below. Students should feel free to expand, narrow, tweak or completely change the scope of the project ideas to fit their skill set and estimated time line. If you have your own idea or want more information on the ideas below, you can contact Tom Cort or Matt Gagne . Custom ideas should be reasonably self-contained, completable by a student in the time alloted and have mentors available who can provide guidance. Projects should be tax related or provide significant functionality that enhances the operation of existing tax software or our open source software development process.
Status Reports
Students will be required to submit a status report every 2 weeks during the course of the project. The status report will include a bulleted list of accomplishments during the previous two weeks and goals for the next two weeks. The student will receive feedback, communications and guidance from the mentor throughout the summer.
Security Notes
Students will not be granted access to any taxpayer information, nor will students be granted access to Vermont Department of Taxes computer systems nor any restricted areas within the building used by the Vermont Department of Taxes. Development will be done on the student's own computing resources with the project resources provided by Source Forge (bug tracker, subversion, www, etc). All student code will be audited for security by the development team.
Submitting Project Proposals
All proposals should be submitted through the GSoC web app between March 24-31, 2008. See the answers to how does a student apply and should students send proposals directly to the mentoring organizations from the Google Summer of Code 2008 Frequently Asked Questions page. If you'd like to discuss a project idea or have someone provide feedback on your proposal draft, please e-mail Tom Cort or Matt Gagne .
Your application should be a full project proposal. Remember that your proposal is your first (and only) chance to tell us who you are, tell us about your ideas and show us how committed you are to your project. Do not submit incomplete proposals. For your proposal to be considered complete, it must answer at least the following questions...
Who are you?
Give your name and e-mail address. Tell us where you are academically; name the school you attend, what your degree will be and how close you are to getting your degree. Tell us where you are physically: state/province/territory, timezone and country.
What do you want to do?
In your own words, give a proposed project title and a paragraph summarizing what you'd like to implement. Don't copy and paste the paragraphs from the ideas list.
What are your qualifications?
List any open source projects you've contributed to, relevant work experience, relevant personal experience and any courses you've taken that relate to the project. Tell us about the most interesting, complex and/or rewarding software you've developed. We would also like to know how long you've been programming in the programming language you would like to use for implementing the proposed project. Convince us that you are capable of doing what you are proposing. We don't expect you to know everything, but you should have a solid background to build upon.
What is your plan for completing this project?
Tell us how much time you have to commit to the project (average number of hours per week), and tell us if you plan on taking any vacations over the summer or have any other responsibilities like another job, other open source projects, summer camps or summer school. Describe any jobs or long term projects (3 or more months) that you've successfully completed. Convince us that you are capable of committing to something and following through until the end, and convince us that you will complete your proposed project.
What is the end product and how you will get there?
Describe what the end result will be and what it will do. Provide some details on major milestones you hope to reach and when you hope to reach them. Tell us about your goals for the project, what the features of the end result will be, what software libraries you might use, what testing you will do and what documentation you will write. This should be a large part of your proposal. Show us that you've seriously thought about the project and how it might be implemented.
What are the benefits of the project?
Describe the benefits of your project. Tell us who will benefit from the results of your project. Convince us that your project deserves funding and will provide value to a lot of people.
The following people are available as mentors. If your project is been accepted, you will be assigned one or two mentors to support you.
Tom Cort is a Systems Developer at the Vermont Department of Taxes. He is a graduate of Bishop's University and holds a BSc in Computer Science and a minor in Mathematical Contexts . Tom participated as a student in the 2006 edition of Google Summer of Code. He was a speaker at the 2007 Government Open Source Conference and has contributed to several open source projects. E-mail Tom .
Matt Gagne is a Systems Developer at the Vermont Department of Taxes. He has recently graduated from Queen's University with a Bachelor's of Computing . Past internships in both the public and private sectors have given him a robust introduction to the field of computing. While working for the state Matt has had the unique opportunity to contribute to the community through many state open source projects. E-mail Matt .
Shawn Kasulka is a Senior Developer at the Vermont Department of Taxes. He was involved in open-sourcing the Gateway and has overseen its development since the beginning. Shawn presented the Gateway project at The Federation of Tax Administrators 23rd Annual Technology Conference and Exhibition . E-mail Shawn .
Some dates of interest, more a detailed list can be found in the FAQ ...
March 17: Accepted mentoring organizations announced at http://code.google.com/soc/ .
March 24: Student application period opens.
March 31: Student application deadline.
April 14: Accepted student proposals announced at http://code.google.com/soc/ .
May 26: Students begin coding for their GSoC projects.
July 7: Mentors and students can begin submitting mid-term evaluations.
August 18: Mentors, students and organization administrators begin submitting final evaluations.
If you'd like to contact us, please e-mail Tom Cort or Matt Gagne .
These are some ideas we came up with for the Gateway that are well defined. Students should feel free to expand, narrow, tweak or completely change the scope of the project ideas to fit their skill set and estimated time line. If you have your own idea or want more information on the ideas below, you can contact Tom Cort or Matt Gagne .
Income Tax Preparation Software
The IRS, the State of Vermont and many other state tax departments are implementing a new XML-based standard for electronic filing of personal income taxes called Modernized e-File (MeF). It would be beneficial to have open source tax preparation software that allows tax payers to file their returns electronically. For this project, the student would implement a graphical user interface that would allow tax payers to prepare their own income tax returns. The software will read in tax forms specified in an XML format and display a GUI with a help system and the appropriate text and entry fields. The software will implement a rule based data verification system using rules defined in XML files. This project may be implemented as a web application or a standalone executable. For standalone applications, the software must allow a tax return to be transmitted via a SOAP -based web service from the tax payer to the tax department or software vendor.
Students from outside of the United States and Vermont should not be discouraged from submitting proposals for this project. We're not looking for something that is specific to Vermont, the United States or modernized efile. The ideal implementation will provide enough flexibility to work with tax forms from any locality.
The optimal student for this project will have experience with XML schema, XSLTs and interface design. Experience with SOAP, secure programming, tax preparation, subversion, open source development and the source forge project infrastructure are a plus. This is one of the easier projects.
Functional Unit Test Framework for SOAP Web Services
Over the last year or two, the Vermont Department of Taxes has implemented several SOAP -based web service and web service clients. JUnit tests are run just after compilation throughout the code base, but those tests only take us so far. The JUnit tests only really verify how specific methods or classes function. Testing of live web services has always been a manual process for us. For this project, the student will develop a functional testing library for SOAP-base web services. The student will use the library to implement a client that can perform functional testing with a Streamlined Sales Tax web service. The client will call one or more web service methods with certain input data and examine the results. The input data will be defined in an XML format. Some data will be static (example, client authentication credentials), some will be random, some values will be last_value+1 and some will be dynamic but predictable (example, system date). Support for fuzzing is a plus. If time permits, the student can also implement a web service. The web service will be used to simulate certain error conditions (database connection failures, null results, extremely large results, unexpected results, etc) and evaluate how our various web service clients react.
For extra credit, the student can develop alternative testing interfaces. For example, over a weekend one of our project developers created a pong game, SSTPong , for generating test data. The game made testing more fun and allowed non-developers to generate test data for large volume concurrency testing.
This project is a good choice for students interested in service-oriented architectures (SOA). The optimal student for this project will have experience with Java, XML and web services. Experience with SOAP web services using axis, unit testing with JUnit, subversion, open source development and the source forge project infrastructure are a plus. This project is somewhat difficult.
Here are some ideas that aren't very well defined. If you're a talented student with a lot of imagination, you could expand on these. If you want feedback on your idea, you can e-mail Tom Cort or Matt Gagne . Your project idea should define exactly what you plan on doing; it should be enough work for an entire summer. You may also wish to combine ideas (like Data Mining and Visualization), that's fine. If you e-mail Tom or Matt, they will discuss your idea with other developers and either add it to the ideas list or give you some ideas for improving it. Either way, you will get a personal e-mail response.
Data Mining
Streamlined sales tax account records include several interesting characteristics like NAICS codes; a NAICS code identifies the industry a business is involved in (example, 111991 = Sugar Beet Farming). A student could develop software to extract interesting statistics (example, are people more likely to buy from a sugar beet farm in the summer or in the winter?). More useful statistics might include expected return volume for next month and revenue projections. This project is ideal for math/stats students who enjoy extracting informative tidbits from mountains of information. This is one of the easier projects.
Data Visualization
We're looking for new and interesting ways to aggregate, consolidate and display tax data. With Streamlined Sales Tax, we receive tax returns from all over the country. It would be neat to have a colored or raised map of the 50 states to visualize where the money is coming from. Really extreme visualization ideas will also be considered (see psDooM for Linux process visualization). This project is ideal for students with data processing and computer graphics experience and a math/stats background. This is a medium difficulty project.
Compliance
An unknown number of sellers who use online classifieds and auction web sites do not report the profit they make on their income tax returns. Similarly, an unknown number of sellers fail to collect state sales tax. A student could develop software that will find these people. The software would have to crawl web sites, use web API and other methods to find sellers operating within Vermont. The software would also have to perform additional analysis to determine the sellers' identities and determine if any financial transactions took place. This is an extremely difficult project.
At the moment, this page only includes project ideas that the development team came up with. We are happy to entertain project ideas which are not listed here. If you would like more inspiration, you can also explore some of our other projects like inoclam , Gateway Anti-Virus , tmx-editor and locale4j . We'd be happy to mentor students for those projects, provided the proposed Summer of Code project is sensible. You can submit your original idea for feedback to Tom Cort or Matt Gagne . Tom or Matt will discuss the idea with other project developers and either add it to the ideas list or give you ideas for improving it. Either way, you will get a personal e-mail response.
We hope that we have given you a useful overview of our project and the kind of work we are looking for during the Summer of Code. This is a great opportunity to contribute to one of the first state government open source projects of its kind. If anything on this page has caught your attention we encourage you to get in touch with us to discuss it further. Thank you for your interest in our project. Questions, comments, and suggestions are all welcome!