A JavaFX-based application that simulates an online game store, offering both admin and user functionalities. This project is built as part of a class project, developed in milestones, progressively adding features from handling inventory to administration.
- Admin Functions:
- Manage inventory (view, edit, delete products).
- Search products and update quantities.
- Customer Functions:
- Browse products, add/remove from shopping cart.
- Update cart quantities and checkout.
- Data Persistence:
- Save and load store data to/from JSON files.
- Remote Admin App:
- Remotely manage the store via network communication.
- Sorting:
- Sort products and cart by name, date, or price.
- Unit Testing:
- Verify core functions of the store.
- Designed main classes for the app.
- Implemented navigation menus.
- Handles user input and validation. Note: Experimented with a Console app version before transitioning to JavaFX
- Implemented admin functions for managing the inventory:
- Display, edit, delete products.
- Search for products and update quantities.
- Implemented customer shopping functions:
- Display inventory and search for products.
- Add/remove items from the shopping cart.
- Update quantities in the cart and perform checkout.
- Store data now saves to a text file in JSON format on program exit.
- Data is loaded on reading the text file.
- Used Maven to incorporate the Jackson library for data serialization.
- Add sorting features to inventory and cart:
- Sorting by name and price.
- Numerous refactors, Admin and User controllers extend the Base controller.
- Developed an admin app to control the GUI via network communication:
- CRUD operations are performed on the GUI (server) app and parses commands.
- JavaFX (GUI framework)
- Maven (dependency management)
- Jackson (for JSON serialization)
- JUnit (for unit testing)
-
Open VScode
- Ensure the following extensions are installed:
- Extension Pack for Java
- Maven for Java
- Ensure the following extensions are installed:
-
Clone the repository by:
Using VScode's git clone feature
or
git clone https://github.com/Andrew-Forster/gamestore
-
Open the
mainapp.javafile and click the run button at the top right.