Jan Remmer Siebels 2bb0bfc432 Add forced migration for semester deadline updates
This migration will automatically run during deployment and update
all existing quarterly confirmation deadlines to the new semester-based system:
- Q1: March 15 (Spring semester primary submission)
- Q2: June 15 (auto-approved when Q1 approved)
- Q3: September 15 (Fall semester primary submission)
- Q4: December 15 (auto-approved when Q3 approved)

No manual intervention required on VPS - GitHub Action will deploy and migrate automatically.
2025-09-30 21:46:09 +02:00

Stiftung Application

A## 🏃‍♂️ Quick Start

Development Environment

For local development, use the development Docker Compose configuration:

# Start development environment (uses hardcoded dev settings)
docker-compose -f compose.dev.yml up -d

# Run migrations
docker-compose -f compose.dev.yml exec web python manage.py migrate

# Create superuser
docker-compose -f compose.dev.yml exec web python manage.py createsuperuser

# Access applications
# - Django: http://localhost:8081
# - Paperless: http://localhost:8082
# - Database: localhost:5433

Production Deployment

Production deployment uses the main compose.yml and is handled automatically via GitHub Actions. The production environment reads configuration from the server's .env file (not included in the repository for security).

🏗️ Architecturengo-based foundation management system with modern features and automated deployment.

🌟 Features

  • Destinatär Management: Track beneficiaries and their support
  • Förderung System: Manage grants and funding with enhanced search
  • HelpBox System: Editable info boxes with Markdown support on all creation pages
  • PDF Exports: Generate comprehensive reports
  • Land Management: Track properties and lease agreements
  • Backup & Restore: Automated backup system with UI
  • User Management: Role-based access control
  • Audit Trail: Track all changes

🆕 New Features (v2.0)

  • HelpBox System: Interactive help on all "New" entity creation pages
  • Central HelpBox Management: Admin interface at /help-box/admin/
  • Enhanced Förderung Search: Improved search functionality
  • Template Cleanup: Automated orphaned recurring payment handling
  • Bootstrap Layout Fixes: Resolved grid alignment issues

🚀 Quick Start

Development Setup

# Clone repository
git clone https://github.com/remmerinio/stiftung-management-system.git
cd stiftung-management-system

# Start development environment (isolated from production)
docker-compose -f compose.dev.yml up -d

# Create superuser
docker-compose -f compose.dev.yml exec web python manage.py createsuperuser

# Access application
open http://localhost:8081  # Django app
open http://localhost:8080  # Paperless-ngx (admin/admin123)

Production Deployment

Production uses automated deployment via GitHub Actions. The production environment has its own .env file with secure credentials that is not stored in Git.

For Production:

  • Environment variables are configured on the server
  • HTTPS is enabled with Let's Encrypt certificates
  • Database users are manually configured for security
  • Automated deployments preserve manual configurations

See deployment documentation for complete setup instructions.

📁 Project Structure

stiftung-starter/
├── app/                          # Django application
│   ├── core/                     # Django project settings
│   ├── stiftung/                 # Main app
│   │   ├── models.py             # Data models (including HelpBox)
│   │   ├── views.py              # Views and API endpoints
│   │   ├── admin.py              # Django admin customization
│   │   ├── templatetags/         # Custom template tags (help_tags)
│   │   └── utils/                # Utility functions
│   ├── templates/                # HTML templates
│   │   └── stiftung/
│   │       ├── help_box.html     # HelpBox component
│   │       └── *_form.html       # Creation forms with help boxes
│   └── requirements.txt          # Python dependencies
├── deploy-production/            # Production deployment files
├── deploy-synology/              # Synology NAS deployment (legacy)
└── docs/                         # Documentation

🛠️ Development Workflow

1. Feature Development

# Create feature branch
git checkout -b feature/your-feature-name

# Make your changes
# ... edit files ...

# Test locally
docker-compose up -d

# Commit changes
git add .
git commit -m "feat: add your feature description"

# Push to GitHub
git push origin feature/your-feature-name
Description
Stiftung Management System - migrated from GitHub
Readme 43 MiB
Languages
HTML 53.4%
Python 44.6%
Shell 1.6%
JavaScript 0.4%