Welcome to Jon Wilber's Website!

IMPACT

Description

IMPACT is a Java web application that was developed for the state of Wyoming's Air Quality Division (AQD). Its purpose is to allow AQD to track and manage air emissions from facilities located in the state. IMPACT is based on the Ohio's STARS2 system. Essentially the application provides several features from reporting to permitting that provides an all-in-one solution to managing facilities and their air emissions.

Role

Java Developer

Process

JavaServer Faces (JSF 1.1) with Oracle Application Development Framework (ADF 10.1.3) served as the backbone of IMPACT's MVC framework for the user interface. JavaBeans are utilized as models for data and functionality. This was all contained by Apache Tomcat 7. Microsoft SQL Server 2012 was used as the system's database server, and Spring was incorporated to manage transactions.

IMPACT can be broken down into three major subsystems: a workflow (headless), an internal application, and an external application. All of these systems were designed to interact with each other. The external system is public facing and utilizes Apache Wink to send REST requests to the internal system (non-public facing) for read-only data. The internal system interacts with a workflow manager to create workflows for user interaction. The external system is accessed by public industry users; whereas, the internal system is access by AQD staff members.

There are other systems that IMPACT interacts with for various purposes. These systems are developed outside of IMPACT and are utilized by Wyoming for features like: authentication, file storing, etc.

My team consisted of eight members. We utilized the agile software methodology as the primary development method. This approach served as an efficient way to develop while maintaining a strong engagement with the client as project requirements changed. Apache Maven was used to maintain builds, and Microsoft Team Foundation Server (TFS) was used as our team's version control. It also served as our continuous integration (CI) build server.

Achievement

This project introduced me to several technologies including: Maven, TFS, JSF, Tomcat, ADF, and Apache Wink. I was also able to work in several different facets of the project. These facets include: backend design and development, frontend design and development, database scripting and management, server maintenance and management -- test, production, database, and CI servers. IMPACT also exposed me to agile development and strengthened my ability to collaborate with a team.

There were also several challenges to overcome including:

  • Managing large amounts of data
  • Modernizing an older codebase
  • Ensuring referential integrity
  • Optimizing application performance
  • Testing and maintaining builds
  • Architecting new features
  • Debugging application problems (production and staging)
  • Modelling a database that properly relates with the application

Some of these problems were diagnosed or solved by the usage of tools such as: the Eclipse debugging tool, Microsoft SQL Server Profiler, and application logging (Log4j).

Technical Aspects

Languages: Java (JDK 7u11), JSF 1.1, ADF 10.1.3, JSP, SQL

Tools: Eclipse, Apache Maven, Microsoft Team Foundation Server, Microsoft SQL Server Management Studio, Apache Log4j

Date: 2013-Present (over one year)