Skip to content

imbryan/portfolio

Repository files navigation

Portfolio

Dynamic TOML Badge Python Version from PEP 621 TOML Tests

Personal website that includes a portfolio and a blog. Made with Django. Licensed under GPL-3.0 (see LICENSE file).

Setup

Dependencies

  • pyproject.toml
  • package.json
  • .pre-commit-config.yaml (Git hooks)

Installation

  • uv sync [--group dev]
  • npm install
  • uvx pre-commit install (Git hooks)

Environment variables

Always required

  • DEBUG (True/False)
  • SECRET_KEY
  • ALLOWED_HOSTS (comma-separated values)

For development

  • DATABASE_PATH (e.g. path/to/portfolio/db/db.sqlite3)
  • OIDC_RP_CLIENT_ID
  • OIDC_RP_CLIENT_SECRET
  • OIDC_RP_SIGN_ALGO
  • OIDC_OP_JWKS_ENDPOINT
  • OIDC_OP_AUTHORIZATION_ENDPOINT
  • OIDC_OP_TOKEN_ENDPOINT
  • OIDC_OP_USER_ENDPOINT

Cloudflare Turnstile

  • TURNSTILE_SITE_KEY
  • TURNSTILE_SECRET_KEY

Ko-fi

  • KOFI_VERIFICATION_TOKEN

Django-Axes

  • AXES_ENABLED
  • AXES_IPWARE_PROXY_COUNT
  • AXES_FAILURE_LIMIT

File structure

Python imports

  1. Python standard library
  2. Third-party libraries
  3. Local modules

See: PEP 8

Django project apps

  • api: REST API.
  • home: index page, project portfolio, and blog features.
  • users: authentication.

Other directories

  • assets: Webpack source (pre-bundle).
  • core: Django project utils.
  • portfolio: Django project settings.
  • static: Django static files (pre-collection).
  • templates: Django project templates.

Development

Generating the requirements lock

  • uv lock [--upgrade]
  • npm update

Making changes to models

  1. Make changes in models.py
  2. Register as needed in admin.py
  3. Make sure DATABASE_PATH is set in .env (cross-reference docker-compose*.yml)
  4. In a venv, run python manage.py makemigrations

Linting

ruff check

Running in Docker

docker compose -f docker-compose.yml [-f docker-compose.override.yml] up -d --build

Production

Running in Docker

docker compose -f docker-compose.yml -f docker-compose.prod.yml [-f docker-compose.override.yml] up -d --build

About

Personal website that includes a portfolio and a blog.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published