AquaFlow is a JavaFX-based Smart Water Distribution System designed to help local authorities monitor water usage, manage resources and optimize distribution. It supports real-time monitoring, reporting, and email notifications built with a clean layered architecture.
- 🔹 JavaFX dashboard with real-time usage stats
- 🔹 CRUD operations (Water Sources, Villages, Officers, Households, etc.)
- 🔹 Water allocation & distribution tracking
- 🔹 User login + role-based access control
- 🔹 JasperReports PDF generation
- 🔹 Email alerts via JavaMail API
- 🔹 Layered architecture (Controller, Model, DAO, Util, DTO)
| Layer / Module | Tech / Tools |
|---|---|
| UI / Frontend | JavaFX |
| Backend | Java (Maven / JDBC) |
| Database | MySQL |
| Reporting | JasperReports |
| JavaMail API |
AquaFlow/ ├─ src/ │ ├─ controller/ │ ├─ BO/ │ ├─ dao/ │ ├─ util/ │ └─ dto/ ├─ resources/ │ ├─ fxml/ │ ├─ images/ │ └─ jasper/ ├─ pom.xml └─ README.md
-
Clone the repository
-
Open with IntelliJ IDEA (or Eclipse)
-
Configure JavaFX SDK in the IDE
-
Setup MySQL database with
AquaFlowschema and update credentials in code -
Run using the Main class or JavaFX Launcher
| Dashboard | Billing And Payment |
|---|---|
![]() |
![]() |
| Allocation View | Water Consumption |
|---|---|
![]() |
![]() |
Contributions are welcome! Fork the project, create a branch, and submit a pull request.
This project is licensed under the MIT License.
For questions or support, feel free to contact the project maintainer via GitHub.
.png?raw=true)
.png?raw=true)
.png?raw=true)
.png?raw=true)