{"id":18706474,"url":"https://github.com/mateusz-przybyla/phpiggy","last_synced_at":"2025-11-09T07:30:36.121Z","repository":{"id":245935716,"uuid":"819605468","full_name":"mateusz-przybyla/PHPiggy","owner":"mateusz-przybyla","description":"Expense tracking application - \"Complete Modern PHP Developer Course\" on UDEMY","archived":false,"fork":false,"pushed_at":"2024-07-18T11:41:12.000Z","size":2109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-28T07:16:01.601Z","etag":null,"topics":["dependency-injection","mvc","php","sql"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mateusz-przybyla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-24T21:11:38.000Z","updated_at":"2024-08-05T19:27:17.000Z","dependencies_parsed_at":"2024-07-05T23:40:52.224Z","dependency_job_id":null,"html_url":"https://github.com/mateusz-przybyla/PHPiggy","commit_stats":null,"previous_names":["mateusz-przybyla/phpiggy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusz-przybyla%2FPHPiggy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusz-przybyla%2FPHPiggy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusz-przybyla%2FPHPiggy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusz-przybyla%2FPHPiggy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mateusz-przybyla","download_url":"https://codeload.github.com/mateusz-przybyla/PHPiggy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239571542,"owners_count":19661164,"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":["dependency-injection","mvc","php","sql"],"created_at":"2024-11-07T12:14:11.975Z","updated_at":"2025-02-18T23:43:06.724Z","avatar_url":"https://github.com/mateusz-przybyla.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHPiggy\n\nComplete Modern PHP Developer Course. Includes SQL and MVC Framework.\n\n## Table of contents\n\n- [Overview](#overview)\n  - [About the course](#about-the-course)\n  - [Master Project](#master-project)\n  - [Useful resources](#useful-resources)\n\n## Overview\n\n### About the course\n\nThis course consists of practical and fun code examples, important theory about how PHP works behind the scenes and complete project.\n\nMain content:\n\n- PHP fundamentals,\n- OOP,\n- design patterns: MVC, singleton pattern, factory pattern, dependency injection,\n- modern tools: Composer, Packagist,\n- understanding PSR,\n- SQL queries,\n- code challenges,\n- master project\n\n### Master Project\n\nExpense tracking application consist of two components - application and custom framework.\nApplication compoment has a specific code which is tightly coupled to project and it wouldn't work separately without making major adjustments.\nFramework component has a specific code but this code is portable and flexible.\n\nThis project also uses MVC design pattern which is responsible for splitting code (dividing responsibilities) into separate files (separation of concerns principle).\n\nThe MVC pattern is an acronym for Model-View-Controller:\n\n- Model refers to the database logic,\n- View refers to the HTML or template of a page,\n- Controller refers to the logic for the page.\n\nThe following functionalities have been implemented in the application:\n\n- routing,\n- form validation,\n- user registration and authentication,\n- CRUD transations,\n- handling file uploads (receipts).\n\nProject screenshots:\n\n- Application logic - it shows how the MVC pattern works:\n\n  ![](./images/mvc.jpg)\n\n- Database:\n\n  ![](./images/database.jpg)\n\n- Home page (transaction list):\n\n  ![](./images/home-page.jpg)\n\n- Adding new transaction:\n\n  ![](./images/new-transaction.jpg)\n\n### Useful resources\n\n- https://www.udemy.com/course/complete-modern-php-developer/\n- https://www.php.net/manual/en/\n- https://getcomposer.org/\n- https://regex101.com/\n- https://json-ld.org/\n- https://mariadb.com/\n- https://www.php-fig.org/psr/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusz-przybyla%2Fphpiggy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmateusz-przybyla%2Fphpiggy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusz-przybyla%2Fphpiggy/lists"}