{"id":17362838,"url":"https://github.com/mjbae/order-system","last_synced_at":"2025-08-01T00:08:01.234Z","repository":{"id":114792431,"uuid":"578542761","full_name":"MJbae/order-system","owner":"MJbae","description":"CLI 기반 주문 시스템","archived":false,"fork":false,"pushed_at":"2023-03-09T02:05:34.000Z","size":213,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T20:45:21.854Z","etag":null,"topics":["classical-test","ddd","integration-testing","jpa","kotlin","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/MJbae.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":"2022-12-15T09:58:22.000Z","updated_at":"2023-10-19T14:17:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f0128f2-b748-4e88-9172-65814ac44d38","html_url":"https://github.com/MJbae/order-system","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2Forder-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2Forder-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2Forder-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2Forder-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MJbae","download_url":"https://codeload.github.com/MJbae/order-system/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245892344,"owners_count":20689487,"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":["classical-test","ddd","integration-testing","jpa","kotlin","unit-testing"],"created_at":"2024-10-15T19:43:31.933Z","updated_at":"2025-03-27T17:30:14.352Z","avatar_url":"https://github.com/MJbae.png","language":"Kotlin","readme":"## CLI based Order System [![Build with Gradle](https://github.com/MJbae/order-system/actions/workflows/ci-script.yml/badge.svg)](https://github.com/MJbae/order-system/actions/workflows/ci-script.yml)\n\n### How to run\nRun the following commands from the root of the project\n```shell\ndocker build -t order-system:latest .\n```\n```shell\ndocker run -it -p 50152:50152 order-system:latest\n```\n\n### TDD based Implementation Procedure\n1. Write a [Flow Chart](https://github.com/MJbae/order-system/wiki/Flow-Cart) to grasp the overall logic intuitively.\n2. Implement the ordering function in the simplest way\n3. Write a test that fails for the main branch points written in the [Flow Chart](https://github.com/MJbae/order-system/wiki/Flow-Cart)\n4. Modify the code to make the failing test pass.\n5. Repeat steps 3 and 4 enough times, then refactor the entire code based on the test.\n\n### Project Structure\nThis project is composed of the following 5 packages\n* cli: defines objects responsible for input and output in the command environment.\n* application: defines the application service.\n* domain: defines domain objects.\n* exception: defines custom exceptions.\n* infra: defines objects responsible for persistent data.\n\n### Key Technologies\n* Application Framework: Spring Shell\n* RDBMS \u0026 ORM: H2, Spring Data JPA\n* Test Framework: Kotest\n\n### References\n* Application Framework: Spring Shell, [Baeldung Blog](https://www.baeldung.com/spring-shell-cli)\n* Test Framework: Kotest, [Official Document](https://kotest.io/)\n* Test Style: BDD Test Style, [BaeMain Blog](https://techblog.woowahan.com/5825/)\n* Branch Coverage Plugin: JaCoCo, [Official Document](https://docs.gradle.org/7.4.2/userguide/jacoco_plugin.html), [BaeMain Blog](https://techblog.woowahan.com/2661/)\n* Mocking Tool: MockK, [Official Document](https://mockk.io/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjbae%2Forder-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjbae%2Forder-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjbae%2Forder-system/lists"}