bitpoll-nix/memory-bank/projectbrief.md

50 lines
2.1 KiB
Markdown

# Project Brief: Bitpoll Nix Flake
## Project Overview
This project provides a comprehensive Nix flake for packaging and deploying Bitpoll, a web application for scheduling meetings and general polling. The flake enables easy installation, configuration, and deployment of Bitpoll on NixOS systems.
## Core Requirements
### Primary Goals
1. **Package Bitpoll for Nix**: Create a working Nix package for the Bitpoll Django application
2. **NixOS Service Module**: Provide a complete systemd service configuration for production deployment
3. **Cross-platform Support**: Ensure compatibility with Linux and macOS development environments
4. **Security Hardening**: Implement proper user isolation and security measures
5. **Data Persistence**: Store all application data in `/var/lib/bitpoll` as specified
### Technical Requirements
- Use NixOS 25.05 with pinned dependencies
- Build from Bitpoll master branch (commit 4a3e6a5)
- Support both development and production environments
- Include all necessary Python dependencies
- Provide management command access
- Enable proper Django configuration
### Functional Requirements
- Web server capability for hosting Bitpoll
- Database management (SQLite by default, PostgreSQL support)
- Static file serving
- User authentication and management
- Meeting scheduling and polling functionality
- Secure configuration management
## Success Criteria
- ✅ Nix flake builds successfully
- ✅ Package runs without dependency errors
- ✅ NixOS service deploys and starts correctly
- ✅ All Django management commands work
- ✅ Web interface accessible and functional
- ✅ Data persists in designated directory
- ✅ Security hardening implemented
## Constraints
- Must use Nix/NixOS ecosystem exclusively
- Follow Nix packaging best practices
- Maintain compatibility with upstream Bitpoll
- Ensure reproducible builds
- Support standard Django deployment patterns
## Stakeholders
- **Primary**: NixOS users wanting to deploy Bitpoll
- **Secondary**: Developers contributing to Bitpoll packaging
- **Tertiary**: System administrators managing Bitpoll deployments