1. Pet Shop Application - Run Spring Boot (main run config)
2. Database - Start database containers
3. Reset Database - Clean volumes and restart (Maven-based, auto-stops)
All use IntelliJ Docker/Spring Boot/Maven integration (Windows/Mac/Linux).
Reset Database uses exec-maven-plugin to run docker compose down -v.
Stops automatically when complete.
- Add spring-boot-starter-test dependency for JUnit Jupiter
- Validate main class exists and matches run config reference
- Validate module name matches pom.xml artifactId
- Validate schema.sql contains active column
- Prevents configuration breakage from refactoring
- Fails with clear messages pointing to which configs need updates
All 5 tests passing.
- Check for 'users' table existence instead of just mysqladmin ping
- Ensures schema.sql has executed before marking as healthy
- Add 40s start_period for initial schema load
- Prevents Spring Boot from connecting to uninitialized database
- updated the fxml file to have the same theming as desktop project
- removed old unused files to project neatness
TODO:
-hook up backend to application
-complete CRUD for each entity
- change text so it uses String.xml values
-add more info to profile if needed
-give pets their own profile
-fix small bug with status bar color not changing
Changes:
- MainLayoutController: Analytics access restricted to ADMIN only
- STAFF users default to Sales view instead of Analytics
- Logo click redirects STAFF to Sales, ADMIN to Analytics
- Analytics button hidden for STAFF users
- LoginController: Added CUSTOMER login rejection with clear message
- CUSTOMER role users are now rejected at login with helpful error
- Directs customers to use web/mobile applications instead
- Configuration cleanup: Removed connectionpetstore.properties from project root
- Config file remains in src/main/resources for proper packaging
- ApiConfig already loads from classpath correctly
These changes ensure proper role-based access control and clean configuration management.
Changes:
- PurchaseOrderResponse: id → purchaseOrderId
- SaleResponse: id → saleId
- DashboardResponse: restructured to use nested SalesSummary and InventorySummary classes matching backend structure
- Added TopProduct and DailySales support
- Inventory DTOs review pending (storeName/reorderLevel fields may need manual UI check)
These changes align desktop response DTOs with backend structural requirements.