{"id":20754816,"url":"https://github.com/lexhouk/goit-pyweb-hw-01","last_synced_at":"2025-05-11T06:31:18.626Z","repository":{"id":243297546,"uuid":"811821030","full_name":"lexhouk/goit-pyweb-hw-01","owner":"lexhouk","description":"Модуль 1. Прийоми об'єктно-орієнтованого програмування","archived":true,"fork":false,"pushed_at":"2024-06-07T19:48:49.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T15:41:28.346Z","etag":null,"topics":["abstractmethod","goit","goit-pyweb-hw-01","python-abc","studying","uml","uml-class-diagram","uml-diagram"],"latest_commit_sha":null,"homepage":"https://www.edu.goit.global/uk/learn/21196455/24556365/24556491/homework","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/lexhouk.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-06-07T11:19:09.000Z","updated_at":"2024-06-08T18:41:35.000Z","dependencies_parsed_at":"2024-06-07T21:58:56.790Z","dependency_job_id":"6d8a61c4-bd92-42f0-8b58-17eb7478ad67","html_url":"https://github.com/lexhouk/goit-pyweb-hw-01","commit_stats":null,"previous_names":["lexhouk/goit-pyweb-hw-01"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexhouk%2Fgoit-pyweb-hw-01","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexhouk%2Fgoit-pyweb-hw-01/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexhouk%2Fgoit-pyweb-hw-01/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lexhouk%2Fgoit-pyweb-hw-01/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lexhouk","download_url":"https://codeload.github.com/lexhouk/goit-pyweb-hw-01/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253528318,"owners_count":21922622,"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":["abstractmethod","goit","goit-pyweb-hw-01","python-abc","studying","uml","uml-class-diagram","uml-diagram"],"created_at":"2024-11-17T09:19:18.746Z","updated_at":"2025-05-11T06:31:18.266Z","avatar_url":"https://github.com/lexhouk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"```mermaid\nclassDiagram\n    Field \u003c|--* Name\n    Field \u003c|--* Phone\n    Field \u003c|--* Birthday\n\n    Name \u003c|--* Record\n    Phone \"0..*\" \u003c|--o \"1\" Record\n    Birthday \u003c|--o Record\n\n    UserDict \u003c|-- AddressBook\n    Record \"0..*\" \u003c|--o \"1\" AddressBook\n\n    Exception \u003c|-- PhoneError\n    Exception \u003c|-- BirthdayError\n    Exception \u003c|-- RecordError\n\n    ABC \u003c|-- Reader\n    Reader \u003c|-- CliReader\n\n    ABC \u003c|-- Writer\n    Writer \u003c|-- CliWriter\n\n    class Field {\n        \u003c\u003cabstract\u003e\u003e\n        +str value\n        +__init__(str value) None\n        +__str__() str\n    }\n\n    Phone: +__init__(str value) None\n\n    class Birthday {\n        +str FORMAT\n        +__init__(str value) None\n        +__str__() str\n    }\n\n    class Record {\n        +Name name\n        +list~Phone~ phones\n        +Birthday|None birthday\n        +__init__(str name) None\n        +__str__() str\n        #find(str phone, bool get_instance) int | Phone | None\n        +add_phone(str phone) None\n        +remove_phone(str phone) None\n        +edit_phone(str current, str new) None\n        +find_phone(str phone) Phone | None\n        +add_birthday(str birthday) None\n    }\n\n    class UserDict {\n        \u003c\u003cabstract\u003e\u003e\n    }\n\n    class AddressBook {\n        +data: Dict[str, Record]\n        +add_record(Record record) None\n        +find(str name) Record\n        +delete(str name) None\n        date_to_string(datetime.datetime date) str$\n        find_next_weekday(datetime.datetime start_date, int weekday) datetime.datetime$\n        +adjust_for_weekend(datetime.datetime birthday) datetime.datetime\n        +get_upcoming_birthdays(int days) Dict[str, list[str]]\n    }\n\n    class Exception {\n        \u003c\u003cabstract\u003e\u003e\n    }\n\n    PhoneError: +__init__() None\n    BirthdayError: +__init__() None\n\n    class RecordError {\n        +str MESSAGE\n        +__init__() None\n    }\n\n    class ABC {\n        \u003c\u003cabstract\u003e\u003e\n    }\n\n    class Reader {\n        \u003c\u003cabstract\u003e\u003e\n        -prompt\n        +__init__(str prompt) None\n        read() tuple~str~*\n    }\n\n    CliReader: +read() tuple~str~\n\n    class Writer {\n        \u003c\u003cinterface\u003e\u003e\n        write(str data) None*\n    }\n\n    class CliWriter {\n        +__init__() None\n        +write(str data) None\n    }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexhouk%2Fgoit-pyweb-hw-01","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flexhouk%2Fgoit-pyweb-hw-01","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flexhouk%2Fgoit-pyweb-hw-01/lists"}