Internal project · ERP · Agriculture
Sogesa ERP System
Design and development of an internal web-based ERP system supporting agronomists’ daily activities and the operational management of the company.
Associated experience
Sogesa
Web Developer · 2011 — 2014
View related experienceContext
Sogesa is a consulting company specialized in the management and operation of agricultural land on behalf of landowners.
Many landowners do not have the expertise or resources required to manage agricultural land themselves.
Sogesa acts as an intermediary between landowners and the various actors involved in agricultural production.
Agronomists employed by Sogesa are responsible for analyzing the soil, deciding which crops should be planted, coordinating field preparation, selecting phytosanitary treatments, organizing harvesting and managing the sale of agricultural products.
At the time I joined the company, very few digital tools existed to support these activities.
The goal of the project was to progressively build an internal software system allowing agronomists to manage their work and later extend the platform to support the company’s operational management.
Users
The system was used internally by the members of the company.
In total, the platform supported around seven internal users involved in agricultural operations and company administration.
- 4 agronomists
- 1 secretary
- The company director
- The director’s assistant
Objective
Design and develop an internal web-based ERP system supporting the daily activities of agronomists and the operational management of the company.
The system initially focused on digitizing the workflow used by agronomists in the field, including the management of land plots, agricultural operations and coordination with external actors.
Over time, the platform expanded to include additional business functions such as invoicing, product ordering and stock management.
Key business concepts
Several important domain concepts had to be modeled in the system.
The system supported the management of multiple crop years simultaneously and allowed agronomists to adapt parcel structures from one season to another.
- Agricultural plots and parcels, which could evolve over time
- Crop years, which follow seasonal agricultural cycles rather than calendar years
- Agricultural operations performed on specific parcels
- Work orders sent to agricultural contractors
My role
I was the main developer responsible for building the first version of the system.
During the first year of the project, I was the only developer working on the application.
Later, a second junior developer joined the project and we continued developing the system together for several years.
My work involved understanding the agronomists’ workflows, designing the database structure and progressively implementing the application features required to support their daily activities.
An external technical code audit was performed during the project in order to review the quality of the implementation and provide recommendations regarding architecture and development practices.
Responsibilities
- Understanding and documenting the agronomists’ workflows
- Translating business processes into software features
- Designing the database schema
- Developing the web application from scratch
- Implementing modules for managing agricultural plots, operations and related entities
- Implementing business management features such as invoicing and stock management
- Deploying and maintaining the application infrastructure with an external hosting provider
- Collaborating with agronomists and other stakeholders to refine the system
Key features
- Management of agricultural plots and parcels
- Support for multiple crop years
- Creation of agricultural work orders
- Export of work orders to Excel for field use
- Invoicing management
- Product ordering and stock management
- Role-based access for agronomists and administrative staff
Technical challenges
- Learning PHP and web application architecture while building the system
- Designing and implementing a full web application starting from scratch
- Understanding a complex business domain related to agricultural land management
- Translating real-world processes into software models
- Managing the technical infrastructure and application deployment
- Participating in long meetings with domain experts to fully understand their workflows
- Learning how to estimate development tasks and plan implementation work
- Adopting more modern practices after receiving feedback from an external code audit
Technologies used
Languages
- PHP 5.3
- SQL
- JavaScript
- HTML
- CSS
Frameworks / libraries
- Symfony 2, introduced later for the administrative part of the application
- jQuery
- Bootstrap
Database
- MySQL
Tools
- Doctrine ORM
- Symfony admin bundle for the management interface
- SVN, then Git
- XAMPP
- NetBeans IDE
Infrastructure
- External hosting provider
Deployment
The deployment process evolved during the project.
- Initially, deployments were performed manually using FTP
- Version control was later introduced using SVN
- The project eventually migrated to Git
- Deployments were then performed manually through SSH access to the hosting server
Outcomes / impact
The project resulted in a custom ERP system used internally by Sogesa to support both agronomists’ field operations and the company’s administrative management.
The platform progressively replaced manual processes and improved coordination between agronomists and other actors involved in agricultural production.
The system continued to be used and further developed after my departure.
Despite being initially developed by junior developers without senior technical leadership, the system proved robust enough to remain in active production use many years after its initial development.
Key learnings
- First professional experience building a full web application
- Learning PHP and web backend development in a production environment
- Understanding how to translate real-world business processes into software systems
- Experience collaborating directly with domain experts
- First exposure to software architecture and code quality considerations