Skip to content

An interactive learning platform that allows users to create and play real-time quizzes. Hosts can easily design engaging quizzes, while participants join from any device and compete for the top spot on the leaderboard.

License

Notifications You must be signed in to change notification settings

IU-Capstone-Project-2025/Vanguard

Repository files navigation

TRY-IT

Interactive Learning Through Real-Time Gamification

last-commit repo-top-language repo-language-count

Built with:

Redis RabbitMQ PostgreSQL Grafana Prometheus Loki Alertmanager Go React Docker Python FastAPI SQLAlchemy Cypress Pytest


Table of Contents


Overview

TRY-IT is an interactive learning platform that allows users to create and participate in real-time quizzes. Designed for teachers, trainers, and event hosts, it brings engagement and gamification to learning and assessments.


Features

  • 🎨 Dynamic Quiz Engine: Create and host quizzes with real-time synchronization
  • πŸ“± Cross-Platform Access: Join sessions from any device via browser
  • 🧠 Gamification: Points system with live feedback (timers in development)
  • πŸ“Š Advanced Analytics: Track participant performance and quiz statistics
  • πŸ† Competitive Leaderboards: Real-time ranking during sessions
  • πŸ”” Telegram Alerts: Instant notifications for critical system events
  • πŸ“ˆ Business Metrics: Track user registrations and quiz lifecycle events

Live Deployment

A production instance is already available at https://tryit.selnastol.ru. You may use this hosted version or deploy your own instance for customization/development.


Getting Started

Development

git clone https://github.com/IU-Capstone-Project-2025/Vanguard.git
cd Vanguard
cp .env.dev.example .env

# Without monitoring:
docker compose --env-file .env -f docker-compose.yaml -f docker-compose.dev.yaml up -d frontend

# With monitoring (Grafana/Prometheus):
docker compose --env-file .env -f docker-compose.yaml -f docker-compose.dev.yaml up -d --build

Access:

Production

cp .env.prod.example .env
chmod +x setup.sh
./setup.sh  # SSL setup
docker compose --env-file .env -f docker-compose.yaml -f docker-compose.prod.yaml up -d --build

Kubernetes

Prerequisites:

  • Helm 3.8+
  • k8s cluster with nginx ingress controller, cert manager, and load balancer
  • kubectl configured with cluster access
  • Clone repository
cd charts/tryit
cp ../../.env.prod.example .env
export $(grep -v '^#' .env | xargs)
export DB_URL=$(eval echo "$DB_URL")
export TEST_DB_URL=$(eval echo "$TEST_DB_URL")
envsubst < values.yaml > values.processed.yaml
helm upgrade --install tryit . \
 -f values.processed.yaml \
 -n tryit \
 --create-namespace

Testing

Test Coverage:

  • Python: 80% integration tests (pytest)
  • Go: Unit tests for critical components + integration/e2e tests
  • Frontend: Cypress post-build and session flow tests

All run tests through CI pipeline.


Monitoring Stack

Observability Suite:

  • πŸ“Š Grafana: Unified dashboards for metrics/logs
  • πŸ” Prometheus: Metrics collection with custom business KPIs
  • πŸ“œ Loki + Promtail: Centralized logging (backend services only)
  • 🚨 Alertmanager: Telegram alerts for:
    • System resources (CPU/RAM thresholds)
    • Service throughput degradation
    • Container failures

Planned Enhancements:

  • Frontend error logging
  • Quiz process metrics (completion rates, latency)
  • User behavior analytics

Monitoring access is restricted to developers for security.

About

An interactive learning platform that allows users to create and play real-time quizzes. Hosts can easily design engaging quizzes, while participants join from any device and compete for the top spot on the leaderboard.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5