Background
Client is Lomadox GmbH & Co. KG, Germany an online e-commerce platform for Furniture. Our client is open source ERP software for their order management and shipping. Existing software is providing limited functionality and there is lot of manual process involve in order fulfillment and tracking. Also existing software is not having many other modules like finance module, workflow management, background jobs and external integrations. Client has to maintain all of these information in multiple systems and it is not easy to track it. Client wished to build desktop application as extension to the same database to provide single solution to have order management, shipping, tracking, finance module and many other integrations.
Challenges
- Existing ERP system database is designed totally considering German language. So it is difficult to translate and understand the structure to fit new module within same system.
- Solution should align with new updates in database design provided by JTL Wawi ERP system.
- Solution should be able to handle large data and work with various type of file formats.
- More configurability required to allow various kind of workflows, various type of file reading from scanned PDFs, working with various file transfer mechanisms like FTP, SFTP
Solution
Based on the requirements and specification, we decided to architect the application using following technology stack:
- Microsoft .Net framework
- Winform, C#, Entity Framework
- DevExpress 3rd party controls for better user experience
- Microsoft SQL Server database
- Role based security implemented
- Lots of external integrations like Dot Liquid, iTextSharp, IronOcr, Google Translator, Google Adwords API,Otto Integration, DeepL, EDI (Electronic Data Interchange), FTP, SFTP.
- Module based development and loosely coupled architecture
- Custom workflow to handle back ground process for various jobs.
Achievements
The initial version of the solution is developed and used by client in parallel to additional development being done. We have continuous development being done to add more features and modules.