This project was undertaken for an insurance company who caters to needs to musicians in United States. They already had an intranet application going on but their service providers were not able to manage and maintain the system very well. After a few years’ development work users still had to do some work manually. Also, because of the design of the system, it was not possible to fix minor defects without breaking something else in the system.
So this project was undertaken to clean up and reengineer the software as well as automate daily tasks performed by the users manually.
The project started with these objectives:
- Document functional and technical aspects of the system
- Make the application more manageable and maintainable
- Design and create public facing website from scratch
- Create automated processes so certain routine tasks like reminders, renewals and cancellations are done by the system without manual intervention
- Regular maintenance and enhancements of the system
Though the objectives were pretty straight forward, the project had many challenges
- No availability of technical or functional document to understand the system’s flow
- No single point of contact who can confirm business rules
- Repetitive and hap hazard code with business logic spread across pages
- Incorrectly modeled database which made maintaining data consistency nearly impossible
- Redesign part of the database and migrated existing data to new version
- More than 200 report formats by state with duplication and inconsistency to be corrected
Since the system was already live and mission critical the project was started with resolving daily issues faced by users and, in parallel, documenting business logic and functions of the application. Once the team gained clarity in the business processes a new business layer was created to consolidate all logic in a common location and reduce recurring issues. Some of this logic was to be used in multiple separate applications going forward and so was created as a web service API.
Other applications and background processes were built using the web service API layer mentioned above. A security token was generated through the web service and was passed for performing each DB operation.
The system was built on these technologies:
- .Net framework 4.0 with C#
- ASP.NET Web services
- Windows Forms applications
- Windows services
- ASPPDF PDF generation library
- NPOI .Net library
- SQL Server 2008 R2