Skip to content

KpG782/container-quest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ContainerQuest: Interactive Learning Quiz

An engaging, educational Next.js quiz application that teaches containerization concepts through interactive questions based on real academic research.

Next.js TypeScript Docker

๐ŸŽ“ Project Purpose

This project was created as Assignment 4 for Mr. Nino Narido's class by Ken Patrick Garcia to demonstrate understanding of virtualization vs. containerization concepts in edge computing.

Why This Project Exists

After studying the research paper by Sturley et al. (2024) titled "Virtualization vs. Containerization, a Comparative Approach for Application Deployment in the Computing Continuum Focused on the Edge", I wanted to create an interactive way to share what I learned about:

  • Speed differences between containers and VMs (Docker starts 18x faster)
  • Energy efficiency on ARM processors (containers use 85% less power)
  • Real-world applications like Agriculture 5.0 drone image processing
  • When to use each technology based on specific requirements

Instead of just writing a traditional report, I built this interactive quiz to make the concepts more engaging and memorable for anyone learning about containerization.

Academic Foundation

This entire quiz is based on verified research from:

Sturley, H., Fournier, A., Salcedo-Navarro, A., Garcia-Pineda, M., & Segura-Garcia, J. (2024). Virtualization vs. Containerization, a Comparative Approach for Application Deployment in the Computing Continuum Focused on the Edge. Future Internet, 16(11), 427. https://doi.org/10.3390/fi16110427

All questions, metrics, and explanations are derived from their experiments using Raspberry Pi 4B+ (ARM) and x86 systems, measuring:

  • Startup time
  • Memory usage
  • CPU overhead
  • Energy consumption
  • Real-world use cases (Agriculture 5.0)

โœจ Features

Educational Design

  • 10 Questions: 4 easy, 4 intermediate, 2 hard (beginner-friendly progression)
  • Randomized Order: Questions shuffle each time for variety
  • Instant Feedback: Learn immediately with detailed explanations
  • Progress Tracking: Visual progress bar and score counter
  • Research Citations: Full academic source included in the app
  • Documentation Links: Resources for continued learning

Interactive Experience

  • Welcome Screen: Introduction with difficulty breakdown
  • Background Section: Educational context before quiz starts
  • Loading Animations: Professional feedback during answer checking
  • Results Screen: Comprehensive summary with key takeaways
  • Auto-Progression: Smooth flow between questions (4-second delay)

Modern Tech Stack

  • Next.js 14: App Router with TypeScript
  • Tailwind CSS: Beautiful gradient backgrounds and glassmorphism
  • Lucide Icons: Professional iconography throughout
  • Docker Ready: Includes optimized Dockerfile for deployment

๐Ÿš€ Quick Start

Local Development

# Install dependencies
npm install

# Run development server
npm run dev

# Open browser
http://localhost:3000

Docker Deployment

# Build Docker image
docker build -t container-quiz:latest .

# Run container
docker run -p 3000:3000 container-quiz:latest

# Access quiz
http://localhost:3000

See DOCKER_BUILD.md for detailed Docker instructions.

๐Ÿ“š What You'll Learn

By completing this quiz, you'll understand:

Key Concepts

  1. Container Advantages

    • 18x faster startup (2.5s vs 45s for VMs)
    • 80% less memory usage (100MB vs 500MB)
    • 85% less energy on ARM devices (0.3Wh vs 4.5Wh)
  2. When to Use Docker Compose

    • Quick tasks and development
    • Single-server deployments
    • Low-power devices (Raspberry Pi)
    • Simple multi-container apps
  3. When to Use Kubernetes

    • Production at scale (24/7 services)
    • Multi-server clusters
    • Auto-scaling requirements
    • Complex orchestration needs
  4. When to Use Virtual Machines

    • Strong isolation requirements
    • Legacy applications
    • Security-critical workloads
    • Different OS needed
  5. Architecture Compatibility

    • Why x86 VMs on ARM hardware fail (35% CPU overhead, 8.5Wh energy)
    • Importance of matching architectures

Real-World Applications

The quiz includes practical scenarios from the research:

  • Agriculture 5.0: Drone image processing for smart farming
  • Smart Cities: IoT device management at the edge
  • Industry 4.0: Manufacturing automation systems

๐ŸŽฏ Quiz Structure

Difficulty Levels

  • Easy (4 questions): Basic concepts like startup time, memory usage
  • Intermediate (4 questions): Kernel sharing, energy efficiency, real scenarios
  • Hard (2 questions): Production orchestration, architecture compatibility

Question Format

