EduTime is a Campus Venue Management Platform for reducing the hassle for Classreps in finding available class venues for lectures.
# EduTime - Campus Venue Management System
A comprehensive AWS cloud solution for managing campus lecture venues, timetables, and notifications for class representatives and lecturers.
## Architecture Overview
EduTime is built on AWS using a serverless architecture that provides scalability, reliability, and cost-effectiveness. The system follows the campus venue management flow:
1. **Check app** - Users access via CloudFront-distributed web/mobile clients
2. **View timetable & venues** - API Gateway routes to Lambda functions reading from RDS PostgreSQL
3. **Check for conflicts/changes** - Venue management Lambda handles conflict detection and updates
4. **Handle conflicts & update timetable** - Database updates managed through Lambda functions
5. **Send notifications** - SNS publishes venue change notifications to subscribed users
6. **Confirm attendance** - Attendance confirmations recorded and notifications sent
7. **Done** - Latest timetable state always available in RDS
## Components
### AWS Infrastructure
- **CloudFront**: Global CDN for fast content delivery
- **S3**: Static asset storage (web app files, images)
- **API Gateway**: REST API endpoints for all operations
- **Lambda Functions**: Serverless compute for business logic
- Timetable Handler: Read operations for timetables and venues
- Venue Management: Create, update, delete operations with conflict checking
- Notification Handler: SNS publishing and attendance tracking
- **RDS PostgreSQL**: Primary database for all application data
- **SNS**: Push notification service for venue changes and alerts
- **VPC**: Network isolation with public and private subnets
- **IAM**: Security roles and policies for least-privilege access
### Database Schema
The PostgreSQL database includes:
- **venues**: Campus venue information (capacity, location, facilities)
- **timetables**: Class schedules with venue assignments
- **attendance_confirmations**: User attendance status tracking
- **notifications**: Notifi …