Skip to content

soehlert/our-house

Repository files navigation

House Tracker

Build and Push Docker Image

A Django application for tracking and managing information about your house; including appliances, paint colors, electrical circuits, and more. Features an interactive electrical panel diagram generator that visualizes your home's electrical system.

Dashboard

Features

Comprehensive House Management

  • Appliance Tracking: Store documentation, warranties, purchase info, and technical specs Appliance Detail
  • Electrical System Mapping: Document circuits, breakers, and safety features Circuit List Circuit Detail
  • Room Management: Organize your house by rooms and spaces Room List Room Detail
  • Paint Colors: Track paint codes, brands, and which rooms they're used in Paint Detail

Autogenerated Electrical Panel Visualization

Generate SVG diagrams of your electrical panel with:

  • Color-coded breakers based on protection types (GFCI, AFCI, CAFI)
  • Support for single-pole and double-pole breakers
  • Automatic layout and scaling so you can print at any size

Electrical Panel

Export and Import

All of your data can be backed up to a json file and then imported if you ever need. All relationships are stored so you should be back up and running in no time.

Components

Technology Stack

  • Backend: Django 5.x
  • Database: SQLite
  • Package Management: UV

Installation & Setup

Prerequisites

  • Python 3.12+
  • UV package manager

Local Development

  1. Clone the repository

    git clone <your-repo-url>
    cd house-tracker
  2. Install dependencies

    uv sync
  3. Run migrations

    uv run python manage.py migrate
  4. Create a superuser

    uv run python manage.py createsuperuser
  5. Start the development server

     uv run python manage.py runserver
  6. Access the application

    - Main app: http://127.0.0.1:8000/

Production Deployment

For production deployment, consider:

  1. Environment Variables

    Set in your environment or .env file:

    DEBUG=False
    SECRET_KEY=your-secret-key-here
    ALLOWED_HOSTS=yourdomain.com,www.yourdomain.com
  2. Reverse Proxy (nginx example)

    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    
        location /media/ {
            alias /path/to/your/media/;
        }
    
        location /static/ {
            alias /path/to/your/static/;
        }
    }
  3. Backup Strategy

    Backup database:

    docker-compose exec web uv run python manage.py dumpdata > backup.json

    Backup media files:

    tar -czf media_backup.tar.gz media/

License

MIT LICENSE

About

A webapp to track important information about your house

Resources

Stars

Watchers

Forks

Packages