Each question includes:

  • 5 multiple choice options (randomized position of correct answer)
  • Clear explanations in everyday language
  • Research-backed answers from Sturley et al. study
  • Visual difficulty indicators (โœ“ Easy, โ—† Intermediate, ๐Ÿ”ฅ Hard)

๐Ÿ“ Project Structure

container-vm-dashboard/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ page.tsx              # Main quiz component
โ”‚   โ”œโ”€โ”€ layout.tsx            # Root layout
โ”‚   โ””โ”€โ”€ globals.css           # Styles and animations
โ”œโ”€โ”€ public/                   # Static assets
โ”œโ”€โ”€ Dockerfile                # Production Docker build
โ”œโ”€โ”€ .dockerignore            # Docker build optimization
โ”œโ”€โ”€ next.config.js           # Next.js configuration
โ”œโ”€โ”€ package.json             # Dependencies
โ”œโ”€โ”€ README.md                # This file
โ””โ”€โ”€ DOCKER_BUILD.md          # Docker deployment guide

๐Ÿ› ๏ธ Tech Stack

  • Framework: Next.js 14 (App Router)
  • Language: TypeScript 5.6
  • Styling: Tailwind CSS 3.4
  • Icons: Lucide React
  • Docker: node:20-alpine (multi-stage build)
  • Deployment: Standalone Next.js output

๐ŸŽจ Design Features

  • Glassmorphism Effects: Modern backdrop blur with transparency
  • Gradient Backgrounds: Dynamic colors that change based on state
  • Smooth Animations: Fade-ins, scale transforms, progress bars
  • Responsive Design: Works on desktop, tablet, and mobile
  • Dark Theme: Easy on the eyes with high contrast text
  • Accessibility: Large click targets, clear typography

๐Ÿ“– Usage Tips

For Students

  • Take the quiz multiple times to reinforce learning
  • Read all explanations carefully (they're based on real research)
  • Use the documentation links at the end for deeper study
  • Share with classmates learning about containerization

For Educators

  • Use as an interactive teaching tool in class
  • Assign as homework to reinforce lectures
  • Discuss the research paper after students complete the quiz
  • Encourage students to build similar educational tools

For Developers

  • Fork and customize with your own questions
  • Deploy to show understanding of containerization
  • Use in portfolio to demonstrate full-stack skills
  • Extend with additional features (user accounts, leaderboards)

๐Ÿ”ง Development

# Development mode
npm run dev

# Production build
npm run build
npm start

# Type checking
npx tsc --noEmit

# Linting
npm run lint

๐Ÿณ Docker Notes

The Dockerfile uses:

  • Multi-stage build: Optimized for production (3 stages)
  • node:20-alpine: Minimal base image
  • Standalone output: Self-contained Next.js app
  • Non-root user: Security best practice

๐Ÿ“š Academic Context

Research Summary

From my study of Sturley et al. (2024), I learned:

  1. Containerization performs better for short workloads on edge devices
  2. Kubernetes excels at long-term, distributed operations
  3. Energy efficiency is nearly equal on ARM between containers and VMs
  4. Architecture compatibility is critical (don't use x86 VMs on ARM)
  5. Real-world testing used Agriculture 5.0 drone image processing

Key Findings Applied

  • Docker Compose: 2.5s startup for quick tasks
  • Kubernetes: Best for 24/7 services with auto-scaling
  • VMs: High overhead but strong isolation
  • ARM native containers: 0.3Wh vs 8.5Wh for x86 VMs

๐ŸŽ“ Educational Outcomes

After completing this quiz, users will:

  • โœ… Understand when to use containers vs VMs
  • โœ… Know the performance differences (speed, memory, energy)
  • โœ… Recognize real-world applications
  • โœ… Make informed deployment decisions
  • โœ… Have access to research citations for further study

๐Ÿ™ Acknowledgments

  • Mr. Nino Narido: For the assignment that inspired this project
  • Sturley et al. (2024): For the comprehensive research paper
  • University of Makati: For fostering innovative learning approaches

๐Ÿ‘ค Creator

Ken Patrick Garcia

"Building meaningful solutions, one commit at a time"

๐Ÿ“„ License

MIT License - Feel free to use this project for educational purposes.

๐Ÿ”— Resources


Built with Next.js 14, TypeScript, and Real Academic Research

๐ŸŽฎ Ready to test your knowledge? Run npm run dev and visit http://localhost:3000


Built with Next.js 14, TypeScript, and Real Academic Research

๐ŸŽฎ Ready to test your knowledge? Run npm run dev and visit http://localhost:3000

About

ContainerQuest: Interactive Learning Quiz An engaging, educational Next.js quiz application that teaches containerization concepts through interactive questions based on real academic research.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors