Skip to content

SplinterHead/PolicyNest

Repository files navigation

PolicyNest

Stop digging through email attachments. Keep your family's policy documents safe, organized, and fully under your control.

Docker Vue FastAPI License

A modern, containerized application to track insurance policies (Car, Home, Life, Medical, etc.) across multiple households. Built for self-hosters who value privacy and data ownership.

Dashboard

✨ Features

  • 🏠 Multi-Household Support: Manage policies for different homes or family groups from a single instance.
  • 📄 Document Storage: Upload and view policy PDFs directly in the browser.
  • 📊 Dashboard Overview: Quick glance at active policies, premiums, and coverage dates.
  • 🌗 Dark/Light Mode: Fully responsive UI with persistent theme preferences.
  • ⚡ Modern Stack: Built with Vue 3 (Vuetify) and FastAPI.
  • 🐳 Dockerized: One command setup with Nginx handling SPA routing and static assets.

Screenshots

Policy deatils

Policy Detail

Creating household assets

Assets

Create new Car insurance policy

New Car Policy

More screenshots are available in the docs

🚀 Quick Start (Docker Compose)

This is the recommended way to run the application.

  1. Create the docker-compose.yml file

    services:
      policynest:
        image: splinterhead27/policynest:latest
        container_name: policynest
        ports:
        - 8000:8000
        volumes:
        - ./data:/data
        restart: unless-stopped
  2. Start the stack

docker-compose up
  1. Access the App

    • Frontend: http://localhost:8000
    • Backend API Docs: http://localhost:8000/docs
  2. First Run: You will be prompted to create your first "Household" (e.g., The Smith Residence) to initialize the database.


🗺️ Roadmap

  • Authentication: Add user login support.
  • Database Integration: Switch from SQLite to PostgreSQL for larger deployments.
  • Assets Layer: Attach policies to specific assets (e.g., "2015 Honda Civic").
  • Renewal Alerts: Email notifications when a policy is ending.

🛠️ Development Setup

If you want to contribute or run the app locally without Docker:

Backend (FastAPI + Poetry)

  1. Navigate to the backend:
    cd backend
  2. Install dependencies (ensure you have Poetry installed):
    poetry install
  3. Run the server:
    poetry run uvicorn app.main:app --reload

Frontend (Vue 3 + Vite)

  1. Navigate to the frontend:
    cd frontend
  2. Install dependencies:
    npm install
  3. Start the dev server:
    npm run dev

🏗️ Architecture

The project follows a standard 3-tier architecture containerized via Docker Compose.

  • Frontend: Vue 3, Vuetify, Vue Router (Served via Nginx in production).
  • Backend: FastAPI (Python 3.9).
  • Database: SQLite (Default, strictly local) with SQLAlchemy ORM.
  • Storage: Local filesystem (/uploads volume) for PDF documents.

Directory Structure

policynest/
├── backend/
│   ├── app/           # FastAPI application code
│   ├── tests/         # Pytest unit tests
│   ├── pyproject.toml # Poetry dependency management
│   └── Dockerfile
├── frontend/
│   ├── src/
│   │   ├── components/# Reusable UI components
│   │   ├── views/     # Page views (Policies, Settings)
│   │   └── router/    # Vue Router configuration
│   ├── nginx.conf     # SPA routing configuration
│   └── Dockerfile
└── docker-compose.yml

🤝 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.


📄 License

MIT

About

A self-hosted insurance policy management tool

Resources

Stars

Watchers

Forks

Packages

No packages published