Hattevijayalaxmi/Electricity-Billing-System
Live in productionThe Electricity Billing System is a desktop-based application developed using Core Java, Swing/AWT, and MySQL.
No GitHub topics on this repo.
- Java100.0%
1 Review
This is a solid Java desktop project for demonstrating a complete electricity billing workflow: customer creation, meter information, bill calculation, payment status updates, and bill generation are all represented in separate Swing screens rather than being packed into one large class. The README also does a good job explaining the intended modules and includes the MySQL table setup, which makes the project easier to understand than many small student billing-system repos. The use of JDBC, Swing/AWT, and a simple role split between Admin and Customer gives the project a clear learning value.
The biggest improvement would be packaging and reproducibility. The Java files and image assets currently sit at the repository root, while the code expects package electricity.billing.system and resources such as icon/login.png; moving source files into src/electricity/billing/system/ and assets into an icon/ folder would make the project much easier to compile without manual fixes. It would also help to add an IDE-independent build path, such as Maven or Gradle, instead of committing .jar dependencies directly. The README’s “recommended project structure” is useful, but the actual repository should match it.
There are also a few important code-quality and security issues worth addressing. Conn.java contains a hardcoded MySQL username and password, and most SQL queries are built through string concatenation, including login, signup, bill calculation, and customer creation. Switching to environment/config-based database credentials and PreparedStatement would make the project safer and more professional. Passwords are stored as plain text, so even a simple hashing step would be a meaningful upgrade. On the billing side, the calculation flow is understandable, but input validation is thin: entering non-numeric units in CalculateBill will fail, and duplicate monthly bills for the same meter/month do not appear to be prevented.
For open-source presentation, the repo is still early: it currently has no license, topics, GitHub description, issues, PRs, stars, forks, CI, or tests. Adding a license, screenshots, setup steps for MySQL Workbench, sample credentials/data, and a short “how to run” section would make it much easier for another student or maintainer to try the application. A few small tests around bill calculation would also be valuable, especially if the calculation logic is extracted out of the Swing event handler into a plain Java service. Overall, the project has a clear feature set and a practical desktop-app structure; tightening the packaging, database safety, and setup documentation would make it much more reusable.
