Morocco's First Open Source ERP Uses Java EE 7!
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 4 modules: sales, purchases, inventory, and accounting and it's cloud ready!
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).
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 revamp and optimize 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