{"id":27295979,"url":"https://github.com/robere2/portfolio","last_synced_at":"2025-04-11T23:29:47.957Z","repository":{"id":38502192,"uuid":"111586263","full_name":"robere2/Portfolio","owner":"robere2","description":"Source code for my portfolio website","archived":false,"fork":false,"pushed_at":"2024-12-13T18:18:45.000Z","size":17874,"stargazers_count":0,"open_issues_count":12,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-13T19:26:03.107Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ecr.dev/","language":"JavaScript","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/robere2.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":"2017-11-21T18:28:37.000Z","updated_at":"2024-12-13T18:17:45.000Z","dependencies_parsed_at":"2023-12-23T21:40:06.069Z","dependency_job_id":"9b299547-8a7c-4a38-9300-48b331ee146a","html_url":"https://github.com/robere2/Portfolio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robere2%2FPortfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robere2%2FPortfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robere2%2FPortfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robere2%2FPortfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robere2","download_url":"https://codeload.github.com/robere2/Portfolio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248494569,"owners_count":21113460,"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":"2025-04-11T23:29:47.240Z","updated_at":"2025-04-11T23:29:47.949Z","avatar_url":"https://github.com/robere2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Portfolio \u0026middot; [![Deploy to Azure](https://github.com/robere2/Portfolio/actions/workflows/deploy.yml/badge.svg)](https://github.com/robere2/Portfolio/actions/workflows/deploy.yml) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/robere2/Portfolio/blob/master/LICENSE)\n\u003e Personal portfolio for Erik Roberts\n\n## Installing / Getting started\n\nThis project is designed to have as few dependencies as possible. The dependencies it does have are, for the most part, build dependencies.\n\nThis project is also ready to be deployed to Azure Static Web Apps with CD.\n\n## Developing\n\n### Built With\n\nVite is used for bundle the application. The only runtime dependencies are:\n- [FontAwesome](https://fontawesome.com/) is used as a source for icons.\n- [Google reCAPTCHA](https://www.google.com/recaptcha/about/) is used to protect against contact form spam.\n\nAs few dependencies as possible are used, and new dependencies should be installed sparingly.\n\n\n### Prerequisites\n\nYou should have [Node.JS and NPM](https://nodejs.org/en/download/) installed on your computer. Node.js v22 is recommended, but v20 is also supported. If you have [nvm](https://github.com/nvm-sh/nvm) installed, you can switch to the correct Node.js version by running:\n\n```shell\nnvm use\n```\n\nIf you intend to develop and run Azure Functions locally, you also need to install the Azure SWA CLI:\n\n```shell\nnpm install -g @azure/static-web-apps-cli azure-functions-core-tools@3\n```\n\n\n### Setting up Dev\n\nHere are the steps to set up a local development environment.\n\nFirst clone the repository locally.\n\n```shell\ngit clone https://github.com/robere2/Portfolio.git\ncd Portfolio/\n```\n\nInstall the dependencies for the client.\n\n```shell\ncd client\nnpm install\ncd ..\n```\n\nOptionally, if you want to run the Azure Functions locally (as opposed to just the frontend), also install the backend dependencies.\n\n```shell\ncd api\nnpm install\ncd ..\n```\n\nIf you do intend on running the Azure Functions, you also need to create a `local.settings.json` file.\n\n```shell\ncp api/sample.local.settings.json api/local.settions.json\n```\n\nAnd then edit `local.settings.json` to contain the proper configuration values. These values should be kept secret and not committed to version control.\n\n#### Running with Functions\n\nTo run with functions enabled, simply run:\n```shell\nswa start\n```\nOpen the application at http://localhost:4280/\n\n#### Running without Functions\n\nTo run without functions enabled, simply run:\n```shell\ncd client\nnpm run dev\n```\nOpen the application at http://localhost:3000/\n\n### Building\n\n#### Client\n\nThe client can be built via:\n```shell\nnpm run build\n```\nThis will output the built project to `/client/dist`. You can then start up a simple HTTP server to serve your built application via:\n```shell\nnpm run preview\n```\n\n#### API\n\nThe Azure Functions do not have any build steps.\n\n### Deploying / Publishing\n\nThis project has full continuous deployment support for Azure Functions. Take a look at the [GitHub Workflow file](./.github/workflows/deploy.yml) to see how it works.\n\n## Configuration\n\nNo configuration is required for the client.\n\nFor the Azure Functions, you must set up `local.settings.json` to develop locally, as mentioned in the \"Setting up Dev\" section. Once deployed to Azure, instead of using a `local.settings.json` file, you will configure your application settings in the Azure Portal.\n\nIf you intend to deploy this application on a domain other than [https://ecr.dev/](https://ecr.dev/), you will need to create your own FontAwesome kit with the custom icons:\n\n* `fa-azure`\n* `fa-cpp`\n* `fa-electron`\n* `fa-graphql`\n* `fa-mongodb`\n* `fa-nestjs`\n* `fa-postgres`\n* `fa-redis`\n* `fa-rabbitmq`\n* `fa-minecraft`\n\nMore information available on [FontAwesome's website](https://fontawesome.com/docs/web/setup/use-kit).\n\nYou will also need to set up a custom reCAPTCHA profile for your domain. More information available on [Google's website](https://developers.google.com/recaptcha/docs/v3).\n\n## Tests\n\nNo test suite is currently available.\n\nRefer to issue [#24](https://github.com/robere2/Portfolio/issues/24).\n\n## Style guide\n\nThis project follows the code guidelines found at [https://github.com/elsewhencode/project-guidelines](https://github.com/elsewhencode/project-guidelines).\n\nPull requests must be linted before being merged. You can lint locally via `npm run lint` in both `api/` and `client/`. `npm run fix` will attempt to fix any linter issues.\n\nIf development environment setup instructions were followed correctly, then a pre-commit hook should have been installed to automatically lint your staged files before committing. If your changes have any linting issues, then the commit will abort. Even if this is not set up, the GitHub Action will notice the issues for you. \n\n## Api Reference\n\n`/api/SubmitContact`\n\nSubmit a \"Contact Me\" form.\n\n- POST\n- Requires body parameters: `name`, `email`, `subject`, `body`, `token`.\n- Content-Type `application/json`.\n\n## Licensing\n\n[This project is licensed under the MIT license.](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobere2%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobere2%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobere2%2Fportfolio/lists"}