Skip to main content

Collect, learn, repeat. A reflection badge system for Learning Management Systems.

Project description

BadgeQuest 🏆

Collect, learn, repeat.

BadgeQuest is a gamified reflection system designed for Learning Management Systems (LMS). It transforms student reflections into meaningful achievements through an engaging badge progression system.

Features

  • Weekly Reflection Tracking: Students submit reflections that are validated for quality
  • Smart Validation: Checks word count, readability, sentiment, and uniqueness
  • Similarity Detection: Prevents resubmission of previous reflections with minor changes (80% threshold)
  • Badge Progression: Earn badges from "Dabbler" to "Mastery" based on consistent participation
  • Micro-Credentials: Theme-based achievements for focused reflection topics (e.g., AI Ethics Explorer, Innovation Champion)
  • LMS Integration: Ready-to-use HTML forms for Blackboard (Canvas and Moodle coming soon)
  • Instructor Tools: Generate progress reports for easy grade center uploads
  • Privacy-First: Only stores anonymized data with hashed reflections
  • Configurable: Support multiple courses with custom badge themes and micro-credentials

Quick Start

Installation

# Install from PyPI
pip install badge-quest

# Or with uv (recommended)
uv pip install badge-quest

Running the Server

# Initialize the database
badgequest init-db

# Start the Flask server
badgequest run-server --port 5000

For Instructors

  1. Extract the LMS form template:
badgequest extract-lms blackboard --output form.html
  1. Generate progress reports:
badgequest generate-progress --students students.txt --course AI101 --output badges.csv

Configuration

BadgeQuest supports course-specific configurations through environment variables:

# .env file
SECRET_KEY=your-secret-key-here
DATABASE_URL=sqlite:///reflections.db
CORS_ORIGINS=https://your-lms.edu

Badge Levels

The default badge progression:

Weeks Badge Title
1 🧪 Dabbler
3 🥾 Explorer
5 🧠 Thinker
7 🛡️ Warrior
10 🛠️ Builder
12 🗣️ Explainer
14+ 🏆 Mastery

Micro-Credentials

Students can earn theme-based micro-credentials by submitting reflections with specific themes. Example configuration:

"micro_credentials": {
    "ethics_explorer": {
        "name": "AI Ethics Explorer",
        "emoji": "⚖️",
        "description": "Demonstrated strong ethical analysis in AI reflections",
        "themes": ["ethics", "responsibility"],
        "min_submissions": 2
    }
}

API Endpoints

  • POST /stamp - Submit a reflection (with optional theme_id)
  • GET /progress/<student_id> - View student progress including micro-credentials
  • GET /verify/<code> - Verify a reflection code
  • GET /api/micro-credentials/<student_id> - Get detailed micro-credentials information
  • POST /api/progress/bulk - Get progress for multiple students including micro-credentials

Development

# Clone the repository
git clone https://github.com/yourusername/badgequest.git
cd badgequest

# Install with development dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Format code
ruff format .

# Type check
basedpyright

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and feature requests, please use the GitHub issue tracker.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

badge_quest-0.3.3.tar.gz (59.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

badge_quest-0.3.3-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file badge_quest-0.3.3.tar.gz.

File metadata

  • Download URL: badge_quest-0.3.3.tar.gz
  • Upload date:
  • Size: 59.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for badge_quest-0.3.3.tar.gz
Algorithm Hash digest
SHA256 983d8bdb32be9c52b273a402119c593c221cd06b4c348d58a979978f39240dea
MD5 0eddd8f8715b8921a67f7c4e0683f1ce
BLAKE2b-256 0cf612ca5f2a7b8843220a51713a7d373e74fe4f94f32b9f56929007c85ccd6f

See more details on using hashes here.

File details

Details for the file badge_quest-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: badge_quest-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for badge_quest-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 11d77896617a9800865d4ccd86c391bbf44b798a4f2fee08fd32a2b8cfba2381
MD5 0a95f4eddea0c8cc5c3cb1386e8903f1
BLAKE2b-256 29a9fe3a85456474223309fdf9c926ecb24d5e8b58c49818c5bc73899f61f0d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page