https://github.com/ezzeddinp/gogoquery
My college project to build desktop app that utilizing javaFX as the GUI and MySQL for the databases. The app is about a shopper role user pay some product & also the app enable us to manage the transaction as if we choose the manager role
https://github.com/ezzeddinp/gogoquery
java-17 javafx-gui mysql
Last synced: about 2 months ago
JSON representation
My college project to build desktop app that utilizing javaFX as the GUI and MySQL for the databases. The app is about a shopper role user pay some product & also the app enable us to manage the transaction as if we choose the manager role
- Host: GitHub
- URL: https://github.com/ezzeddinp/gogoquery
- Owner: ezzeddinp
- Created: 2024-11-29T06:40:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-04T00:04:15.000Z (over 1 year ago)
- Last Synced: 2025-03-22T23:14:01.277Z (over 1 year ago)
- Topics: java-17, javafx-gui, mysql
- Language: Java
- Homepage:
- Size: 522 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GoGoQuery Application
### Project Description
**GoGoQuery** is a JavaFX-based retail application designed for **ElevenSeven Enterprise**'s GoGoQuery Store. The application addresses operational challenges by providing functionalities for **Shoppers** and **Managers**. Shoppers can browse products, manage shopping carts, and make purchases, while Managers can manage inventory and fulfill orders. The application integrates a **MySQL database** for data storage and ensures a streamlined experience for all users.
---
## Features Overview
### 1. **Login Page**
- Allows users to log in with their email and password.
- Validates user credentials with the database.
- Displays error messages for:
- Empty fields.
- Incorrect credentials.
### 2. **Register Page**
- Enables users to create an account with email, password, date of birth, and gender.
- Validations include:
- Email format and uniqueness.
- Password strength and confirmation.
- Date of Birth (must be 17+ years old).
- Successful registration redirects users to the **Select Role Page**.
### 3. **Select Role Page**
- Users can select their role as either a **Shopper** or **Manager**.
- Role selection is saved in the database, and a success message is displayed.
### 4. **Shopper Navigation Bar**
- Includes options for:
- Home.
- Search (filters items based on input).
- Cart.
- Log Out.
### 5. **Manager Navigation Bar**
- Expandable menu with options:
- Add Item.
- Manage Queue.
- Log Out.
### 6. **Shopper Home Page**
- Displays:
- Welcome message with username.
- Filterable product list (only items with stock > 0).
- Allows users to view product details.
### 7. **Product Detail Page**
- Displays detailed information about a selected product.
- Users can adjust the quantity and add items to the cart.
- Validations ensure:
- Stock availability.
- Positive and valid quantities.
### 8. **Cart Page**
- Displays items in the cart with:
- Quantity adjustment.
- Grand total calculation.
- Remove item and checkout options.
- Checkout creates a new transaction with status **In Queue**.
### 9. **Manager Home Page**
- Displays a welcome message with navigation options for managers.
### 10. **Add Item Page**
- Allows managers to add new products to the inventory.
- Includes validations for:
- Name, description, and price formats.
- Stock quantity limits.
### 11. **Queue Management Page**
- Displays transactions in a table view.
- Managers can update transaction status from **In Queue** to **Sent**.
---
## Project Setup
### Prerequisites
1. **Software Requirements**:
- Eclipse 2020.6 R.
- Java 11.0.18.
- JavaFX 17.0.7.
- MySQL Java Connection Library 8.0.24.
- XAMPP 8.0.7.
2. **File Extensions**:
- `.java`, `.class` for code.
- `.sql` for database scripts.
---
## Installation
1. Clone the repository:
```bash
git clone https://github.com/username/GoGoQuery.git
cd GoGoQuery
```
2. Set up the database:
- Import the provided `.sql` file into your MySQL server.
- Update database connection details in the project configuration.
3. Install dependencies:
- Ensure the required JavaFX and MySQL libraries are added to the project build path.
4. Run the project:
- Launch the application from Eclipse.
---
## Database Schema
### ERD Overview
- Tables include:
- **Users**: Stores user information and roles.
- **Products**: Manages inventory.
- **Transactions**: Tracks purchases and their statuses.
- **Cart**: Temporarily stores shopper selections.
---
## Application Flow
### Shopper
1. Register → Login → Home Page.
2. Browse items, filter by category, and view product details.
3. Add items to cart → Adjust quantities → Checkout.
### Manager
1. Login → Manager Home Page.
2. Add items to inventory.
3. Manage transaction queues and update statuses.
---
## Validation Rules
1. **General**:
- All input fields are mandatory.
- Validations are triggered on button presses or Enter key.
2. **Login**:
- Fields cannot be empty.
- Credentials must match database records.
3. **Registration**:
- Email format: Ends with `@gomail.com`, no special characters except `_` or `.`.
- Password: Must be alphanumeric and confirmed.
- Date of Birth: Must indicate age > 17.
4. **Cart**:
- Spinner value ≤ stock quantity.
- Checkout clears cart and updates stock.
5. **Add Item**:
- Item name: 5–70 characters.
- Description: 10–255 characters.
- Price: $0.50–$900,000.
---
## Documentation
### Files to Submit:
1. **Code Files**:
- All `.java` and `.class` files.
- SQL scripts for database setup.
2. **Assets**:
- Images, audio, or video used in the project.
3. **Documentation**:
- Explanation of application functionality.
- Reference links for assets used.
---
## Evaluation Criteria
| Component | Weight |
|---------------|--------|
| Assignment | 40% |
| Project | 60% |
### Notes:
- Late submissions will not be graded.
- Use only designated software to ensure compatibility.
- Adherence to guidelines is mandatory.
---
## License
This project is part of **ISYS6197** for the **Odd Semester 2024/2025** and adheres to the course's academic integrity policies. All rights reserved.
---