{"id":26967029,"url":"https://github.com/raul-tenorio02/javare","last_synced_at":"2025-09-01T12:17:20.071Z","repository":{"id":278375897,"uuid":"935407915","full_name":"Raul-Tenorio02/javaRE","owner":"Raul-Tenorio02","description":"OG RE2's object-oriented inventory system using Java.","archived":false,"fork":false,"pushed_at":"2025-03-24T16:06:06.000Z","size":153,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T17:23:30.365Z","etag":null,"topics":["backend","java","object-oriented-programming"],"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/Raul-Tenorio02.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-02-19T11:53:13.000Z","updated_at":"2025-03-24T16:06:09.000Z","dependencies_parsed_at":"2025-03-14T22:19:10.854Z","dependency_job_id":"b8c86a29-b4c1-4621-ad39-b4218d18220b","html_url":"https://github.com/Raul-Tenorio02/javaRE","commit_stats":null,"previous_names":["raul-tenorio02/javare"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raul-Tenorio02%2FjavaRE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raul-Tenorio02%2FjavaRE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raul-Tenorio02%2FjavaRE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Raul-Tenorio02%2FjavaRE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Raul-Tenorio02","download_url":"https://codeload.github.com/Raul-Tenorio02/javaRE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246969048,"owners_count":20862482,"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":["backend","java","object-oriented-programming"],"created_at":"2025-04-03T08:37:37.699Z","updated_at":"2025-04-03T08:37:38.344Z","avatar_url":"https://github.com/Raul-Tenorio02.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OBJECT-ORIENTED INVENTORY SYSTEM\n\nThis project aims to recreate some of the main features of the classic Resident Evil 2 inventory and item management system. It allows you to create items, list them in your inventory, update their characteristics, or merge two items to generate a new one with special attributes. Additionally, you can transfer items between your inventory and the item box.\n\n⚠️ Disclaimer: This is NOT a game, but a backend system for data manipulation inspired by Resident Evil's inventory mechanics.\n\nFeel free to fork this project ;)\n\n# Current Features\n\n1. ArrayList-based data structure. \n2. Usage of enums, interfaces, abstract classes, final classes, records, overriding \u0026 overloading, Hash (Set/Map), Streams.\n3. Item collecting and item combination system (e.g. mixing herbs, reloading and upgrading weapons, and crafting specific key items). \n4. Inventory storage system, allowing you to deposit and retrieve items from the item box. \n5. Comprehensive listing methods for the entire inventory system, including the item box, archive, and equipments. \n6. Weapon usage mechanics. (Not strictly an inventory feature, but adds to the complexity of the project)\n7. Film development system, allowing you to reveal hidden contents. \n8. File reading system.\n\n# Known Issues \u0026 Limitations\n\n1. Some features can present logic mistakes or unexpected behaviors.\n2. Some features are still under development.\n\n# Planned Features\n\n1. Frontend development (currently in progress).\n2. Database integration (currently in progress).\n3.  Create web and RESTful versions with Spring Boot, JPA/Hibernate, MySQL, etc. (currently in progress).\n\n# Getting Started\n\n1. Download the project's ZIP file and open it in your IDE.\n2. All predefined inventories are already set up:\n\n        // Inventory Class\n        public static Inventory Leon = new Inventory(Characters.LEON);\n        public static Inventory Claire = new Inventory(Characters.CLAIRE);\n        public static Inventory Ada = new Inventory(Characters.ADA);\n        public static Inventory Sherry = new Inventory(Characters.SHERRY);\n\n3. Run the application (Main) and start exploring.\n\n# Recent Updates\n\n1. Introduced ItemDatabase to properly instantiate all objects for easier reference.\n2. Created collectItem() and made addToInventory() private.\n3. Refactored multiple methods to be private and final for better encapsulation.\n4. Refactored use of Generics to extend Item in order to solve cast exceptions.\n5. Implemented use of Hash (Map and Set) to increase performance and reduce code.\n6. Improved use of ternary operator and switch case to increase performance and reduce code.\n7. Refactored getItemByName to getItem (using Object directly as a parameter), eliminating issues with items that have the same name but different internal attributes.\n8. Refactored to initialize all inventories at once with predefined starting items.\n9. Moved Characters inventories to Inventory Class and declared them static.\n10. Reordered packages to improve architecture. \n11. Started implementing a CLI.\n12. Implemented streams use.\n13. Added commenting.\n14. Added use of Try/Catch.\n15. Deleted Knife Directory and included its methods and interfaces in other classes to reduce redundancy.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraul-tenorio02%2Fjavare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraul-tenorio02%2Fjavare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraul-tenorio02%2Fjavare/lists"}