{"id":24770897,"url":"https://github.com/amir-mohseni/cargopacking","last_synced_at":"2025-03-23T20:26:08.361Z","repository":{"id":219262655,"uuid":"748597845","full_name":"Amir-Mohseni/CargoPacking","owner":"Amir-Mohseni","description":"A fully functional application that helps putting blocks of different sizes and dimensions in a container","archived":false,"fork":false,"pushed_at":"2024-08-28T10:59:37.000Z","size":4671,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T03:57:02.937Z","etag":null,"topics":["java","packing-algorithm"],"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/Amir-Mohseni.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-01-26T10:42:20.000Z","updated_at":"2024-08-28T10:59:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"669f54d3-25a8-4a73-9ba8-7f590f886546","html_url":"https://github.com/Amir-Mohseni/CargoPacking","commit_stats":null,"previous_names":["amir-mohseni/cargopacking"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir-Mohseni%2FCargoPacking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir-Mohseni%2FCargoPacking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir-Mohseni%2FCargoPacking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amir-Mohseni%2FCargoPacking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Amir-Mohseni","download_url":"https://codeload.github.com/Amir-Mohseni/CargoPacking/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245163835,"owners_count":20571004,"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","packing-algorithm"],"created_at":"2025-01-29T03:57:05.802Z","updated_at":"2025-03-23T20:26:08.303Z","avatar_url":"https://github.com/Amir-Mohseni.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cargo Packing\n\n\n\n## A fully functional application that helps putting blocks of different sizes and dimensions in a container\n\nThis project helps with finding different ways to pack cargo in a container. It has two options:\n1) Maximizing profits\n2) Maximizing space utilization\n\nThe application gives the user the option to pick the approach and by default, the values for the profits of the blocks are 3, 4, and 5 for types A, B, and C respectively.\n\nThe application layer for this project was built using the JavaFX library and the algorithms were written in Java.\n\n\u003cimg width=\"936\" alt=\"Screenshot 2024-01-26 at 12 01 01 in the afternoon\" src=\"https://github.com/Amir-Mohseni/CargoPacking/assets/51225853/29b1cc6f-83fa-41fe-a64b-a5ebc4e18784\"\u003e\n\n\n## Running the program\nWe used JavaFX 18 and Java 21 for this project.\nFor running this program you need to install JavaFX and add it to your project. You can find the instructions [here](https://openjfx.io/openjfx-docs/) and \nin order to download the Java 21 you can go to [this](https://www.oracle.com/java/technologies/javase-downloads.html) link.\n\nAfter installing these libraries you can run the program by running the `JFX3D.java` file in `src/Phase3.JFX3D` directory or by running these two commands in the terminal:\n\n```javac ./src/Phase3/JFX3D.java```\n\n```java ./src/Phase3/JFX3D.java```\n\n\n\u003cimg width=\"1335\" alt=\"Screenshot 2024-01-26 at 11 58 38 in the morning\" src=\"https://github.com/Amir-Mohseni/CargoPacking/assets/51225853/a8b0c69c-abab-4527-b398-05beaae6efe3\"\u003e\n\n## How to use the program\nAfter running the program, you are able to pick the algorithm that you want to use and the types of blocks you have.\n\nYou can also change the values of the items by changing the numbers in the values section. For maximizing space utilization, the values of items should be `(-1, -1, -1)`.\n\n\u003cimg width=\"1335\" alt=\"Screenshot 2024-01-26 at 12 02 55 in the afternoon\" src=\"https://github.com/Amir-Mohseni/CargoPacking/assets/51225853/6a6f79a0-7ddc-48f0-ade3-6fd7145238d8\"\u003e\n\n\n## Starting the program\n\nAfter clicking on the `Start` button, the program will show you the result of the algorithm that you chose. You can reset the program by clicking on the `Reset` button.\n\nYou can use the sliders at the bottom of the app to render only parts of the container. \n\nFurthermore, you can select the container and rotate it by using the mouse.\n\n## Results and reports\nYou can find the results and the full report about the algorithms in the `results` directory. The results and the report are in the form of `.pdf` and `.xlsx` files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famir-mohseni%2Fcargopacking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famir-mohseni%2Fcargopacking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famir-mohseni%2Fcargopacking/lists"}