My DjangoCon US 2025 Talk
  • HTML 45.6%
  • Python 44%
  • Just 4.9%
  • JavaScript 2.6%
  • CSS 2%
  • Other 0.9%
Find a file
Ryan Cheley 5c5605d2fd 📝 update README.md to reflect current presentation state
- Add justfile quick start commands
- Update slide count from 23 to 86 slides
- Reorganize slide structure with current organization
- Add directory structure documentation
- Update customization instructions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 19:29:05 -07:00
apps 🎉 Initial commit 2025-07-19 20:39:29 -07:00
core ✨ add new patient risk model 2025-07-20 10:40:20 -07:00
patient ✨ add new patient risk model 2025-07-20 10:40:20 -07:00
patient_risk ✏️ implement round 4 feedback 2025-08-10 08:58:13 -07:00
presentation 📝 update README.md to reflect current presentation state 2025-09-18 19:29:05 -07:00
.dockerignore 🎉 Initial commit 2025-07-19 20:39:29 -07:00
.env.example 🎉 Initial commit 2025-07-19 20:39:29 -07:00
.gitignore 🙈 exclude local files 2025-07-27 10:37:40 -07:00
.pre-commit-config.yaml 🔧 add codespell 2025-08-24 09:27:27 -07:00
.pydocstyle 🎉 Initial commit 2025-07-19 20:39:29 -07:00
docker-compose.yml 🎉 Initial commit 2025-07-19 20:39:29 -07:00
Dockerfile 🎉 Initial commit 2025-07-19 20:39:29 -07:00
hello.py 🎉 Initial commit 2025-07-19 20:39:29 -07:00
justfile 🔧 update for cleaner experience 2025-07-20 08:20:16 -07:00
LICENSE Create LICENSE 2025-08-06 17:44:05 -07:00
manage.py 🎉 Initial commit 2025-07-19 20:39:29 -07:00
pgadmin-servers.json.example 🎉 Initial commit 2025-07-19 20:39:29 -07:00
pyproject.toml ✏️ implement round 4 feedback 2025-08-10 08:58:13 -07:00
README.md 🔥 remove license detail in readme 2025-08-06 17:45:11 -07:00

Core - Django Healthcare Application

A Django 5.2 application built with 12-factor app principles, using PostgreSQL 17 as the database and including pgAdmin for database administration.

Features

  • Django 5.2 with Python 3.13
  • PostgreSQL 17 database
  • pgAdmin 4 for database administration
  • Docker containerization
  • 12-factor app compliance with django-environ
  • Comprehensive testing setup with pytest
  • Code quality tools (Black, Ruff, mypy)
  • Pre-commit hooks
  • Health check endpoint
  • Just command runner for streamlined workflow

Prerequisites

  • Docker and Docker Compose
  • Just command runner (brew install just on macOS)
  • Python 3.13+ (for local development)
  • uv package manager

Quick Start

  1. Clone the repository and navigate to the project:

    cd core
    
  2. Run the complete setup:

    just setup
    
  3. Start the development server:

    just up
    
  4. Access the services:

Available Commands

Run just --list to see all available commands. Here are the most common ones:

Development

  • just up - Start all services
  • just down - Stop all services
  • just restart - Restart all services
  • just logs - View logs

Database

  • just migrate - Run migrations
  • just makemigrations - Create new migrations
  • just superuser - Create superuser
  • just dbshell - Open database shell
  • just pgadmin - Show pgAdmin access info

Testing & Quality

  • just test - Run tests
  • just test-cov - Run tests with coverage
  • just lint - Check code with ruff
  • just format - Format code with black
  • just typecheck - Run type checking
  • just quality - Run all quality checks

Utilities

  • just shell - Django shell with extensions
  • just clean - Clean up containers
  • just reset-db - Reset database (destructive!)

Environment Configuration

Copy .env.example to .env and update the values:

cp .env.example .env

Key environment variables:

  • SECRET_KEY - Django secret key (generate with just generate-secret)
  • DEBUG - Debug mode (True/False)
  • DATABASE_URL - PostgreSQL connection string
  • ALLOWED_HOSTS - Comma-separated list of allowed hosts

Development Workflow

  1. Make changes to the code
  2. Run quality checks: just quality
  3. Fix any issues: just lint-fix and just format
  4. Run tests: just test
  5. Commit changes (pre-commit hooks will run automatically)

Testing

The project uses pytest for testing with coverage reporting:

just test         # Run all tests
just test-cov     # Run with coverage report
just test-file apps/accounts/tests.py  # Run specific test file

Code Quality

The project enforces code quality through:

  • Black - Code formatting
  • Ruff - Fast Python linting
  • mypy - Static type checking
  • pre-commit - Git hooks for automated checks

Database Management

  • PostgreSQL 17 is used as the primary database
  • pgAdmin 4 is included for database administration
  • Migrations are managed through Django's migration system
  • Database backups: just backup-db
  • Database restore: just restore-db backup.sql

Security

  • Environment-based configuration
  • Secure session and CSRF cookies
  • HTTPS enforcement in production
  • Security headers configured
  • Regular security checks: just security-check