One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories at a regular cadence. The community has been doing just that for a long time including at JavaOne. A number of these stories are curated at Zeef (Zeef is also written with Java EE). Mohammed Bounaga recently agreed to share a very cool such adoption story on deftERP — Morocco's first open source ERP. Mohammed had a number of insightful things to say about Java EE worth paying attention to. I have highlighted specific passages that really stand out.
Can you kindly introduce yourself?
I'm Mohammed Bounaga, and I'm from Ifrane, Morocco. I'm a software engineer and I have been working with Java EE for 3 years. I'm the creator and project lead of deftERP. This project is now powered by xHub, a Moroccan startup that supports and believes in open source projects, founded by Badr El Houari — Devoxx Morocco chair, Morocco JUG lead and Java Champion. We are now a small team of talented developers who are working in collaboration with the Java EE community to boost the development of this project and empower the open source ecosystem in Morocco and Africa.
Can you describe the product that uses Java EE?
After graduating from university, I decided to work full time at home on an interesting and challenging project while sharpening my software development skills. At that time, I had different project ideas including desktop and mobile applications; yet my final choice was to develop an ERP web application since I believe that enterprise applications require complex business processes and they are open for innovation and creativity and this is exactly what I was looking for. The first version of this product was a result of 18 months of hard work with ups and downs that required patience and self-motivation. DeftERP is an open source and smart ERP built with full Java EE 7 (JPA 2.1, EJB 3.2, JSF 2.2, CDI, Beans Validation, JAX-RS, JSON-P, WebSocket...). The product is currently dedicated to small businesses to help them embrace and take advantage of technology to automate their daily working process, reducing working time and energy, having a smart dashboard and some predictions to help them anticipate the future while of course increasing profit. The product currently includes four modules: sales, purchases, inventory, and accounting, and it's cloud ready!
Why did you choose Java EE?
I had fallen in love with Java during my university years and it has always been my first choice, which is the case with deftERP. The only issue I had when I decided to start this project was which Java web framework to adopt. I spent a couple of weeks doing some research reading blog reviews from the Java community comparing different Java web frameworks including JSF, Spring MVC, and Struts.
I was really impressed by the idea behind component-based frameworks and how JSF is appropriate for rapid development while still giving you flexibility and room for creativity. What is also awesome about JSF is the availability of third-party libraries such as PrimeFaces and OmniFaces that empowers developers with a great set of UI components that every application needs, and finally let's not forget the fact that Java EE is not heavy anymore!
How does the product use Java EE?
The product is developed with Java EE 7. We are using JSF for the web layer with PrimeFaces as a components library. EJB for the business layer. JPA with the EclipseLink implementation for the persistence layer, WebSocket for real-time notification, CDI is of course the glue that binds our application layers together with dependency injection, and we are using BeanValidation to validate our entities against predefined or custom rules (we have built a metadata programming model).
How was your general experience with Java EE? Would you use it again?
Of course yes, we were happy to know about the plans to move forward Java EE 8 during last JavaOne. We are even planning, after releasing the new version, to see how we can help in the Adopt-A-JSR program under the umbrella of Morocco JUG. We are also keeping an eye open on the MicroProfile initiative since we are looking forward to revamping and optimizing the architecture of deftERP for a microservices architecture. At this stage, we aim to include the voice of our community!
How can people contact you if they have questions?
Questions and contributions are always welcome!
- Email: medbounaga AT gmail DOT com
- Github repository: https://github.com/deftERP/deftERP
- Facebook group: https://www.facebook.com/groups/1545570112415771
If you have a similarly great Java EE adoption story to share with the community (particularly migration stories from other technologies), please do reach out.