Files
gh-christianlouis-dmarq/docs/todo.md
T
2025-04-20 18:43:42 +02:00

129 lines
4.0 KiB
Markdown

# DMARQ Implementation Todo List
This file tracks the specific implementation tasks for each milestone of the DMARQ project.
## Milestone 1: Minimal Viable Product (MVP)
### Infrastructure Setup
- [ ] Set up FastAPI project structure
- [ ] Configure Tailwind CSS
- [ ] Add ShadCN/UI components library
- [ ] Create Docker and Docker Compose files
- [ ] Set up CI/CD pipeline (optional for MVP)
### Core DMARC Parser
- [ ] Integrate parsedmarc library
- [ ] Create parsing service for DMARC XML reports
- [ ] Add support for ZIP/GZ compression extraction
- [ ] Implement validation for uploaded reports
### Data Models
- [ ] Create Domain model
- [ ] Create AggregateReport model
- [ ] Create ReportRecord model for individual sending sources
- [ ] Design in-memory storage for MVP phase
### API Endpoints
- [ ] Create domain registration endpoint
- [ ] Create report upload endpoint
- [ ] Create domain summary endpoints
- [ ] Create detailed report view endpoints
### Frontend
- [ ] Create base layout template
- [ ] Implement dashboard overview page
- [ ] Create domain list component
- [ ] Build report upload interface
- [ ] Implement domain detail view
- [ ] Create report detail view
- [ ] Add basic visualization components for report statistics
### Testing
- [ ] Create unit tests for parser
- [ ] Create API tests
- [ ] Collect sample DMARC reports for testing
- [ ] Manual UI testing
### Documentation
- [ ] Create user guide for MVP
- [ ] Document deployment instructions
- [ ] Add sample screenshots
## Milestone 2: IMAP Integration
### IMAP Client
- [ ] Create IMAP connection service
- [ ] Implement mailbox search functionality for DMARC reports
- [ ] Add attachment extraction capabilities
- [ ] Create email filtering logic (by sender, subject)
- [ ] Add processed email tracking
### Scheduler
- [ ] Implement background task system
- [ ] Create scheduler for periodic mailbox checking
- [ ] Add timestamp tracking for fetched reports
- [ ] Create logging for background processes
### Configuration
- [ ] Create configuration model for IMAP settings
- [ ] Build configuration UI
- [ ] Implement secure credential storage
- [ ] Add connection testing functionality
### Frontend Updates
- [ ] Add IMAP configuration page
- [ ] Create last sync indicator
- [ ] Implement manual sync trigger button
- [ ] Add status indicators for background processes
## Milestone 3: Database Integration
### Database Setup
- [ ] Set up SQLAlchemy ORM
- [ ] Create SQLite database (for initial version)
- [ ] Design database schema with migrations
- [ ] Implement data access layer
### Model Migration
- [ ] Convert in-memory models to database models
- [ ] Create Domain table
- [ ] Create AggregateReport table
- [ ] Create ReportRecord table for sender details
- [ ] Implement relationships between models
### Domain Management
- [ ] Create UI for adding/editing domains
- [ ] Implement domain validation
- [ ] Add domain deletion with data cleanup
- [ ] Create domain filtering/search for larger sets
### Query Optimization
- [ ] Add pagination for large report sets
- [ ] Implement efficient queries for dashboard stats
- [ ] Create data summarization for performance
- [ ] Add database indexes for common queries
## Milestone 4: Dashboard Enhancements
### Data Visualization
- [ ] Integrate Chart.js library
- [ ] Create time-series charts for DMARC compliance
- [ ] Add volume charts for email traffic
- [ ] Implement sender breakdown visualizations
- [ ] Create policy distribution charts
### Dashboard Widgets
- [ ] Create compliance rate summary widget
- [ ] Add enforcement rate widget
- [ ] Implement email volume trends widget
- [ ] Create top sender sources widget
- [ ] Add alert status summary (for later integration)
### Historical Data
- [ ] Implement date range filtering
- [ ] Create historical trend analysis
- [ ] Add data aggregation for different time periods
- [ ] Implement data comparison features
## Future Milestones
Additional tasks for Milestones 5-11 will be added as we approach those phases of development.