{"id":20539496,"url":"https://github.com/lestherll/csc1035-p1","last_synced_at":"2026-06-05T19:31:41.723Z","repository":{"id":207483793,"uuid":"410387642","full_name":"lestherll/csc1035-p1","owner":"lestherll","description":"Project 1: Crime Report CLI Tool for CSC1035 Computer Science Module","archived":false,"fork":false,"pushed_at":"2021-09-25T21:42:34.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-06T04:13:31.752Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lestherll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-09-25T21:41:07.000Z","updated_at":"2021-09-25T21:54:03.000Z","dependencies_parsed_at":"2023-11-16T03:25:00.472Z","dependency_job_id":"bc40d07d-bcb3-40ac-928a-21d3834cb737","html_url":"https://github.com/lestherll/csc1035-p1","commit_stats":null,"previous_names":["lestherll/csc1035-p1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lestherll/csc1035-p1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lestherll","download_url":"https://codeload.github.com/lestherll/csc1035-p1/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lestherll%2Fcsc1035-p1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33957498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-16T00:52:29.048Z","updated_at":"2026-06-05T19:31:41.698Z","avatar_url":"https://github.com/lestherll.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\nThis program enables the user to record incidents(burglaries) in certain areas of a country/region.\nThis way, they can keep track of the incidents details and generate reports based on them.\n\n## Usage\n### Running the program\nRunning the program itself is quite basic.\n1. Clone the project with :\n   - `git clone https://nucode.ncl.ac.uk/scomp/student-portfolios/c0026034-portfolio/csc1035/csc1035-proj-1.git`\n   - Create project from version control in your IDE\n   \n2. Run [Main.java](/src/main/Main.java) whilst making sure that `CSC1035-proj-1/` is the root directory\n\n### Using the program\n- When the program is running the user should be welcomed with 4 options\n    - Enter district\n      - The program creates a new district based on the name given by the user\n    - Enter incident\n      - The program creates a new incident which can then be linked to a district\n      based on the input given by the user\n    - Present report\n      - The program will generate a report\n    - Exit\n      - This will exit the program\n\n### Program Loop\n![img.png](diagrams/menu_loop.png)\n\nThe program has 5 main states: a main menu, enter district, enter incident, present report\nand the end of the program. The flowchart above reflects this behaviour. The graph doesn't\nshow the internal progression of sub-states 1 to 3.\n\n#### State 1 Enter District\nThe user enters the **name** of the district, and the program creates a District Object based on\nit, adding this new object to a list of Districts that are contained by the Reporting object.\n\n#### State 2 Enter Incident\nThe user enters the **postcode** -\u003e **month** -\u003e **year** -\u003e **value**, and then they also\nget to choose which district they want to add the incident into. The user has an option to\ncreate a new district if there currently isn't any, they also have a choice to add the incident\nthey created to a new district if they wanted to.\n\n#### State 3 Present Report\nThe user enters the **year** that they want to generate the average from, and the **value**\nthat they intend to compare the values of the incidents to in order to generate a list that\nexceeds that value.\n\n## Architecture\nThis section discusses how the different classes are linked, how they interact with each other\nand how the whole project itself integrates all of them to form one entity.\n\n![img.png](diagrams/class_diag.png)\n\nThe diagram above shows how the classes interact with each other, their main components, and behaviour.\nAssume that all classes have their own appropriate getters and setters. An arrow without annotations\nmeans that the class being pointed to **has** a class as its field from where the arrow came from. \n\nDistrict contains **many** Incident objects, Reporting contains **many** District objects, and ReportingIO \ncontains **a** Reporting object. The Main class is separated from the actual objects that represent\nan abstract form of data from real life to isolate the execution of the program from the structure of \nthe classes, and the program loop that I have defined in ReportingIO.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flestherll%2Fcsc1035-p1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flestherll%2Fcsc1035-p1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flestherll%2Fcsc1035-p1/lists"}