{"id":18422635,"url":"https://github.com/ndjenkins85/personalsite","last_synced_at":"2026-04-29T01:32:45.575Z","repository":{"id":45088729,"uuid":"163789131","full_name":"ndjenkins85/personalsite","owner":"ndjenkins85","description":"Codebase and assets used to create and manage my personal website","archived":false,"fork":false,"pushed_at":"2026-02-15T22:15:32.000Z","size":39325,"stargazers_count":1,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-15T23:53:43.852Z","etag":null,"topics":["flask","personal-website","python-package"],"latest_commit_sha":null,"homepage":"https://www.ndjenkins.com/","language":"HTML","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/ndjenkins85.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-02T03:19:06.000Z","updated_at":"2026-02-15T22:14:48.000Z","dependencies_parsed_at":"2025-03-10T15:22:03.045Z","dependency_job_id":"0e039e02-2e17-4dae-a1cb-d5e1031f1c40","html_url":"https://github.com/ndjenkins85/personalsite","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ndjenkins85/personalsite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndjenkins85%2Fpersonalsite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndjenkins85%2Fpersonalsite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndjenkins85%2Fpersonalsite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndjenkins85%2Fpersonalsite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ndjenkins85","download_url":"https://codeload.github.com/ndjenkins85/personalsite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndjenkins85%2Fpersonalsite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32407164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["flask","personal-website","python-package"],"created_at":"2024-11-06T04:32:02.981Z","updated_at":"2026-04-29T01:32:45.558Z","avatar_url":"https://github.com/ndjenkins85.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Personal site\n\nThis repo generates my personal website and resume.\nIt uses docker for hosting on Heroku.\nThe site is open to public, and intended for colleagues, friends, family and recruiters.\n\nThe site uses flask framework to serve markdown blog posts according to my custom scripts.\n\n* [Installation](#installation)\n  * [Dependency and virtual environment management, library development and build with poetry](#dependency-and-virtual-environment-management-library-development-and-build-with-poetry)\n  * [Code quality, testing, and generating documentation with Nox](#code-quality-testing-and-generating-documentation-with-nox)\n  * [Code formatting with Pre-commit](#code-formatting-with-pre-commit)\n* [Running the webserver](#running-the-webserver)\n* [Contributors](#contributors)\n\n## Installation\n\nThe following are the setup instructions for installing the codebase locally to continue development.\nFollow each step here and ensure tests are working.\n\n### Python\n\nThis project uses Python 3.12\n\n### Dependency and virtual environment management, library development and build with poetry\n\nEnsure you have and installation of Poetry `2.1.1` or above, along with poetry-version-plugin.\n\nAlso add the following extras:\n\n```bash\npoetry self add poetry-plugin-shell\npoetry self add poetry-plugin-export\n```\n\nSet preference for in-project virtual environment\n```bash\npoetry config virtualenvs.in-project true\n```\n\n\nMake sure you deactivate any existing virtual environments (i.e. conda).\n\n```bash\npoetry install\n```\n\nYou may need to point poetry to the correct python interpreter using the following command.\nIn another terminal and in conda, run `which python`.\n```bash\npoetry env use /path/to/python3\n```\n\nLibrary can be built using\n\n```bash\npoetry build\n```\n\n### Code quality, testing, and generating documentation with Nox\n\nNox is a python task automation tool similar to Tox, Makefiles or scripts.\n\nThe following command can be used to run mypy, lint, and tests.\nIt is recommended to run these before pushing code, as this is run with Github Actions.\nSome checks such as black are run more frequently with [pre-commit](#installing-pre-commit).\n\n```bash\npoetry run nox\n```\n\nLocal Sphinx documentation can be generated with the following command.\nDocumentation publishing using Github Actions to Github pages is enabled by default.\n\n```bash\npoetry run nox -s docs\n```\n\nAll other task automations commands can be optionally run locally with below command.\n\n```bash\npoetry run nox -s black safety pytype typeguard coverage xdoctest autoflake\n```\n\n### Code formatting with Pre-commit\n\nOn first time use of the repository, pre-commit will need to be installed locally.\nYou can use the following command to install and run pre-commit over all files.\nSee .pre-commit-config.yaml for checks in use.\nIntention is to have lightweight checks that automatically make code changes.\n\n``` bash\npre-commit run --all-files\n```\n\n## Running the webserver\n\n### Local webserver\n\nAfter following above instructions to use poetry environment, view website locally with following command:\n\n``` bash\npython run.py\n...\n * Serving Flask app 'personalsite' (lazy loading)\n * Environment: production\n   WARNING: This is a development server. Do not use it in a production deployment.\n   Use a production WSGI server instead.\n * Debug mode: on\n * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)\n```\n\nVisit [localhost](http://127.0.0.1:5000) on browser.\n\n### Containerized webserver\n\nWebserver can be started using docker-compose or Dockerfile. The Heroku publishing via github actions uses Dockerfile.\n\n``` bash\ndocker-compose build\ndocker-compose up\ndocker-compose down\n```\n\nAlternatively run from Dockerfile:\n\n``` bash\ndocker build -t bluemania/personalsite .\ndocker run -p 5000:5000 -e PORT=5000 --rm bluemania/personalsite\ndocker stop $(docker ps -a -q)\n```\n\nVisit [localhost](http://0.0.0.0:5000) on browser.\n\n### Publish to Heroku\n\nThe following commands are used to push the containerized webserver to Heroku.\nThese steps currently need to be performed in local development environment.\n\n``` bash\nheroku login\ndocker build -t bluemania/personalsite .\nheroku container:login\ndocker tag bluemania/personalsite registry.heroku.com/nickjenkins/web\ndocker push registry.heroku.com/nickjenkins/web\nheroku container:release web -a nickjenkins\n\n```\n\n## Contributors\n\n* [Nick Jenkins](https://www.ndjenkins.com) - Data Scientist, API \u0026 Web dev, Team lead, Writer\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) in Github repo for specific instructions on contributing to project.\n\nUsage rights governed by [LICENSE](LICENSE)  in Github repo or page footer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndjenkins85%2Fpersonalsite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndjenkins85%2Fpersonalsite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndjenkins85%2Fpersonalsite/lists"}