{"id":15757121,"url":"https://github.com/matfin/personal-website","last_synced_at":"2026-01-15T22:31:34.814Z","repository":{"id":38350290,"uuid":"258223359","full_name":"matfin/personal-website","owner":"matfin","description":"This is my personal website created using React and Typescript","archived":false,"fork":false,"pushed_at":"2024-04-03T17:32:31.000Z","size":3701,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-15T02:05:41.459Z","etag":null,"topics":["circleci","docker-compose","eslint","express-js","jest","node-js","progressive-web-app","react","react-hooks","react-redux","react-testing-library","redux","redux-saga","static-site","typescript","wepack-5"],"latest_commit_sha":null,"homepage":"https://mattfinucane.com","language":"TypeScript","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/matfin.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":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-23T13:58:12.000Z","updated_at":"2024-04-30T20:30:26.601Z","dependencies_parsed_at":"2024-04-30T20:30:19.678Z","dependency_job_id":"93f73706-b362-4b53-92b5-d844141b59c6","html_url":"https://github.com/matfin/personal-website","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"matfin/react.typescript.showcase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matfin%2Fpersonal-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matfin%2Fpersonal-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matfin%2Fpersonal-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matfin%2Fpersonal-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matfin","download_url":"https://codeload.github.com/matfin/personal-website/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246695051,"owners_count":20819203,"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":["circleci","docker-compose","eslint","express-js","jest","node-js","progressive-web-app","react","react-hooks","react-redux","react-testing-library","redux","redux-saga","static-site","typescript","wepack-5"],"created_at":"2024-10-04T09:04:19.415Z","updated_at":"2026-01-15T22:31:34.785Z","avatar_url":"https://github.com/matfin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Personal portfolio and CV\n\nThis is my personal website which acts as my portfolio and CV / Resumé.\n\nMy motivation in creating this was to gain a deeper understanding of modern web development practices. I use it as a testing ground for exploring modern web development practices and technologies.\n\n### What does this project encompass?\n\n- dependency management with [NPM](https://docs.npmjs.com/) and building with [Vite](https://vitejs.dev/).\n\n- [TypeScript](https://www.typescriptlang.org/), which is a superset of JavaScript and includes strict type-checking.\n\n- [React Testing Library](https://testing-library.com/docs/react-testing-library/intro) and [vitest](https://vitest.dev/) which is what is used to unit tests components.\n\n- [Docker / Compose](https://docs.docker.com/compose/) is used to test builds locally before they are uploaded. A self signed ssl cert is needed so follow this [excellent guide](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/).\n\n- A content rendering engine was built that reads in a tree of items from JSON files, then chooses the correct component to render as the JSON is fetched.\n\n- For state management, [Redux Toolkit](https://redux-toolkit.js.org/) is used. This makes managing complex async functionality much easier and readable.\n\n- For styling, [CSS Modules](https://github.com/css-modules/css-modules) and [Stylelint](https://stylelint.io/).\n\n- For testing, [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/) and [Vitest](https://vitest.dev/).\n\n### How to install and run this\n\nTo get this running, you should have an up to date stable version of [NodeJS](https://nodejs.org/en/). Version `20.12.2` is used here.\n\n- `$ git@github.com:matfin/personal-website.git` to clone this to your local machine\n- `$ cd personal-website/`\n- `$ npm install` will install dependencies\n- `$ npm run start` will build the server and client and watch for changes\n- `$ npm run build:deploy` will generate the site as a static bundle, which is output to the `/dist` directory.\n- `$ npm run checks` will run unit tests with coverage, code lint and style lint.\n\n### Where does this run?\n\nOn all modern web browsers both mobile and desktop.\n\n### How is this deployed?\n\nFor CI (continuous integration), a very popular and well documented tool called [CircleCI](https://circleci.com/) is used.\n\nThere is a script that generates all content and assets, then a CircleCI config that deploys this to a remote server.\n\n### What are the nice to haves?\n\nThis is documented in the [Tech Roadmap](ROADMAP.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatfin%2Fpersonal-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatfin%2Fpersonal-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatfin%2Fpersonal-website/lists"}