This page contains some ideas for potential projects. If you're interested in working on one of these projects, please e-mail the gateway-discuss mailing list .
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 developer 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.
Developers 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 developer 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 developer will develop a functional testing library for SOAP-base web services. The developer 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 developer 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 developer 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 developers interested in service-oriented architectures (SOA). The optimal developer 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.
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 developer 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 developers 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 developers 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 developer will 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.