BBSchedule is a comprehensive, enterprise-grade construction scheduling application built specifically for Balfour Beatty US and general contracting companies. The platform provides professional project management capabilities with multiple scheduling methodologies, financial tracking, equipment management, and AI-powered analytics.
- Multi-tenant Architecture: Company-specific data isolation with role-based access control
- Project Templates: Standardized project setups for consistent scheduling
- Task Management: Hierarchical task structures with dependencies and constraints
- Resource Allocation: Comprehensive resource planning and assignment tracking
- Gantt Charts: Traditional timeline visualization with drag-and-drop functionality
- Linear Scheduling: Time-distance diagrams for location-based projects
- Pull Planning: Lean construction methodology with collaborative planning boards
- Cost Tracking: Comprehensive transaction management with categorization
- Invoice Management: Professional invoice generation and payment tracking
- Budget Control: Project budget tracking with variance analysis
- Payment Processing: Stripe integration for secure payment handling
- Financial Reporting: Real-time financial dashboards and analytics
- Asset Tracking: Complete equipment lifecycle management
- Maintenance Scheduling: Preventive maintenance planning and tracking
- Utilization Analytics: Equipment usage optimization and reporting
- Assignment Management: Equipment allocation across projects
- Predictive Analytics: Schedule optimization using Azure AI services
- Risk Assessment: AI-powered project outcome prediction
- Microsoft Fabric: Data warehousing and advanced analytics
- Azure AI Foundry: Intelligent insights and recommendations
- Executive Dashboards: Real-time business intelligence
- Custom Reports: Tailored reporting for construction metrics
- Data Visualization: Interactive charts and analytics
- Workspace Integration: Seamless Power BI workspace connectivity
- Flask: Python web framework with modular blueprint architecture
- SQLAlchemy: Object-relational mapping with PostgreSQL database
- Celery: Asynchronous task processing with Redis message broker
- Flask-Login: User authentication and session management
- Azure SDK: Cloud services integration
- Bootstrap 5: Responsive design framework
- D3.js: Interactive data visualizations and Gantt charts
- Chart.js: Dashboard analytics and reporting charts
- JavaScript: Enhanced user interface interactions
- PostgreSQL: Primary database with multi-tenant design
- Redis: Caching layer and Celery message broker
- Azure Blob Storage: File storage and document management
- Stripe: Payment processing and subscription management
- Azure AI Services: Machine learning and predictive analytics
- Microsoft Graph API: Calendar and user data integration
- Power BI: Business intelligence and reporting
- Python 3.11+
- PostgreSQL 13+
- Redis 6+ (for caching and background tasks)
- Azure Account (optional - for AI services)
- Stripe Account (optional - for payment processing)
git clone <repository-url>
cd bbschedule-platform# Install dependencies (using uv - recommended)
uv pip sync
# Alternative: Install from deployment requirements
pip install -r deployment/requirements.txt# Set up PostgreSQL database
createdb bbschedule_dev
# Configure environment variables
cp .env.example .env
# Edit .env with your database credentialsCreate a .env file with the following variables:
# Database
DATABASE_URL=postgresql://username:password@localhost/bbschedule_dev
# Flask Configuration
SESSION_SECRET=your-secret-key-here
FLASK_ENV=development
# Azure Services
AZURE_CLIENT_ID=your-azure-client-id
AZURE_CLIENT_SECRET=your-azure-client-secret
AZURE_TENANT_ID=your-azure-tenant-id
# Stripe Payment Processing
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
# Power BI Integration
POWERBI_CLIENT_ID=your-powerbi-client-id
POWERBI_CLIENT_SECRET=your-powerbi-client-secret
POWERBI_TENANT_ID=your-powerbi-tenant-id
# Redis
REDIS_URL=redis://localhost:6379/0# Initialize database tables
export FLASK_APP=main.py
flask shell -c "from app import db; db.create_all()"
# Note: Database migrations are planned for future releases# Start Redis server
redis-server
# Start Celery worker (in separate terminal)
celery -A tasks.celery_config.celery worker --loglevel=info
# Start Flask application (development)
export FLASK_APP=main.py
flask run --host=0.0.0.0 --port=5000
# Or using Gunicorn (production)
gunicorn --bind 0.0.0.0:5000 --reload main:app- Navigate to
http://localhost:5000 - Register a new company account or login with existing credentials
- Complete the company setup process
- Start creating projects and managing schedules
- Admin: Full system access and user management
- Project Manager: Project creation and team management
- Scheduler: Schedule creation and task management
- Field Supervisor: Field updates and progress tracking
- Viewer: Read-only access to projects and reports
- Go to Projects β New Project
- Fill in project details and budget information
- Select a scheduling methodology (Gantt, Linear, or Pull Planning)
- Add tasks, resources, and dependencies
- Assign team members and equipment
- Start tracking progress and costs
- Project creation and configuration
- Task hierarchy and dependency management
- Resource allocation and scheduling
- Progress tracking and reporting
- Transaction recording and categorization
- Invoice generation and management
- Budget tracking and variance analysis
- Financial reporting and analytics
- Payment processing integration in progress
- Equipment registration and tracking
- Maintenance scheduling and history
- Utilization analytics and reporting
- Project assignment management
- Multiple scheduling methodologies
- Interactive timeline management
- Resource conflict resolution
- Schedule optimization tools
- Executive dashboards
- Project status reports
- Financial analytics
- Equipment utilization reports
- Multi-tenant Data Isolation: Company-scoped data access
- Role-based Access Control: Granular permission system
- Session Management: Secure user authentication
- CSRF Protection: Form security and validation
- HTTPS Enforcement: Secure data transmission
- Audit Logging: Comprehensive activity tracking
βββ app.py # Main application factory
βββ models.py # Database models and relationships
βββ routes.py # Core application routes
βββ extensions.py # Flask extensions configuration
βββ blueprints/ # Feature-specific blueprints
β βββ projects.py
β βββ scheduling.py
β βββ financial_management.py
β βββ equipment_management.py
βββ templates/ # Jinja2 templates
βββ static/ # CSS, JavaScript, images
βββ azure_ai/ # Azure AI integration
βββ analytics/ # Advanced analytics
βββ security/ # Security utilities
βββ deployment/ # Docker and deployment configs
- Multi-tenant: Company-scoped data isolation
- Relational: Proper foreign key relationships
- Indexed: Optimized for query performance
- Auditable: Comprehensive change tracking
# Build Docker image
docker build -t bbschedule-platform .
# Run with Docker Compose
docker-compose up -d# Deploy to Azure App Service
az webapp up --name bbschedule-platform --resource-group rg-bbschedule- Configure environment variables for production
- Set up SSL certificates and domain
- Configure database backups and monitoring
- Set up log aggregation and alerting
- Database Indexing: Optimized query performance
- Caching Layer: Redis-based caching for frequent queries
- Async Processing: Background tasks with Celery
- CDN Integration: Static asset optimization
- Query Optimization: Efficient database queries
- Application performance monitoring
- Database query analysis
- User activity tracking
- System resource monitoring
- Follow PEP 8 style guidelines
- Write comprehensive tests for new features
- Update documentation for API changes
- Use meaningful commit messages
- Create pull requests for code review
# Testing framework setup is planned for future releases
# Currently: Manual testing via application interface
# Unit tests will be added in upcoming versionsThis project is proprietary software developed for Balfour Beatty US. All rights reserved.
For technical support and questions:
- Internal Documentation: [Company Wiki]
- Technical Issues: [Internal Support Portal]
- Feature Requests: [Product Management Team]
- Complete financial management system
- Advanced equipment tracking
- Azure AI predictive analytics integration
- Enhanced security features
- Stripe payment integration in progress
- Power BI integration
- Mobile optimization
- Real-time collaboration
- Executive dashboards
- Initial platform release
- Basic project management
- Gantt chart scheduling
- User authentication
BBSchedule Platform - Empowering construction project success through intelligent scheduling and comprehensive project management.