debate_LMS / README.md
raymondEDS's picture
test commit
2bd6e33
metadata
title: Debate Class LMS
emoji: 🎭
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 8501
tags:
  - streamlit
  - lms
  - education
  - debate
pinned: false
short_description: Learning Management System for Debate Class

Debate Class LMS - Learning Management System

A comprehensive Learning Management System built with Streamlit specifically designed for debate class instruction. Cloud-ready and optimized for Hugging Face Spaces deployment.

🎭 Features

πŸ” Authentication

  • Secure student login system with Supabase database
  • Individual student accounts
  • Session management
  • Custom authentication system

πŸ“š Course Content

  • Week-by-week structured learning materials
  • Interactive quizzes and assessments
  • Video resources and lecture materials
  • Assignment submission system

πŸ“Š Dashboard

  • Student progress tracking
  • Assignment due dates
  • Course announcements
  • Learning objectives overview

πŸ“ Assignments

  • File upload capabilities
  • Assignment descriptions and grading criteria
  • Submission tracking
  • Multiple file format support

πŸ“ Instructor Notes

  • Attendance tracking for each class session
  • Student progress notes (writing, research, case development)
  • Debate skills assessment (speaking, presentation, strategy)
  • Parent communication notes and recommendations
  • Tournament and important dates tracking
  • General notes and observations
  • Instructor-only access with role-based security

πŸ‘₯ Student Accounts

The system includes the following student accounts:

Username Name Role
instructor Debate Instructor Instructor
alice Alice Johnson Student
bob Bob Smith Student
carol Carol Davis Student
david David Wilson Student
emma Emma Brown Student

Default Password for all accounts: password123

πŸ› οΈ Installation & Usage

Local Development

  1. Install Dependencies:

    pip install -r requirements.txt
    
  2. Set up Supabase:

    • Create a Supabase project
    • Run the SQL script in database/setup.sql
    • Add your credentials to .streamlit/secrets.toml
  3. Run the Application:

    streamlit run src/main.py
    
  4. Test Database Connection (Optional):

    streamlit run tests/test_database.py
    

Hugging Face Spaces Deployment

  1. Fork this repository to your GitHub account

  2. Create a new Space on Hugging Face:

    • Go to huggingface.co/spaces
    • Click "Create new Space"
    • Choose "Docker" as the SDK
    • Link to your forked repository
  3. Add Repository Secrets:

    • Go to your GitHub repository settings
    • Navigate to "Secrets and variables" β†’ "Actions"
    • Add these repository secrets:
      • SUPABASE_URL: Your Supabase project URL
      • SUPABASE_KEY: Your Supabase anon public key
  4. Deploy:

    • The Space will automatically build and deploy
    • Your app will be available at https://huggingface.co/spaces/your-username/your-space-name

πŸ“ Application Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.py              # Main application entry point
β”‚   β”œβ”€β”€ auth.py              # Authentication module
β”‚   └── views/               # Page modules
β”‚       β”œβ”€β”€ __init__.py
β”‚       β”œβ”€β”€ dashboard.py     # Dashboard page
β”‚       β”œβ”€β”€ week1.py         # Week 1 lesson content
β”‚       β”œβ”€β”€ future_weeks.py  # Weeks 2-4 placeholder content
β”‚       β”œβ”€β”€ assignments.py   # Assignments page
β”‚       β”œβ”€β”€ resources.py     # Resources page
β”‚       β”œβ”€β”€ user_management.py # User management (instructor only)
β”‚       └── instructor_notes.py # Instructor notes (instructor only)
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── test_database.py     # Database connection testing
β”œβ”€β”€ database/
β”‚   β”œβ”€β”€ setup.sql            # Database setup script
β”‚   β”œβ”€β”€ create_instructor_notes_table.sql # Instructor notes table
β”‚   └── instructor_notes_rls_policies.sql # RLS policies for instructor notes
β”œβ”€β”€ .streamlit/
β”‚   β”œβ”€β”€ config.toml         # Streamlit configuration
β”‚   └── secrets.toml        # Local secrets (not in repo)
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ Dockerfile             # Container configuration
└── README.md              # This file

🎯 Course Structure

Week 1: Introduction to Debate

  • Understanding debate formats
  • Basic argument structure
  • Public speaking fundamentals
  • Evidence importance

Week 2: Argument Structure

  • Components of strong arguments
  • Logical argument construction
  • Identifying logical fallacies
  • Argument mapping skills

Week 3: Evidence & Research

  • Effective research strategies
  • Evidence quality evaluation
  • Proper source citation
  • Evidence organization

Week 4: Rebuttal Techniques

  • Effective rebuttal strategies
  • Opponent argument identification
  • Defensive argumentation
  • Quick thinking development

πŸ”§ Technical Details

  • Framework: Streamlit
  • Database: Supabase (PostgreSQL)
  • Authentication: Custom system with Supabase backend
  • Data Storage: Supabase database (cloud-ready)
  • Deployment: Optimized for Hugging Face Spaces
  • Architecture: Modular design with separate view modules

🎯 Use Cases

  • High School Debate Classes: Structured learning for debate teams
  • College Debate Programs: Advanced debate instruction
  • Debate Clubs: Organized practice and learning
  • Public Speaking Courses: Fundamental skills development

πŸ”’ Security Features

  • Supabase Row Level Security (RLS)
  • Custom authentication system
  • User role management
  • Secure file upload handling

☁️ Cloud Features

  • Supabase integration - Cloud database and authentication
  • Hugging Face Spaces ready - Optimized for immediate deployment
  • Docker containerization - Consistent deployment environment
  • Environment-based configuration - Secrets management

πŸ§ͺ Testing

Run database tests locally:

streamlit run tests/test_database.py

Test instructor notes functionality:

streamlit run tests/test_instructor_notes.py

These tests will help you verify your Supabase connection and functionality.

πŸ“ˆ Future Enhancements

  • Real-time debate practice sessions
  • Video conferencing integration
  • Advanced progress analytics
  • Mobile-responsive design
  • Debate tournament management
  • Advanced user management
  • test commit and push

Built with ❀️ using Streamlit & Supabase | Cloud-ready for Hugging Face Spaces