- Name - Aditya Deshlahre
- Project - Rewriting All Admin JSP Page to React Js
- Mentors - Mutesasira Moses & cliff gita
- GitHub Repo - OpenELIS-Global-2
- Forum - OpenELIS-Global Forum
OpenELIS Global is open enterprise-level laboratory information system software tailored for public health laboratories. OpenELIS is used at a national scale in a variety of settings, from small general hospital labs, all the way up to national reference labs, and all sizes in between.
The project involved rewriting the Admin Page components from JSP (Jakarta Server Pages) to React.js, covering Admin Configurations, Management, and other operational pages. Previously, all pages followed an MVC (Model–View–Controller) architecture, making them non-user-friendly. Therefore, the UX needed significant improvement.
Eventually, all MVC Controllers were rewritten as REST Controllers (REST Endpoints), so now all routes return JSON as the response. Additionally, the routes were updated to accept JSON in the request body and perform the required actions according to the specified routes and functions.
For the past 12-13 weeks, I have been focused on migrating all Admin Pages to React.js (New UI) to enhance user-friendliness. Additionally, I integrated French translations across all pages, as OpenELIS is used globally. The previous JSP pages were poorly structured in terms of user experience, making the move to the new stack essential.
The backend code is strictly written in Java, using Spring Boot (web framework) and Maven (builder). The original MVC structure was followed throughout, but it was necessary to convert to REST Controllers (REST Endpoints) for the new release of OpenELIS 3.0. In this release, both the old and new UIs will be operational.
Currently, 80% of the pages have been completed. The remaining pages are fairly complex, but I see it as a good challenge to tackle and finish them. By the end of GSoC, I will ensure these remaining pages are completed.
Right now, in the codebase 25K Lines and 91 Commnits got merged. [10k Lines LEFT of OVERALL PR] approx
Pull Request | Status |
---|---|
Patient Status Report | Merged |
BarCode Configuration Admin Page | Merged |
Provider Configuration Menu Page | Merged |
Organization Management Admin Page | Merged |
User Management Admin Page | Merged |
Batch Test Reassignment & Cancelation Page | Merged |
Test Notification Configuration Menu Page | In Progress |
Test Management Config Menu Page | In Progress |
- Maven Project Building/Bundlers
- Spring Boot (WEB FRAMEWORK) (initally started with JAVA then learned to perform POST/GET calls)
- Shifting MVC controllers to Rest Controller (Get the desiered JSON Values)
- Conditional rendering and Complex Rendering (using react JS)
- State Management (On older version of react js)
- Fixing other SETUP issues
- Debugging Different mode/level of LOGGER (Info/Debug)
- Update Data/PUT/POST of JSON values
- Handaling natorius users EDGE cases
- Implementaion of workflow from old to new ui (we need to keep the same workflow)
As we move forward in the real world, there's always room for improvement in every line of code. I want to extend my sincere thanks to my mentor, the organization admins, and the community members for their continuous support and assistance throughout this project. It has been an exciting journey working with this wonderful community, and I’ve gained so much from the experience. I would also like to thank Google for providing this incredible opportunity. Keep pushing code!
Thank you for reading.
can you assign me this?