A comprehensive task management and automated reporting platform built with modern Python technologies.
- Features
- Architecture
- Technology Stack
- Installation
- Configuration
- Usage
- Development
- Testing
- Deployment
- Contributing
- License
- Interactive Kanban Board with drag-and-drop functionality and smart color coding
- Enhanced Task Cards with gradient color schemes based on status, priority, and due date urgency
- Task Notes System with progress tracking, issue documentation, and resolution notes
- Task Analytics with comprehensive analysis and productivity insights
- Archive System for historical task management with revive functionality
- Real-time Updates with live dashboard metrics and notifications
- Multi-Tab Dashboard with Kanban Board, Analytics, System Monitor, Task Analysis, and Archive views
- Comprehensive Task Analysis with detailed tabular reports and CSV export functionality
- Interactive Visualizations using Plotly for charts and graphs
- System Monitoring with CPU, memory, disk usage tracking and health scores
- Productivity Insights with AI-powered recommendations and trend analysis
- Task Completion Trends with 30-day analysis and creation vs completion patterns
- Advanced Job Scheduler using APScheduler with flexible scheduling options
- Automated Report Generation with customizable templates and delivery
- Email Integration with SMTP configuration and template-based delivery
- Job Monitoring Dashboard with real-time status and execution tracking
- Background Task Processing with persistent job management
- Rich Template Designer with HTML editor and live preview
- Dynamic Variable System for personalized content generation
- Template Categories with organized library and reusable components
- Email Template Integration with SMTP delivery system
- Template Versioning and management capabilities
- Secure Authentication System with bcrypt password hashing
- Session Management with persistent and secure user sessions
- Route Protection with granular access control
- Backend Session Manager with automatic cleanup and restoration
- Security Middleware with comprehensive protection layers
- Enhanced Color System with soft teal gradients and status-based styling
- Responsive Design with modern CSS and smooth animations
- Interactive Components with modals, loaders, and notifications
- Custom Styling with enhanced visual hierarchy and accessibility
- Mobile-Friendly interface with adaptive layouts
AutoReportSystem follows a modern layered architecture with clear separation of concerns:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Presentation Layer โ
โ Streamlit UI + Custom Components + Modals โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Application Layer โ
โ Interfaces โข Services โข Business Logic โข Jobs โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Security Layer โ
โ Authentication โข Authorization โข Session Management โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Integration Layer โ
โ Email โข Git โข SMTP โข External APIs โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Data Layer โ
โ PostgreSQL โข SQLAlchemy โข Alembic Migrations โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
AutoReportSystem/
โโโ app/ # Main application package
โ โโโ config/ # Configuration management
โ โโโ core/ # Core business logic
โ โ โโโ interface/ # Service interfaces (12 modules)
โ โ โโโ jobs/ # Background job system & scheduler
โ โ โโโ services/ # Business services
โ โ โโโ utils/ # Utility functions & helpers
โ โโโ database/ # Database models, connections & migrations
โ โโโ integrations/ # External service integrations
โ โ โโโ email/ # Email templates & SMTP integration
โ โ โโโ git/ # Git integration services
โ โโโ security/ # Authentication & authorization
โ โ โโโ auth/ # Authentication modules
โ โโโ ui/ # User interface components
โ โโโ components/ # Reusable UI components (5 modules)
โโโ alembic/ # Database migrations
โโโ docs/ # Documentation
โโโ infra/ # Infrastructure & deployment
โ โโโ Dockerfile # Production Docker image
โ โโโ Dockerfile.prod # Optimized production build
โ โโโ nginx.conf # Nginx configuration
โโโ logs/ # Application logs
โโโ tests/ # Test suite
โโโ main.py # Application entry point
โโโ pyproject.toml # Project configuration with uv
- Python 3.12+ - Modern Python with latest features
- Streamlit 1.47+ - Rapid web app development with enhanced UI
- FastAPI 0.116+ - High-performance async web framework
- SQLAlchemy 2.0+ - Modern Python SQL toolkit and ORM
- Alembic - Database migration tool
- APScheduler 3.11+ - Advanced Python Scheduler
- PostgreSQL 13+ - Advanced relational database
- AsyncPG 0.30+ - High-performance async driver
- Plotly 5.0+ - Interactive data visualization
- Custom CSS - Enhanced modern UI/UX with gradients and animations
- Responsive Design - Mobile-friendly adaptive layouts
- bcrypt 3.2 - Password hashing
- Cryptography 45.0+ - Encryption and security
- Custom Session Management - Secure user sessions with backend storage
- Route Protection - Comprehensive access control system
- uv - Fast Python package manager
- pytest 8.4+ - Testing framework with async support
- python-dotenv - Environment management
- Comprehensive Logging - Application monitoring and debugging
- Docker - Containerization with multi-stage builds
- Nginx - Reverse proxy and load balancing
- Production-ready - Optimized Docker images and configurations
- Python 3.12 or higher
- PostgreSQL 13 or higher
- Git
- uv (recommended) or pip
-
Clone the repository
git clone https://github.com/yourusername/AutoReportSystem.git cd AutoReportSystem
-
Create virtual environment and install dependencies
# Using uv (recommended) uv sync # OR using pip python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -e .
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration
-
Initialize database
# Run migrations alembic upgrade head
-
Run the application
streamlit run main.py
-
Access the application Open your browser and navigate to
http://localhost:8501
-
Build and run with Docker
# Development docker build -f infra/Dockerfile -t autoreportsystem:dev . docker run -p 8501:8501 autoreportsystem:dev # Production docker build -f infra/Dockerfile.prod -t autoreportsystem:prod . docker run -p 8501:8501 autoreportsystem:prod
Create a .env
file in the root directory:
# Database Configuration
DB_URL=postgresql+asyncpg://username:password@localhost:5432/autoreportsystem
ALEMBIC_URL=postgresql://username:password@localhost:5432/autoreportsystem
# SMTP Configuration (encrypted)
SMTP_ENV_KEY=your_smtp_encryption_key
# Application Settings
DEBUG=True
LOG_LEVEL=INFO
# Security Settings
SECRET_KEY=your_secret_key_here
SESSION_TIMEOUT=3600
# System Monitoring
ENABLE_METRICS=True
METRICS_RETENTION_HOURS=168
-
Create PostgreSQL database
CREATE DATABASE autoreportsystem; CREATE USER ars_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE autoreportsystem TO ars_user;
-
Run migrations
alembic upgrade head
Configure email settings through the application:
- Navigate to Settings โ SMTP Configuration
- Enter your SMTP server details (encrypted storage)
- Test the connection
- Save configuration
-
Create an Account
- Navigate to the signup page
- Fill in your details and create account
- Login with your credentials
-
Dashboard Overview
- Kanban Board: Visual task management with color-coded cards
- Productivity Analytics: Charts, metrics, and insights
- System Monitor: Real-time system health and performance
- Task Analysis: Comprehensive task analysis with export
- Archive: Manage archived tasks and historical data
-
Task Management
- Create tasks with priorities, due dates, and categories
- Use the enhanced Kanban board for visual management
- Add progress notes, issue documentation, and resolutions
- Track analytics and productivity insights
-
Job Automation
- Set up scheduled reports and automation
- Configure email delivery with custom templates
- Monitor job execution and status
-
Template Design
- Create custom email templates with HTML editor
- Use dynamic variables for personalization
- Preview templates before saving
# Tasks support multiple statuses and categories
task_statuses = ["todo", "inprogress", "pending", "completed"]
task_priorities = ["low", "medium", "high", "urgent"]
task_categories = ["in progress", "accomplishments"]
# Enhanced color coding based on:
# - Status (todo=blue, inprogress=purple, pending=orange, completed=green)
# - Due date urgency (overdue=red, urgent=orange, safe=green, none=teal)
# - Priority levels with visual indicators
- Go to Jobs Dashboard
- Create new scheduled job
- Configure schedule (cron expressions supported)
- Select email template and recipients
- Activate job for automatic execution
- Navigate to Task Analysis tab
- Filter by scope (All Tasks, Current Month, Archived)
- Filter by status and priority
- Export detailed analysis to CSV
- View comprehensive metrics and insights
-
Install development dependencies
uv sync --dev
-
Run in development mode
streamlit run main.py --server.runOnSave true
- Formatting: Black (configured in pyproject.toml)
- Linting: Flake8, pylint
- Type Checking: mypy
- Import Sorting: isort
# Format code
black .
# Lint code
flake8 app/
# Type check
mypy app/
# Sort imports
isort .
- Hot Reload: Automatic reloading during development
- Comprehensive Logging: Detailed application logs in
logs/
directory - Session Management: Persistent sessions with automatic cleanup
- Error Handling: Graceful error handling with user feedback
- Performance Monitoring: Built-in system metrics and monitoring
# Run all tests
pytest
# Run with coverage
pytest --cov=app
# Run specific test categories
pytest tests/unit/
pytest tests/integration/
pytest tests/e2e/
# Run async tests
pytest -v tests/ --asyncio-mode=auto
- Unit Tests: Test individual components in isolation
- Integration Tests: Test component interactions and database operations
- End-to-End Tests: Test complete user workflows
- Async Tests: Test asynchronous operations and database interactions
-
Build production image
docker build -f infra/Dockerfile.prod -t autoreportsystem:prod .
-
Run with environment variables
docker run -d \ --name autoreportsystem \ -p 8501:8501 \ -e DB_URL=postgresql://... \ -e SMTP_ENV_KEY=... \ autoreportsystem:prod
AWS ECS/Fargate
- Use the provided Dockerfile.prod
- Configure RDS for PostgreSQL
- Set up Application Load Balancer
- Configure environment variables in ECS
Heroku
heroku create your-app-name
heroku addons:create heroku-postgresql:hobby-dev
heroku config:set SMTP_ENV_KEY=your_key
git push heroku main
Azure Container Instances
- Build and push to Azure Container Registry
- Deploy using Azure Container Instances
- Configure Azure Database for PostgreSQL
DEBUG=True
LOG_LEVEL=DEBUG
DB_URL=postgresql://localhost:5432/autoreportsystem_dev
DEBUG=False
LOG_LEVEL=WARNING
DB_URL=postgresql://prod-db:5432/autoreportsystem
ENABLE_METRICS=True
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
pytest
- Commit your changes
git commit -m "Add amazing feature"
- Push to your fork
git push origin feature/amazing-feature
- Create a Pull Request
- All changes require review from maintainers
- Automated tests must pass
- Code coverage should not decrease
- Documentation must be updated for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the docs/ directory
- Issues: Report bugs on GitHub Issues
- Discussions: Join our GitHub Discussions
Database Connection Error
# Check PostgreSQL is running
pg_isready -h localhost -p 5432
# Verify connection string
echo $DB_URL
SMTP Configuration Issues
- Verify SMTP server settings in the application
- Check firewall and network connectivity
- Ensure authentication credentials are correct
- Test connection through the SMTP Configuration page
Performance Issues
- Monitor system resources through the System Monitor tab
- Check database query performance
- Review application logs in the
logs/
directory
Enable debug mode for detailed logging:
DEBUG=True
LOG_LEVEL=DEBUG
- โ Complete task management system with Kanban board
- โ Advanced analytics and reporting
- โ Job scheduling and automation
- โ Template designer with email integration
- โ System monitoring and metrics
- โ Secure authentication and session management
- RESTful API endpoints
- Mobile-responsive enhancements
- Advanced workflow automation
- Team collaboration features
- Real-time notifications
- Integration marketplace
- Advanced reporting capabilities
Built with โค๏ธ using modern Python technologies
โญ Star us on GitHub โข ๐ Report Bug โข ๐ก Request Feature