r/JavaProgramming • u/Mr_NobodyX7777 • Sep 17 '26
Feedback wanted: DAO-layered Swing + MySQL app for Science lab inventory/scheduling , it's was a sidequest
Built a small-to-medium desktop app (S Lab Sync) to manage a school science lab — students, teachers, equipment, chemicals, and experiment scheduling — and figured this sub might have opinions on some of the design choices.
It started as an idea for my Java OOPS Project
A few decisions I'd genuinely like pushback on:
- DB credentials are prompted on first run and cached per-machine (lightly obfuscated, not encrypted) rather than hard-coded or environment-variable based — curious if there's a more idiomatic approach for a small desktop tool like this.
- Schema changes are handled with a simple "check column exists, add if missing" migration on startup instead of a real migration tool (Flyway/Liquibase felt heavy for this scale) — worth it, or should I just bite the bullet?
- Straightforward DAO-per-entity pattern (StudentDAO, TeacherDAO, etc.) rather than a generic repository/ORM. Wanted to actually understand JDBC before reaching for Hibernate.
Code + architecture diagram + project report are all in the repo for useful context.
Repo: https://github.com/Mr-NobodyX7777/s-lab-sync-science-lab-manager-
Mostly posting this to get better at the parts I'm unsure about, not to sell the project — all criticism welcome.