Monzim
Go
Remix
PostgreSQL
Redis
AWS S3

UIU EduQueue: Personalized Exam Routine Management

Automated exam routine management platform for UIU students. Subscribe once, receive personalized PDF exam schedules with room assignments directly to your inbox every trimester.

Azraf Al Monzim
UIU EduQueue: Personalized Exam Routine Management cover

Project Overview

UIU EduQueue serves thousands of students by automating exam schedule delivery. Built with Go, Remix, Redis, and PostgreSQL, it features async task processing, multi-provider email failover, secure PIN-based access, and beautiful PDF generation. Managing it for 1+ years with zero missed deliveries.

What if you never had to manually check for your exam schedule again? UIU EduQueue automates the entire processβ€”subscribe once, and receive your personalized exam routine directly in your inbox every trimester.


🎯 The Problem

Every trimester, thousands of UIU students face the same frustrating ritual:

  • Hunting through university portals for exam schedules
  • Cross-referencing room assignments with course codes
  • Manually creating their own personalized routine
  • Missing updates when schedules change

I built UIU EduQueue to solve this once and for all.


✨ How It Works

  1. Subscribe β€” Enter your Student ID and email once
  2. Automatic Fetch β€” System pulls your registered courses
  3. PDF Generation β€” Beautiful, personalized exam schedule with room assignments
  4. Email Delivery β€” Routine lands in your inbox before exam week
  5. Secure Access β€” PIN-based access for viewing anytime

That's it. No more hunting. No more manual work.


πŸš€ Key Features

πŸ“§ Automated Email Delivery

Subscribe once and receive your exam routine automatically at the start of every exam period. No action required after initial signup.

πŸ“„ Beautiful PDF Generation

Professionally designed PDF schedules featuring:

  • Your complete exam timetable
  • Room assignments for each exam
  • Course codes and names
  • Date, time, and duration details
  • Student information header

πŸ” Secure Access System

  • PIN-based authentication for viewing routines
  • Time-limited access links
  • View count restrictions for security
  • No public exposure of student data

πŸ“Š Real-Time Monitoring

  • Discord webhook notifications for system health
  • Analytics dashboard for usage statistics
  • Automatic error reporting and recovery

πŸ› οΈ The Tech Behind It

Building a system that serves thousands of students reliably required serious engineering:

Backend Architecture

  • Go 1.24 β€” High-performance API server
  • GORM β€” Elegant ORM for PostgreSQL
  • Asynq β€” Redis-backed async task queue for scalability
  • ChromeDP & Maroto β€” PDF generation pipeline

Frontend

  • Remix β€” React-based meta-framework
  • TypeScript β€” Type-safe development
  • Tailwind CSS β€” Modern, responsive UI
  • Framer Motion β€” Smooth animations
  • TanStack Query β€” Efficient data fetching

Infrastructure

  • PostgreSQL β€” Primary database for subscriptions and requests
  • Redis β€” Task queue and caching layer
  • AWS S3 β€” Secure PDF storage with presigned URLs
  • Cloudflare Pages β€” Global frontend delivery
  • Docker β€” Containerized deployments

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Cloudflare    │────▢│   Web (Remix)   │────▢│    API Server   β”‚
β”‚     Pages       β”‚     β”‚   Frontend      β”‚     β”‚     (Go)        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                         β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚                                β”‚                                β”‚
                        β–Ό                                β–Ό                                β–Ό
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚  PostgreSQL   β”‚              β”‚      Redis      β”‚              β”‚    AWS S3       β”‚
                β”‚   Database    β”‚              β”‚   Task Queue    β”‚              β”‚   PDF Storage   β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
                                                        β–Ό
                                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                               β”‚  Worker Service β”‚
                                               β”‚  (PDF + Email)  β”‚
                                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                        β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β–Ό                               β–Ό                               β–Ό
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   AWS SES     β”‚              β”‚     Azure CS    β”‚              β”‚   Custom API    β”‚
                β”‚   (Email)     β”‚              β”‚    (Email)      β”‚              β”‚   (Email)       β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The Workflow

  1. Student Request β€” User submits Student ID via web interface
  2. Validation β€” Server validates request with Cloudflare Turnstile & rate limits
  3. Task Queue β€” Request is queued in Redis via Asynq
  4. Worker Processing:
    • Fetch exam data for the student
    • Generate personalized PDF with exam schedule
    • Upload PDF to S3 with presigned URL
    • Send email with access link & PIN
  5. Access β€” Student uses PIN to view/download their routine

πŸ“ˆ Impact & Scale

After 1+ year of operation:

  • Thousands of students served each trimester
  • Automated delivery eliminating manual work
  • High reliability with multi-provider email failover
  • Zero missed exams due to schedule confusion

The system handles peak loads during exam registration periods when thousands of requests come in simultaneouslyβ€”the async queue system ensures every request is processed reliably.


πŸ”§ Engineering Challenges Solved

Multi-Provider Email Failover

Email deliverability is critical. The system supports multiple email providers (AWS SES, Azure Communication Services, custom API) with automatic failover. If one provider hits rate limits, requests seamlessly route to the next.

PDF Generation at Scale

Generating thousands of PDFs requires efficiency. The worker service uses:

  • ChromeDP for complex layouts requiring browser rendering
  • Maroto for simpler, faster PDF generation
  • S3 presigned URLs for secure, temporary access without database lookups

Rate Limiting & Security

  • Cloudflare Turnstile prevents bot abuse
  • Smart rate limiting with cooldown periods
  • PIN-based access with view count limits
  • Time-limited links that auto-expire

πŸŽ“ Bonus: DSC Integration

UIU EduQueue also powers the UIU Data Science Club operations:

  • Member Registration β€” Online registration with payment tracking
  • Event Management β€” Create and manage club events
  • Member Verification β€” Portal for checking membership status
  • Automated Emails β€” Welcome emails and event notifications

πŸ’­ Why I Built This

As a UIU student myself, I experienced the frustration firsthand. Every trimester, the same scramble to find exam schedules, the same confusion about room assignments.

I thought: What if this just showed up in your inbox, perfectly formatted, right when you needed it?

So I built it. And now, thousands of UIU students never have to worry about finding their exam routine again.


πŸ”— Try It Out

Visit eduqueue.monzim.com to subscribe and receive your next exam routine automatically.


Made with ❀️ for UIU Students

Technologies:
Go
Remix
PostgreSQL
Redis
AWS S3
AWS SES
Docker
TypeScript
Tailwind CSS
Asynq
PDF Generation
Email Automation
Cloudflare