{"id":21156057,"url":"https://github.com/itsmunim/parking-lot-manager","last_synced_at":"2025-07-30T21:38:01.017Z","repository":{"id":51690790,"uuid":"218336655","full_name":"itsmunim/parking-lot-manager","owner":"itsmunim","description":"A simple parking lot management abstraction POC","archived":false,"fork":false,"pushed_at":"2022-12-30T18:58:01.000Z","size":82,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T08:44:51.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/itsmunim.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}},"created_at":"2019-10-29T16:46:06.000Z","updated_at":"2019-12-09T12:40:59.000Z","dependencies_parsed_at":"2023-01-31T13:46:31.156Z","dependency_job_id":null,"html_url":"https://github.com/itsmunim/parking-lot-manager","commit_stats":null,"previous_names":["itsmunim/parking-lot-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmunim%2Fparking-lot-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmunim%2Fparking-lot-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmunim%2Fparking-lot-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmunim%2Fparking-lot-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsmunim","download_url":"https://codeload.github.com/itsmunim/parking-lot-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243597837,"owners_count":20316845,"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":[],"created_at":"2024-11-20T11:35:15.303Z","updated_at":"2025-03-14T15:17:09.786Z","avatar_url":"https://github.com/itsmunim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"##### Parking Lot CLI\n\nA simple command line interface for managing your parking lot.\n\n###### Setup\n\n- You can either run: `cd program \u0026\u0026 npm i \u0026\u0026 npm run build` or `./bin/setup` to setup necessary files\n\n- In case you can't run `./bin/setup`, give the file `execution` permission by running `chmod +x bin/setup`\nin your terminal\n\n- `./bin/setup` is recommended as it will also run the unit tests\n\n- If you follow the node way of preparing the project, then run unit tests manually to\nconfirm everything is working as expected. To do that type: `npm test` inside `program` dir\n\n###### Testing the CLI\n\n- The CLI can either be run in interactive mode or provided a file to process\n\n- It can be spawn up using either of the approaches below:\n\n```bash\ncd program\n./dist/index.js # interactive mode\n./dist/index.js file.txt # file based processing\n```\n\nor\n\n```bash\n./bin/parking_lot # interactive mode\n./bin/parking_lot file.txt # file based processing\n```\n\n- To test the file based processing, you can put the following content in a text file\nand try running the CLI with the file path provided\n\n```text\n// file.txt\n\ncreate_parking_lot 6\npark KA-01-HH-1234 White\npark KA-01-HH-9999 White\npark KA-01-BB-0001 Black\npark KA-01-HH-7777 Red\npark KA-01-HH-2701 Blue\npark KA-01-HH-3141 Black\nleave 4\nstatus\npark KA-01-P-333 White\npark DL-12-AA-9999 White\nregistration_numbers_for_cars_with_colour White\nslot_numbers_for_cars_with_colour White\nslot_number_for_registration_number KA-01-HH-3141\nslot_number_for_registration_number MH-04-AY-1111\n```\n\n```bash\n./bin/parking_lot file.txt\n```\n\n###### Running the Integration Tests\n\n- To check both the modes specified above, you can run the whole integration test suit\ngiven under `functional_spec` dir\n\n```bash\n./bin/run_functional_tests\n```\n\n- To run different specs separately, refer to the `readme` given inside `functional_spec` dir\n\n###### Source Code Structure\n\n- The `core` module contains the main functionality of the CLI\n\n- The file structure looks like below:\n\n```\n| - src\n  | - core\n    | - domains\n      | - test\n      | - car.ts\n      | - ...\n    | - services\n      | - command.executors\n      | - test\n      | - parking.lot.manager.ts\n  | - index.ts\n```\n\n- `src/index.ts` is the entry point for the CLI\n\n- The project uses `typescript` and hence the `npm run build` step is crucial, which creates\nthe executable `dist/` dir under `program/`\n\n- `core/domains` contains the main business models for the CLI\n\n- `core/services/command.executors` contains the backbone of execution flow for the CLI\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsmunim%2Fparking-lot-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsmunim%2Fparking-lot-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsmunim%2Fparking-lot-manager/lists"}