A real-time performance evaluation platform built with Flask and AWS, designed for live scoring events with multiple judges, admin oversight, and public viewing.
Link to demo: https://drive.google.com/file/d/1LRKD7Omxdnqi7ZC-6Ppx5pOCbW3Pn53o/
- Frontend: HTML/CSS, Tailwind CSS, JavaScript
- Backend: Python, Flask, Threading
- Database: AWS DynamoDB
- Deployment: AWS EC2
- Development Tools: Git, pip
- MVC (Model-View-Controller)
- Event-driven architecture
- Polling-based real-time updates
- boto3 (AWS SDK)
- Flask extensions:
- flask
- jsonify
- make_response
- render_template_string
DynamoDB Tables:
PerformersScores: Performance scoring dataTimerStatus: System timing and login managementjudge_credentials: Authentication informationperformance_status: Real-time event status tracking
| Role | Permissions |
|---|---|
| Judge | Score entry, View other judges' scores |
| Admin | Monitor event status, View all scores |
| Public | View live events, scores, final results |
- Synchronized login system
- Automated performance timing
- Score submission windows
- Live status updates
# Database connection setup
dynamodb = boto3.resource(
'dynamodb',
region_name='us-west-1',
aws_access_key_id='your_access_key',
aws_secret_access_key='your_secret_key'
)1. Performance Timer System
- 10-second performance windows
- 30-second judge scoring windows
- Automated state transitions
2. Status Management
def update_performance_status(performer_id, event_status):
performance_status.update_item(
Key={'performer_id': f'performer_{performer_id}'},
UpdateExpression="SET event_status = :status",
ExpressionAttributeValues={':status': event_status}
)3. Score Management
- Real-time score entry
- Score validation
- Total score calculation
-
System Initialization
- Database connections established
- Tables verified
- Global state initialized
-
Login Phase
- System monitors login count
- Requires exactly 3 users
- Role verification
-
Performance Cycle
- Performance timer (10 seconds)
- Score entry window (30 seconds)
- Status updates
- Score recording
-
Event Completion
- Final score calculation
- Status updates
- System reset capability
- Python 3.x
- AWS Account
- EC2 Instance
- Required Python packages
- Clone Repository
git clone https://github.com/sohan2000/online-scoring-system
cd online-scoring-system- Install Dependencies
pip install -r requirements.txt- Configure AWS
aws configure
# Enter your AWS credentials- Environment Variables
export AWS_REGION="us-west-1"
export FLASK_APP="app.py"
export FLASK_ENV="production"- Database Setup
- Create required DynamoDB tables
- Configure table schemas
- Set up IAM roles
-
Instance Setup
- Launch EC2 instance
- Configure security groups
- Install dependencies
-
Application Deployment
- Transfer application files
- Configure environment
- Start application server
- AWS IAM role configuration
- Secure credential management
- Session handling
- Access control implementation
The system implements comprehensive error handling for:
- Database operations
- Login synchronization
- Score submission
- Timer management
- AWS CloudWatch integration
- Error logging
- Performance metrics
- Real-time monitoring
For technical support or queries:
This README provides a comprehensive overview of the performance scoring system, detailing its architecture, features, implementation, and deployment process. The system is designed for real-time event management with multiple user roles and synchronized timing controls, leveraging AWS services for reliability and scalability.