{"id":21972577,"url":"https://github.com/ezzeddinp/gogoquery","last_synced_at":"2026-05-10T09:43:55.544Z","repository":{"id":265393563,"uuid":"895904231","full_name":"ezzeddinp/GoGoQuery","owner":"ezzeddinp","description":"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 \u0026 also the app enable us to manage the transaction as if we choose the manager role","archived":false,"fork":false,"pushed_at":"2025-01-04T00:04:15.000Z","size":535,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-22T23:14:01.277Z","etag":null,"topics":["java-17","javafx-gui","mysql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezzeddinp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-29T06:40:35.000Z","updated_at":"2025-01-04T00:04:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"aff973d2-fdef-4bfb-ab23-77c86c747b7a","html_url":"https://github.com/ezzeddinp/GoGoQuery","commit_stats":null,"previous_names":["ezzeddinp/gogoquery"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezzeddinp%2FGoGoQuery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezzeddinp%2FGoGoQuery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezzeddinp%2FGoGoQuery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezzeddinp%2FGoGoQuery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezzeddinp","download_url":"https://codeload.github.com/ezzeddinp/GoGoQuery/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245031515,"owners_count":20549926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java-17","javafx-gui","mysql"],"created_at":"2024-11-29T15:19:07.305Z","updated_at":"2026-05-10T09:43:55.498Z","avatar_url":"https://github.com/ezzeddinp.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoGoQuery Application\n\n### Project Description\n**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.\n\n---\n\n## Features Overview\n\n### 1. **Login Page**\n- Allows users to log in with their email and password.\n- Validates user credentials with the database.\n- Displays error messages for:\n  - Empty fields.\n  - Incorrect credentials.\n\n### 2. **Register Page**\n- Enables users to create an account with email, password, date of birth, and gender.\n- Validations include:\n  - Email format and uniqueness.\n  - Password strength and confirmation.\n  - Date of Birth (must be 17+ years old).\n- Successful registration redirects users to the **Select Role Page**.\n\n### 3. **Select Role Page**\n- Users can select their role as either a **Shopper** or **Manager**.\n- Role selection is saved in the database, and a success message is displayed.\n\n### 4. **Shopper Navigation Bar**\n- Includes options for:\n  - Home.\n  - Search (filters items based on input).\n  - Cart.\n  - Log Out.\n\n### 5. **Manager Navigation Bar**\n- Expandable menu with options:\n  - Add Item.\n  - Manage Queue.\n  - Log Out.\n\n### 6. **Shopper Home Page**\n- Displays:\n  - Welcome message with username.\n  - Filterable product list (only items with stock \u003e 0).\n- Allows users to view product details.\n\n### 7. **Product Detail Page**\n- Displays detailed information about a selected product.\n- Users can adjust the quantity and add items to the cart.\n- Validations ensure:\n  - Stock availability.\n  - Positive and valid quantities.\n\n### 8. **Cart Page**\n- Displays items in the cart with:\n  - Quantity adjustment.\n  - Grand total calculation.\n  - Remove item and checkout options.\n- Checkout creates a new transaction with status **In Queue**.\n\n### 9. **Manager Home Page**\n- Displays a welcome message with navigation options for managers.\n\n### 10. **Add Item Page**\n- Allows managers to add new products to the inventory.\n- Includes validations for:\n  - Name, description, and price formats.\n  - Stock quantity limits.\n\n### 11. **Queue Management Page**\n- Displays transactions in a table view.\n- Managers can update transaction status from **In Queue** to **Sent**.\n\n---\n\n## Project Setup\n\n### Prerequisites\n1. **Software Requirements**:\n   - Eclipse 2020.6 R.\n   - Java 11.0.18.\n   - JavaFX 17.0.7.\n   - MySQL Java Connection Library 8.0.24.\n   - XAMPP 8.0.7.\n\n2. **File Extensions**:\n   - `.java`, `.class` for code.\n   - `.sql` for database scripts.\n\n---\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/username/GoGoQuery.git\n   cd GoGoQuery\n   ```\n2. Set up the database:\n   - Import the provided `.sql` file into your MySQL server.\n   - Update database connection details in the project configuration.\n3. Install dependencies:\n   - Ensure the required JavaFX and MySQL libraries are added to the project build path.\n4. Run the project:\n   - Launch the application from Eclipse.\n\n---\n\n## Database Schema\n\n### ERD Overview\n- Tables include:\n  - **Users**: Stores user information and roles.\n  - **Products**: Manages inventory.\n  - **Transactions**: Tracks purchases and their statuses.\n  - **Cart**: Temporarily stores shopper selections.\n\n---\n\n## Application Flow\n\n### Shopper\n1. Register → Login → Home Page.\n2. Browse items, filter by category, and view product details.\n3. Add items to cart → Adjust quantities → Checkout.\n\n### Manager\n1. Login → Manager Home Page.\n2. Add items to inventory.\n3. Manage transaction queues and update statuses.\n\n---\n\n## Validation Rules\n\n1. **General**:\n   - All input fields are mandatory.\n   - Validations are triggered on button presses or Enter key.\n\n2. **Login**:\n   - Fields cannot be empty.\n   - Credentials must match database records.\n\n3. **Registration**:\n   - Email format: Ends with `@gomail.com`, no special characters except `_` or `.`.\n   - Password: Must be alphanumeric and confirmed.\n   - Date of Birth: Must indicate age \u003e 17.\n\n4. **Cart**:\n   - Spinner value ≤ stock quantity.\n   - Checkout clears cart and updates stock.\n\n5. **Add Item**:\n   - Item name: 5–70 characters.\n   - Description: 10–255 characters.\n   - Price: $0.50–$900,000.\n\n---\n\n## Documentation\n\n### Files to Submit:\n1. **Code Files**:\n   - All `.java` and `.class` files.\n   - SQL scripts for database setup.\n\n2. **Assets**:\n   - Images, audio, or video used in the project.\n\n3. **Documentation**:\n   - Explanation of application functionality.\n   - Reference links for assets used.\n\n---\n\n## Evaluation Criteria\n\n| Component     | Weight |\n|---------------|--------|\n| Assignment    | 40%    |\n| Project       | 60%    |\n\n### Notes:\n- Late submissions will not be graded.\n- Use only designated software to ensure compatibility.\n- Adherence to guidelines is mandatory.\n\n---\n\n## License\n\nThis project is part of **ISYS6197** for the **Odd Semester 2024/2025** and adheres to the course's academic integrity policies. All rights reserved. \n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezzeddinp%2Fgogoquery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezzeddinp%2Fgogoquery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezzeddinp%2Fgogoquery/lists"}