/Project Details
Farm Management Desktop Application
Built a Java Swing desktop application for managing cows, sheep, treatments, medication records, veterinarians, farm workers, salary logic, and MySQL persistence.
This project is a Java desktop application for farm operations management. It models a farm where animal records, employee records, treatments, medication details, feeding decisions, milking measurements, and salary calculations are managed through a Swing GUI.
The domain model separates livestock, employees, and treatments. Cow and Sheep extend a shared Animal abstraction; Veterinary and FarmWorker extend Employee; HealthTreatment and CleaningTreatment extend Treatment and connect animals with staff and medication records.
The GUI includes screens for adding, listing, inspecting, and deleting cows, sheep, veterinarians, and farm workers. It also supports adding treatments, querying treatment history by animal/date, adding milking data, and generating feeding recommendations based on animal attributes.
The persistence layer uses JDBC with MySQL, and the application follows a configurable setup for local database integration.
A nice engineering detail is the serialization and integrity-check workflow. The application serializes animal snapshots and uses an MD5 checksum in a background thread to detect whether the local data file changed between sessions.
The project reads as an object-oriented desktop software system centered on GUI workflows, persistent data handling, and domain modeling.
Highlights
- Modeled animals, employees, treatments, health treatments, cleaning treatments, medication, and payment logic with inheritance and interfaces.
- Built Swing GUI workflows for CRUD-style farm operations and treatment-history queries.
- Implemented MySQL persistence with JDBC for animal and employee records.
- Added feeding recommendation logic based on animal type, age, gender, and weight.
- Implemented salary calculations for veterinarians and farm workers.
- Used object serialization and MD5 checksum validation to detect local data changes.
- Positioned the work around object-oriented design, GUI workflows, and persistent data handling.