{"id":20258868,"url":"https://github.com/andreie91/warehouse-management-app","last_synced_at":"2026-05-08T20:31:30.183Z","repository":{"id":177727205,"uuid":"636415638","full_name":"AndreiE91/Warehouse-Management-App","owner":"AndreiE91","description":"A warehouse management application which allows users to interact with a database via a graphical user interface for storing, updating, retrieving, and removing information.","archived":false,"fork":false,"pushed_at":"2024-02-06T12:05:42.000Z","size":2375,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-03T18:44:30.771Z","etag":null,"topics":["database","database-management","design-pattern","gui-application","java","javafaker"],"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/AndreiE91.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":"2023-05-04T19:54:21.000Z","updated_at":"2024-02-06T12:07:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"fcbd3a78-df03-4c02-97f3-60d5552d750f","html_url":"https://github.com/AndreiE91/Warehouse-Management-App","commit_stats":null,"previous_names":["andreie91/pt2023_30423_eminovici_andrei_assignment_3"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AndreiE91/Warehouse-Management-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiE91%2FWarehouse-Management-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiE91%2FWarehouse-Management-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiE91%2FWarehouse-Management-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiE91%2FWarehouse-Management-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreiE91","download_url":"https://codeload.github.com/AndreiE91/Warehouse-Management-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreiE91%2FWarehouse-Management-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32795854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["database","database-management","design-pattern","gui-application","java","javafaker"],"created_at":"2024-11-14T11:12:02.400Z","updated_at":"2026-05-08T20:31:30.158Z","avatar_url":"https://github.com/AndreiE91.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Warehouse Management Application\n\n## Objective\n\nThe main purpose of this project is to develop a warehouse management application. The application allows users to interact with a database via a graphical user interface for storing, updating, retrieving, and removing information. The secondary objectives include:\n\n- Utilizing basic principles of Object-Oriented Programming (OOP) such as abstraction, encapsulation, inheritance, and polymorphism.\n- Using the JDBC Java library for database interaction.\n- Implementing the specified features.\n- Creating a user interface using Java Swing.\n\n## Problem Analysis, Modeling, Scenarios, Use Cases\n\n### Database Structure\n\nA database consists of tables, where each table comprises rows uniquely identified by a primary key (ID). In Java, the database tables are mirrored by identical Java classes, enabling reflection operations to work correctly. Each mirror class must have an empty constructor to facilitate reflection procedures.\n\n### User Interaction\n\nThe application allows users to choose a database table for interaction and perform CRUD operations by inserting appropriate data into text fields. Additionally, users can copy fields from an existing database row to streamline the update operation.\n\n### Testing\n\nA \"Generate Random\" feature is implemented to quickly populate the database with random entries for testing purposes.\n\n## Implementation\n\nThe implementation follows a design pattern where table names in the database match the names of mirror objects in Java. The application architecture includes:\n\n- **AbstractDAO**: Abstract class containing methods for database interaction.\n- **ConnectionFactory**: Facilitates communication with the database.\n- **BusinessLogicLayer**: Acts as an intermediary between DAO and controllers, adding extra validations.\n- **View**: JFrame instances creating the graphical interface.\n\nThe MainController orchestrates the logic behind the application along with functionality for each button, including the random entry generator.\n\n## Conclusions\n\nThrough this project, I gained familiarity with reflection and its applications, as well as concepts like database backup and JavaDoc documentation. The application is considered complete and expandable for future developments.\n\n## Screenshots\n\n![Warehouse_Bills](images/Warehouse_Bills.jpg)\n*Warehouse Bills*\n\n![Warehouse_Client](images/Warehouse_Client.jpg)\n*Warehouse Client*\n\n![Warehouse_Main](images/Warehouse_Main.jpg)\n*Warehouse Main*\n\n![Warehouse_Order](images/Warehouse_Order.jpg)\n*Warehouse Order*\n\n![Warehouse_Product](images/Warehouse_Product.jpg)\n*Warehouse Product*\n\n## Usage\n\nTo run the application, simply execute the `App` class. Ensure you have Java installed on your system.\n\n## Cloning Instructions\n\nTo clone this repository, run the following command in your terminal:\n\n```bash\ngit clone https://github.com/AndreiE91/Warehouse-Management-App.git\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreie91%2Fwarehouse-management-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreie91%2Fwarehouse-management-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreie91%2Fwarehouse-management-app/lists"}