Skip to content

๐ŸŽฎ Mimir is a cloud-native platform for asynchronous learning quizzes, combining Quarkus, React, and Azure Entra Id. Features include gamified UX, modular microservices, and real-time performance insights.

Notifications You must be signed in to change notification settings

antoniomarroffino/Mimir-InteractiveEducationalPlatformForLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Mimir: Interactive Educational Platform for Learning

๐Ÿงฉ Project Description

Mimir is an interactive educational platform that leverages gamification to boost student engagement.
Designed after a needs analysis at SUPSI (Scuola Universitaria Professionale della Svizzera Italiana), it addresses accessibility, continuity, and cost-free requirements unmet by existing solutions (e.g., Kahoot, Wooclap).

The system is based on a microservices architecture:

  • โš™๏ธ Backend: Java + Quarkus, optimized with GraalVM; MongoDB as database.
  • ๐ŸŒ Frontend: React + TypeScript (via Vite), using OpenAPI-defined REST APIs.
  • ๐Ÿ“ฆ Containerization & Hosting: Docker + Google Cloud Run (serverless).
  • ๐Ÿ” Authentication: Microsoft Azure Entra ID (OIDC SSO).

The current release enables course creation, folder organization, asynchronous quizzes, a shared question bank, question imports, and advanced statistics (true/false & multiple choice).


๐Ÿ” Features

  • ๐ŸŽ“ Course Management: Create, edit, and organize courses in folders.
  • โ“ Asynchronous Quizzes: Design, publish, and link quizzes to courses.
  • ๐Ÿ“š Shared Question Bank: Reuse and organize questions across quizzes.
  • ๐Ÿ“ฅ Import Questions: Bulk import via JSON or CSV format.
  • ๐Ÿ“Š Statistics Dashboard: Aggregated and user-specific performance data.
  • ๐Ÿ”’ Secure Auth: Azure Entra ID integration for seamless SSO.

๐Ÿงฑ Architecture

Architecture Diagram
Figure: High-level microservices architecture.

Cloud Native
Figure: Cloud-native deployment on GCP Cloud Run.


โš™๏ธ Technologies

Backend:

  • Java 21, Quarkus
  • GraalVM native image
  • MongoDB 6.x
  • MicroProfile Config & SmallRye Health/OpenAPI

Frontend:

  • React 18, TypeScript
  • Vite
  • Axios

Infrastructure:

  • Docker & Docker Compose
  • Google Cloud Run
  • Artifact Registry
  • Azure Entra ID (OIDC)

๐Ÿ› ๏ธ Installation

๐Ÿ”ง Prerequisites

  • Java 21 & Maven
  • Node.js v18+ & npm

๐Ÿงช Development Setup

Backend:

cd backend
mvn clean package
cd target/backend-api-client
npm i
npm link
cd ../..
mvn quarkus:dev

Frontend:

npm i
npm link @dti-isin/backend-api-client
npm run dev

๐Ÿงช Testing

Backend:

mvn quarkus:test

Frontend:

npm run test
# Coverage report
npm run coverage

๐Ÿš€ Usage

The application is available at:
๐Ÿ”— https://frontend-service-1031980811194.europe-west12.run.app/

Users can:

  • Create and manage courses and thematic folders
  • Create, edit, and publish asynchronous quizzes
  • Manage and reuse the shared question bank
  • Import questions in bulk
  • Track statistics per user and question
  • Design both true/false and multiple choice questions

๐Ÿ‘ฅ Authors

Antonio Marroffino

Luca Fantรฒ


๐Ÿ“œ License

This project was developed for educational purposes as part of the Bachelor's degree in Computer Engineering at SUPSI.

About

๐ŸŽฎ Mimir is a cloud-native platform for asynchronous learning quizzes, combining Quarkus, React, and Azure Entra Id. Features include gamified UX, modular microservices, and real-time performance insights.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages