{"id":20750261,"url":"https://github.com/kevsiraki/portfolio","last_synced_at":"2025-10-25T01:39:41.345Z","repository":{"id":171848180,"uuid":"648497929","full_name":"kevsiraki/portfolio","owner":"kevsiraki","description":"A unique portfolio website with a contact form and an easy-to-use file structure.","archived":false,"fork":false,"pushed_at":"2025-06-14T22:39:59.000Z","size":1044,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-14T23:28:26.618Z","etag":null,"topics":["breakthenorm","css","dontusejsframeworksforeverything","lemp-stack","mvc","php","portfolio","vanilla","vanillajs"],"latest_commit_sha":null,"homepage":"https://www.kevinsiraki.com","language":"CSS","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/kevsiraki.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,"zenodo":null}},"created_at":"2023-06-02T05:41:54.000Z","updated_at":"2025-06-14T22:40:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"df46685d-181b-48f7-9667-cf390bea3921","html_url":"https://github.com/kevsiraki/portfolio","commit_stats":null,"previous_names":["kevsiraki/portfolio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kevsiraki/portfolio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevsiraki%2Fportfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevsiraki%2Fportfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevsiraki%2Fportfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevsiraki%2Fportfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevsiraki","download_url":"https://codeload.github.com/kevsiraki/portfolio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevsiraki%2Fportfolio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280893646,"owners_count":26409279,"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","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"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":["breakthenorm","css","dontusejsframeworksforeverything","lemp-stack","mvc","php","portfolio","vanilla","vanillajs"],"created_at":"2024-11-17T08:26:28.327Z","updated_at":"2025-10-25T01:39:41.328Z","avatar_url":"https://github.com/kevsiraki.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src = \"views/screenshot.png\"\u003e \u003c/img\u003e\n# Portfolio\n\u003cp\u003eA unique portfolio website with a contact form and an easy-to-use file structure for you to work upon.\u003c/p\u003e\n\u003cp\u003e\n\tAimed towards promoting a simple yet effective paradigm, this portfolio features seperation of concerns following the MVC approach and uses only vanilla JS and PHP. The code follows a singleton pattern with proper dependency injection.  \n  \n  The backend features separate models and controllers for contact form interaction and page visit tracking, ensuring structured code organization and efficient handling of user interactions and analytics.\n\n  For messages, I personally have a secure automated pipeline that emails me the contents of the \u003ci\u003emessages\u003c/i\u003e table with Crontab, I may create a repository and documentation for this aspect of my personal stack in the future.\n\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.kevinsiraki.com/\"\u003e Demo\u003c/a\u003e\u003cp\u003e\n\u003ch3\u003eStructure\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003econtact/\n   \u003cul\u003e\n    \u003cli\u003eScalable Digital Contact Card\u003c/li\u003e\n\t\u003cli\u003e\u003cimg src = \"views/screenshot2.png\"\u003e \u003c/img\u003e\u003c/li\u003e\n   \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eapi/\n    \u003cul\u003e\n      \u003cli\u003eAPI Endpoints\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003emodel/\n    \u003cul\u003e\n      \u003cli\u003eBusiness Logic\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003econtroller/\n    \u003cul\u003e\n      \u003cli\u003eAPI Controllers\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003edb/\n    \u003cul\u003e\n      \u003cli\u003eDatabase Schema/Config\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eviews/\n    \u003cul\u003e\n      \u003cli\u003ecss/\n        \u003cul\u003e\n          \u003cli\u003eGlobal CSS Styles/Fonts\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003ejs/\n        \u003cul\u003e\n          \u003cli\u003eJS Scripts\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n\t  \u003cli\u003ecomponents/\n        \u003cul\u003e\n          \u003cli\u003eJS Components\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eEntry/Root (resume.php)\u003c/li\u003e\n  \u003cli\u003eexample.env\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevsiraki%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevsiraki%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevsiraki%2Fportfolio/lists"}