This project involves a 3-tier setup (web server, application server, database). The basic coding was already done but was in a state of “proof of concept”. Almost everything was copy/pasted so there was a need for a complete refactoring.
I managed to strip down every service to several one-liners which are backed by helper methods and abstract classes doing the real work.
- project consists of 80+ services right now
- upgraded to Jersey 2.17
- switched to Java 8
- completely refactored & streamlined existing code (got rid of 60-70% of the code)
- extracted methods that are used by UI and Web Service tier into a separate “commons project”
- added logging (SLF4J + log4j)
- RESTful services get XML as input
- input XML is validated against XSD schema definitions
- XSD Generator creates XSD files; uses information from a description file & database
- built search functionality for user configurable generic searches
- added unit tests and scripted tests (curl)
- integrated & refactored existing shiro authentication code
- caching with Ehcache on a full table and on single objects basis
- Java Mail integration
- Encryption / decryption of email attachments (configurable)
- Quartz integration for scheduled, threaded sending of Email
- completely refactored existing MySQL code for the database
- working with git & bitbucket
- designed custom build process: generate tables for generic search functionality -> create database -> generate XSDs for input validation -> build
- Crystal Reports integration, bulk creation of reports / invoices
- Completely refactored the UI code as well

git & libraries

review on upwork.com