Have companies delete your personal data
CSS 48.8%
Python 42.0%
HTML 5.7%
JavaScript 0.3%
Dockerfile 0.2%
Shell 0.1%
Other 2.9%
133 3 0

Clone this repository

https://tangled.org/hello.j23n.com/deletemepleaseeu
git@tangled.org:hello.j23n.com/deletemepleaseeu

For self-hosted knots, clone URLs may differ based on your setup.

README.md

DeleteMePlease#

A Django web application that automates GDPR data deletion requests. Users submit requests through a web interface, sign a Letter of Authority (LOA), and the system manages the entire email correspondence lifecycle with companies.

Quick Start#

Prerequisites#

  • Python 3.13+
  • PostgreSQL 17 (production) or SQLite (development)
  • uv package manager

Development Setup#

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies
uv sync

# Run database migrations
uv run python app/manage.py migrate

# Populate with test data
uv run python app/manage.py simulate seed

# Create an admin user (admin/admin)
uv run python app/manage.py createsuperuser

# Start development server
uv run python app/manage.py runserver

Visit http://127.0.0.1:8000/admin/ and login with:

  • Username: admin
  • Password: admin

Note: These are test credentials for local development only.

Key Commands#

# Development workflow - Quick start with realistic test data
uv run python app/manage.py simulate seed       # Create realistic test data (recommended)
uv run python app/manage.py simulate seed --clear # Clear existing data and reseed

# Testing
uv run python app/manage.py test

# Code quality
uv run ruff check
uv run ruff format

Test Data with simulate seed#

The simulate seed command creates comprehensive, realistic test data for development and manual testing:

What it creates:

  • 5 companies with varied verification status and privacy contacts
  • 2 test users (Alice and Bob) with 2 verified emails each
  • 4 deletion requests at different stages of the lifecycle:
    • SIGNING_READY: Ready for user to sign Letter of Authority
    • IN_PROGRESS (1 message): Initial request sent, awaiting company response
    • IN_PROGRESS (3 messages): Multi-turn conversation with company requesting verification
    • SUCCESS: Completed request with full conversation history and classification
  • Realistic email conversations with timestamps spread over days/weeks
  • Complete conversation threading with incoming/outgoing messages
  • Email templates for common scenarios

Test user credentials:

  • Alice: alice@example.com / testpass123
  • Bob: bob@example.com / testpass123

Documentation#

  • Architecture - Technical architecture, data models, and development guide
  • Roadmap - Project status, completed features, and planned enhancements
  • Implementation Plans - Detailed plans for pending features

Architecture Overview#

Django Apps#

  • config: Main project config, landing pages, settings
  • badactors: Core GDPR deletion request functionality
  • profiles: User authentication and profile management

Key Models#

  • DeletionRequest: GDPR deletion request with status tracking
  • Company: Company information and privacy contacts
  • LetterOfAuthority: Generated PDF documents for signed requests
  • ConversationItem: Individual messages in email conversations
  • PendingEmail: Outbound emails awaiting review/approval

See ARCHITECTURE.md for complete technical details including email integration, deployment architecture, and data model relationships.

Admin Workflows#

Processing Deletion Requests#

  1. User creates request → Status: EMAIL_VERIFICATION_PENDING or SIGNING_READY
  2. User verifies email (if needed) → Status: SIGNING_READY
  3. User signs LOA → Status: SUBMITTABLE (auto-queues email)
  4. Admin reviews/sends pending email → Status: IN_PROGRESS
  5. Company replies → Admin classifies and responds
  6. Cycle continues until → Status: SUCCESS or FAILED

Admin Actions#

  • Pending Emails: Review drafts, bulk send approved emails
  • Email Classifications: Classify incoming emails, select response template
  • Conversations: View complete email timeline
  • Companies: Manage privacy contacts and verification

See ARCHITECTURE.md for detailed admin workflow documentation.

Resources#

  • Django Admin: /admin/
  • User Accounts: /account/
  • Deletion Requests: /deletionrequest/

For Contributors: See ARCHITECTURE.md for technical details and ROADMAP.md for current development status.