{"id":15971896,"url":"https://github.com/spimy/csc1024-assignment","last_synced_at":"2025-10-20T14:31:10.637Z","repository":{"id":206248914,"uuid":"716154731","full_name":"Spimy/CSC1024-Assignment","owner":"Spimy","description":"Code for Programming Principles Group Assignment","archived":true,"fork":false,"pushed_at":"2023-12-10T07:14:45.000Z","size":391,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-17T19:42:43.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/Spimy.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":"2023-11-08T14:52:40.000Z","updated_at":"2024-05-28T15:58:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"671980a8-353f-4f58-aae1-3f2952b6964c","html_url":"https://github.com/Spimy/CSC1024-Assignment","commit_stats":null,"previous_names":["spimy/csc1024-assignment"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spimy%2FCSC1024-Assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spimy%2FCSC1024-Assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spimy%2FCSC1024-Assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Spimy%2FCSC1024-Assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Spimy","download_url":"https://codeload.github.com/Spimy/CSC1024-Assignment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237348733,"owners_count":19295408,"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-10-07T20:41:05.309Z","updated_at":"2025-10-20T14:31:10.241Z","avatar_url":"https://github.com/Spimy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSC1024 - Assignment\n\nDevelopment of A Personal Book Management System using Python\n\n## Table of Contents\n\n- [CSC1024 - Assignment](#csc1024---assignment)\n  - [Table of Contents](#table-of-contents)\n  - [Getting Started](#getting-started)\n    - [Cloning the Repo](#cloning-the-repo)\n    - [Creating a New Branch](#creating-a-new-branch)\n    - [Switching Back to Main Branch](#switching-back-to-main-branch)\n    - [Opening a Pull Request (PR)](#opening-a-pull-request--pr-)\n  - [Comments](#comments)\n  - [Code Styling](#code-styling)\n  - [Error Handling](#error-handling)\n  - [Task Delegation](#task-delegation)\n\n## Getting Started\n\nTo start, make sure you have [Git](https://git-scm.com/) installed on your computer. You do **not** need to install the GitHub Desktop app.\n\n### Cloning the Repo\n\nFind a suitable folder you want your project in and clone the repo by running: `git clone https://github.com/Spimy/CSC1024-Assignment.git`. This will download the repo to your computer.\n\n### Creating a New Branch\n\n**IMPORTANT:** Please, before adding new features to the project, please make sure to create a new branch for that feature! This is to ensure there are no conflicts when merging code while working in a group.\n\nFor more information on what a branch is, please check the [official Git documentation](https://git-scm.com/docs/user-manual#what-is-a-branch).\n\nYou may use the Git integration in your preferred IDE to create the new branch or you may use the Git CLI to create a new branch. I am not familiar with PyCharm so I cannot add instructions for it.\n\nCreate a New Branch via the Git CLI: `git checkout -b \u003cbranch_name\u003e`\n\n\u003cdetails\u003e\n  \u003csummary\u003eCreate a New Branch via VSCode\u003c/summary\u003e\n\n  \u003cimg src=\"https://static.spimy.dev/screenshots/Code_TIRHCHXOEF.gif\" alt=\"vscode branch creation instruction\" /\u003e\n\u003c/details\u003e\n\nIn case anyone is working on the same branch as you to help you out on your task, please make sure to **always** push your code to the repo before calling it a day. Similarly, before you start working on your task again, **always** pull your code from the repo. This also applies to whoever is helping out on your task.\n\n### Switching Back to Main Branch\n\nGenerally, you should only need to do this after you are done working on your own branch and after your branch has been merged with the main branch.\n\nIn VSCode, it is in the same menu as shown above. Just click the main branch and you would be switched to it.\n\nIn the Git CLI, run `git checkout main`.\n\n### Opening a Pull Request (PR)\n\nOnce you are done working on your branch to add the feature required, please open a pull request to merge the branch with the main branch. Please message the WhatsApp group when you do. The code will first be reviewed by everyone before merging to ensure consistency, readability and to find potential issues it may cause after merging.\n\nYou open the pull request directly at the GitHub repository.\n\n## Comments\n\nPlease comment on what your code does as much as possible so that it is documented and can be easily understood. This will ultimately help the entire group during the presentation phase.\n\n## Code Styling\n\nPlease follow [PEP8](https://peps.python.org/pep-0008/) syntax styling guidelines. In VSCode, you can install the [Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) for better syntax highlighting experience and enable 'Format on Save' in your VSCode settings using [autopep8](https://marketplace.visualstudio.com/items?itemName=ms-python.autopep8) as the formatter. It should also automatically highlight syntax errors for you.\n\nOnce again, I am not able to provide any instructions for PyCharm.\n\n## Error Handling\n\nThis goes without saying but make sure you handle all the errors possible. For e.g., converting a string to a number can throw a `ValueError` exception in Python, make sure you surround it in a try except block.\n\nYour `except` block **should** specify what error it is handling. If multiple errors can occur, multiple `except` blocks is possible in Python:\n\n```python\nmy_list = []\n\ntry:\n  # Convert input to an integer\n  num = int(input('Enter a number: '))\n\n  # Add integer to list\n  my_list.append(num)\n\n  # Try accessing list item at index 1 (causes IndexError)\n  print(my_list[1])\nexcept ValueError:\n  # Handle the error where input could not convert to an interger\n  print('Input was not a number!')\nexcept IndexError as err:\n  # Print out the default error message for index error without crashing\n  print(str(err))\n```\n\n## Task Delegation\n\nPlease view the [Projects](https://github.com/Spimy/CSC1024-Assignment/projects) page. Your task has been delegated there in the TODO board.\n\nIf you are working on the task, please drag it from 'Todo' to 'In Progress'. Similarly, if you are done, drag it to 'Done'.\n\nClick the 3 dots to open a menu and click on 'Open in new tab' to view your task in more detail:\n\n![Instruction for more details](https://static.spimy.dev/screenshots/firefox_J2FTKdqwus.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspimy%2Fcsc1024-assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspimy%2Fcsc1024-assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspimy%2Fcsc1024-assignment/lists"}