How sansarsharma/bookstoreapplication works
This JavaFX bookstore supports customer sign-in, browsing and cart checkout with loyalty-point status, alongside owner management of books, customer accounts, and balances. SceneManager coordinates screens; handlers implement authentication, checkout and administration, with DatabaseManager persisting catalog and customer data in MySQL. The graph retains the documented preload capability, though source excerpts do not show its exact startup wiring. Relationships shown are limited to calls or transitions documented in the README or SOURCE INDEX; unsampled features are represented without guessed links.
Main entry points: SceneManager.java Scene navigation · DatabaseManager.java Catalog and account persistence · OwnerHandler.java Owner operations · Customer.java Customer account
Components 28
JavaFX screens
- Application startup
src/main/java/com/bookstore/App.java - Scene navigation
src/main/java/com/bookstore/scenes/SceneManager.java - Login screen
src/main/java/com/bookstore/scenes/LoginScene.java - Customer dashboard
src/main/java/com/bookstore/scenes/CustomerScene.java - Cart screen
src/main/java/com/bookstore/scenes/ShoppingCartScene.java - Checkout screen
src/main/java/com/bookstore/scenes/CustomerCostScene.java - Purchase confirmation
src/main/java/com/bookstore/scenes/ThankYouScene.java - Owner dashboard
src/main/java/com/bookstore/scenes/OwnerScene.java - Book management screen
src/main/java/com/bookstore/scenes/OwnerBookManageScene.java - Customer management screen
src/main/java/com/bookstore/scenes/OwnerUserManageScene.java
Store operations
- Authentication
src/main/java/com/bookstore/handlers/LoginHandler.java - Cart operations
src/main/java/com/bookstore/handlers/ShoppingCartHandler.java - Payment and points
src/main/java/com/bookstore/handlers/PaymentHandler.java - Owner operations
src/main/java/com/bookstore/handlers/OwnerHandler.java - Input validation
src/main/java/com/bookstore/utilities/InputValidator.java
Domain and loyalty
- Book
src/main/java/com/bookstore/models/Book.java - Customer account
src/main/java/com/bookstore/models/Customer.java - User identity
src/main/java/com/bookstore/models/User.java - Owner identity
src/main/java/com/bookstore/models/Owner.java - Cart model
src/main/java/com/bookstore/models/ShoppingCart.java - Loyalty status states
src/main/java/com/bookstore/states
Persistence and security
- Password hashing
src/main/java/com/bookstore/utilities/PasswordHasher.java - Catalog and account persistence
src/main/java/com/bookstore/database/DatabaseManager.java - MySQL connection
src/main/java/com/bookstore/database/DatabaseConnection.java - MySQL database
- Preloaded books and users
src/main/resources
Other components
- Customer
- Owner
Connections 40
- Application startup → Scene navigation: creates
src/main/java/com/bookstore/App.java - Scene navigation → Login screen: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Customer dashboard: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Cart screen: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Checkout screen: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Purchase confirmation: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Owner dashboard: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Book management screen: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Scene navigation → Customer management screen: shows
src/main/java/com/bookstore/scenes/SceneManager.java - Login screen → Authentication: delegates to
src/main/java/com/bookstore/scenes/LoginScene.java - Authentication → Catalog and account persistence: authenticates via
src/main/java/com/bookstore/handlers/LoginHandler.java - Authentication → Password hashing: checks hash
src/main/java/com/bookstore/handlers/LoginHandler.java - Customer dashboard → Scene navigation: navigates via
src/main/java/com/bookstore/scenes/CustomerScene.java - Cart screen → Cart operations: uses
src/main/java/com/bookstore/scenes/ShoppingCartScene.java - Cart operations → Book: stores items
src/main/java/com/bookstore/handlers/ShoppingCartHandler.java - Cart screen → Scene navigation: navigates via
src/main/java/com/bookstore/scenes/ShoppingCartScene.java - Checkout screen → Payment and points: uses
src/main/java/com/bookstore/scenes/CustomerCostScene.java - Checkout screen → Cart operations: uses
src/main/java/com/bookstore/scenes/CustomerCostScene.java - Checkout screen → Scene navigation: navigates via
src/main/java/com/bookstore/scenes/CustomerCostScene.java - Payment and points → Catalog and account persistence: updates account
src/main/java/com/bookstore/handlers/PaymentHandler.java - Payment and points → Customer account: updates points
src/main/java/com/bookstore/handlers/PaymentHandler.java - Owner dashboard → Scene navigation: navigates via
src/main/java/com/bookstore/scenes/OwnerScene.java - Book management screen → Owner operations: delegates to
src/main/java/com/bookstore/scenes/OwnerBookManageScene.java - Customer management screen → Owner operations: delegates to
src/main/java/com/bookstore/scenes/OwnerUserManageScene.java - Owner operations → Catalog and account persistence: reads and writes
src/main/java/com/bookstore/handlers/OwnerHandler.java - Owner operations → Input validation: validates with
src/main/java/com/bookstore/handlers/OwnerHandler.java - Owner operations → Book: creates
src/main/java/com/bookstore/handlers/OwnerHandler.java - Owner operations → Customer account: creates
src/main/java/com/bookstore/handlers/OwnerHandler.java - Customer account → User identity: extends
src/main/java/com/bookstore/models/Customer.java - Owner identity → User identity: extends
src/main/java/com/bookstore/models/Owner.java - Customer account → Loyalty status states: updates status
src/main/java/com/bookstore/models/Customer.java - Scene navigation → Catalog and account persistence: loads customer
src/main/java/com/bookstore/scenes/SceneManager.java - Catalog and account persistence → MySQL connection: opens connection
src/main/java/com/bookstore/database/DatabaseManager.java - Catalog and account persistence → MySQL database: reads and writes
README.md - MySQL connection → MySQL database: connects to
README.md - Catalog and account persistence → Book: loads records
src/main/java/com/bookstore/database/DatabaseManager.java - Catalog and account persistence → Customer account: loads records
src/main/java/com/bookstore/database/DatabaseManager.java - Customer account → Password hashing: hashes password
src/main/java/com/bookstore/models/Customer.java - Preloaded books and users → Catalog and account persistence: initial data
README.md - Cart model → Book: contains items
src/main/java/com/bookstore/models/ShoppingCart.java