{"id":49394787,"url":"https://github.com/ashref-dev/java-project","last_synced_at":"2026-04-28T15:03:31.570Z","repository":{"id":271610750,"uuid":"914006064","full_name":"Ashref-dev/java-project","owner":"Ashref-dev","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-26T11:25:50.000Z","size":212,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T12:23:09.614Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Ashref-dev.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":"2025-01-08T19:07:59.000Z","updated_at":"2025-01-26T11:25:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"3c078a19-6b7a-46e2-bef1-364513e51e7b","html_url":"https://github.com/Ashref-dev/java-project","commit_stats":null,"previous_names":["ashref-dev/java-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ashref-dev/java-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fjava-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fjava-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fjava-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fjava-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ashref-dev","download_url":"https://codeload.github.com/Ashref-dev/java-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashref-dev%2Fjava-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32385943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-04-28T15:03:02.162Z","updated_at":"2026-04-28T15:03:31.564Z","avatar_url":"https://github.com/Ashref-dev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Idea: **Plane Management System (CLI-based)**\nA basic command-line interface application with a menu system.\n\n\n\n## Project Structure\n\n```\nsrc/\n└── main/\n    └── java/\n        └── com/\n            └── javaprojectplane/\n                └── cli/\n                    ├── Main.java\n                    ├── Plane.java\n                    ├── Pilot.java\n                    └── Passenger.java\n```\n\n\n#### Description:\nThe application will manage a simple system for tracking planes and their pilots. Users can perform basic operations like adding, viewing, and deleting planes and pilots, with data stored in arrays. The system will allow basic associations between planes and their assigned pilots.\n\n---\n\n### Features:\n\n#### 1. **Manage Planes**:\n   - Add a new plane.\n   - View all planes.\n   - Search for a plane by model or registration number.\n   - Delete a plane.\n\n#### 2. **Manage Pilots**:\n   - Add a new pilot.\n   - View all pilots.\n   - Search for a pilot by name or ID.\n   - Delete a pilot.\n\n#### 3. **Plane-Pilot Assignment**:\n   - Assign a pilot to a plane.\n   - View the assigned pilot for a plane.\n\n---\n\n### Menu Design (CLI):\n```plaintext\nPlane Management System:\n1. Manage Planes\n   a. Add Plane\n   b. View All Planes\n   c. Search for a Plane\n   d. Delete a Plane\n2. Manage Pilots\n   a. Add Pilot\n   b. View All Pilots\n   c. Search for a Pilot\n   d. Delete a Pilot\n3. Plane-Pilot Assignment\n   a. Assign Pilot to Plane\n   b. View Plane's Pilot\n4. Manage Passengers\n   a. Add Passenger to Plane\n   b. View Plane's Passengers\n   c. Remove Passenger from Plane\n5. Exit\n```\n\n---\n\n### System Design Diagrams\nBelow are the UML diagrams that illustrate the system's architecture, interactions, and structure:\n\n1. **Class Diagram**: Shows the relationships between different classes in the system\n![Class Diagram](Class.jpg)\n\n2. **Use Case Diagram**: Illustrates the possible interactions between users and the system\n![Use Case Diagram](UseCase.jpg)\n\n3. **Sequence Diagram**: Demonstrates the flow of operations for pilot assignment\n![Sequence Diagram](Sequence.jpg)\n\n---\n\n### Implementation Details:\n\n#### Objects:\n1. **`Plane` Class**:\n   - Fields: `id`, `model`, `registrationNumber`, `pilotId`, `passengers[]`, `passengerCount`\n   - Methods: Getters/Setters, `toString`, `addPassenger`, `removePassenger`, `getPassengers`\n\n2. **`Pilot` Class**:\n   - Fields: `id`, `name`, `licenseNumber`\n   - Methods: Getters/Setters, `toString`\n\n3. **`Passenger` Class**:\n   - Fields: `id`, `name`, `passportNumber`, `seatNumber`\n   - Methods: Getters/Setters, `toString`\n\n#### Data Storage:\n- Use arrays to store `Plane` and `Pilot` objects\n- Each `Plane` object maintains its own array of `Passenger` objects\n- Operations such as add, search, and delete will directly manipulate these arrays\n\nThe data persistence and abstraction will be implemented in the next phase of the project.\n\n### Design Patterns Used:\n\n#### 1. **Singleton Pattern**:\n- Implemented in `ConsoleMenu` class\n- Ensures a single instance of the menu system throughout the application\n- Manages consistent UI state and user interaction\n\n#### 2. **Factory Pattern**:\n- Simple Factory implementation in `TransportFactory` class\n- Centralizes object creation for Planes, Pilots, and Passengers\n- Manages ID generation and instantiation logic\n\n#### 3. **Partial MVC Pattern**:\n- **Model**: Clear data models in `Plane`, `Pilot`, and `Passenger` classes\n- **View**: `ConsoleMenu` class handling all UI rendering and user input\n- **Controller**: Main class handling business logic and flow control\n- Note: While not a strict MVC implementation, the separation of concerns provides a foundation for future enhancements\n\n---\n\n### Tools:\n- **IDE**: IntelliJ IDEA, Eclipse, or VS Code.\n- **UML**: Lucidchart, StarUML.\n\n---\n\n### Deliverables:\n1. **Executable Java Application**:\n   - A `.jar` file that runs on any machine with a JDK.\n2. **Documentation**:\n   - UML diagrams (Use Case, Class, Sequence).\n\n---\n\nThank you for your time and effort.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashref-dev%2Fjava-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashref-dev%2Fjava-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashref-dev%2Fjava-project/lists"}