debate_LMS / README.md
raymondEDS's picture
test commit
2bd6e33
---
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:**
```bash
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:**
```bash
streamlit run src/main.py
```
4. **Test Database Connection (Optional):**
```bash
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](https://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:
```bash
streamlit run tests/test_database.py
```
Test instructor notes functionality:
```bash
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**