| title | WSQ Courseware Generator |
|---|---|
| emoji | 📚 |
| colorFrom | blue |
| colorTo | indigo |
| sdk | docker |
| pinned | false |
| app_port | 7860 |
AI-Powered Courseware Generation Platform for WSQ Training Providers
The WSQ Courseware Generator is an enterprise-grade AI platform that automates the creation of Singapore Workforce Skills Qualifications (WSQ) training materials. Using Claude AI agents, it transforms Training & Competency Standards (TSC) documents into complete courseware packages.
| Feature | Description |
|---|---|
| Course Proposal Generation | Extract competency units from TSC and generate structured proposals |
| Courseware Creation | Auto-generate Assessment Plans, Facilitator Guides, Learner Guides, and Lesson Plans |
| Assessment Generation | Create 9 assessment types (SAQ, PP, CS, PRJ, ASGN, OI, DEM, RP, OQ) |
| Slides Generation | Generate presentation slides with NotebookLM integration |
| Brochure Creation | Design marketing brochures with web scraping |
| Document Verification | Validate supporting documents with entity extraction |
| Metric | Count |
|---|---|
| AI Agents | 34 |
| Generation Modules | 7 |
| Assessment Types | 9 |
| Courseware Documents | 4 |
| Prompt Templates | 22 |
| Skills Documented | 13 |
This platform runs using Claude Code with subscription plan. All AI operations are executed through the Claude Code CLI environment with an active subscription, ensuring consistent and reliable performance.
| Category | Technology |
|---|---|
| Frontend | |
| Backend | |
| AI/LLM | |
| Database | |
| Deployment | |
| Document Processing | python-docx, docxtpl, openpyxl, PyPDF2 |
| Model | Use Case |
|---|---|
| Claude Sonnet 4 | Default - Best balance of speed and capability |
| Claude Opus 4.5 | Complex tasks requiring deep reasoning |
| Claude Haiku 3.5 | Fast tasks requiring quick responses |
┌─────────────────────────────────────────────────────────────────────┐
│ CHAINLIT UI │
│ (Chat Interface + File Upload) │
└─────────────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────────────▼───────────────────────────────────────┐
│ CHAT PROFILES │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Course │ │Courseware│ │Assessment│ │ Slides │ │ Brochure │ │
│ │ Proposal │ │ (4) │ │ (9) │ │ (5) │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼────────────┼────────────┼────────────┼────────────┼─────────┘
│ │ │ │ │
┌───────▼────────────▼────────────▼────────────▼────────────▼─────────┐
│ CLAUDE AI AGENTS (34 Total) │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ORCHESTRATOR AGENT │ │
│ │ (Routes to Specialized Agents) │ │
│ └───────┬─────────────┬─────────────┬─────────────┬───────────┘ │
│ │ │ │ │ │
│ ┌───────▼───┐ ┌───────▼───┐ ┌───────▼───┐ ┌───────▼───┐ │
│ │ CP Agents │ │ CW Agents │ │Assessment │ │ Slides │ │
│ │ (10) │ │ (4) │ │ Agents │ │ Agents │ │
│ │ │ │ │ │ (9) │ │ (5) │ │
│ │ -TSC │ │ -AP Agent │ │ -SAQ, PP │ │ -Topic │ │
│ │ -Extract │ │ -FG Agent │ │ -CS, PRJ │ │ -Source │ │
│ │ -Research │ │ -LG Agent │ │ -ASGN, OI │ │ -Quality │ │
│ │ -Validate │ │ -LP Agent │ │ -DEM, RP │ │ -NotebookLM│ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
└─────────────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────────────▼───────────────────────────────────────┐
│ DOCUMENT GENERATION ENGINE │
│ (Templates + python-docx + docxtpl + openpyxl) │
└─────────────────────────────────────────────────────────────────────┘
courseware_claude/
├── app.py # Main Chainlit application
├── Dockerfile # Docker configuration
├── requirements.txt # Python dependencies
│
├── .chainlit/
│ └── config.toml # Chainlit configuration
│
├── chainlit_modules/ # Chat profile handlers
│ ├── course_proposal.py # CP workflow
│ ├── courseware.py # AP/FG/LG/LP workflow
│ ├── assessment.py # Assessment workflow
│ ├── slides.py # Slides workflow
│ ├── brochure.py # Brochure workflow
│ ├── annex_assessment.py # Add to AP workflow
│ ├── check_documents.py # Document verification
│ └── settings.py # Settings panel
│
├── generate_cp/ # Course Proposal generation
│ ├── main.py # Main CP pipeline
│ ├── agents/ # CP agents (10)
│ └── utils/ # Utilities
│
├── generate_assessment/ # Assessment generation
│ ├── agents/ # 9 assessment agents
│ └── prompts/ # Assessment prompts
│
├── generate_ap_fg_lg_lp/ # Courseware generation
│ ├── agents/ # 4 courseware agents
│ └── templates/ # Document templates
│
├── generate_slides/ # Slides generation
│ ├── agents/ # 5 slides agents
│ └── notebooklm/ # NotebookLM integration
│
├── generate_brochure/ # Brochure generation
│
├── settings/ # Configuration & API
│ ├── api_manager.py # API key management
│ ├── model_configs.py # Model configurations
│ └── api_database.py # SQLite database
│
├── company/ # Company management
│ └── company_manager.py # Organization CRUD
│
├── skills/ # NLP skill matching
│ └── __init__.py # Skill definitions
│
├── .claude/ # Claude Code configuration
│ ├── settings.local.json # Local settings
│ └── skills/ # Claude Code skills (13)
│ ├── branding/ # UI styling guidelines
│ ├── generate_course_proposal/ # CP generation skill
│ ├── generate_courseware/ # AP/FG/LG/LP skill
│ ├── generate_assessment/ # Assessment generation
│ ├── generate_assessment_plan/ # AP-specific skill
│ ├── generate_facilitator_guide/ # FG-specific skill
│ ├── generate_learner_guide/ # LG-specific skill
│ ├── generate_lesson_plan/ # LP-specific skill
│ ├── generate_slides/ # Slides generation
│ ├── generate_brochure/ # Brochure generation
│ ├── add_assessment_to_ap/ # Annex assessments
│ ├── check_documents/ # Document verification
│ └── create_github_readme/ # README generation
│
├── templates/ # Document templates
│ ├── AP_template.docx
│ ├── FG_template.docx
│ ├── LG_template.docx
│ └── LP_template.docx
│
└── public/ # Static assets
└── custom.css # Dark theme styles
- Python 3.13+
- Docker (optional, for containerized deployment)
- Anthropic API Key
# 1. Clone the repository
git clone https://github.com/alfredang/courseware_claude_agents.git
cd courseware_claude_agents
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Set up environment variables
cp .env.example .env
# Edit .env with your API keys
# 5. Run the application
chainlit run app.py -w
# 6. Open browser
# http://localhost:8000# Build image
docker build -t wsq-courseware .
# Run container
docker run -p 7860:7860 --env-file .env wsq-courseware- Go to huggingface.co/spaces
- Click "Create new Space"
- Select Docker as SDK
- Connect your GitHub repository
- Add secrets in Settings:
ANTHROPIC_API_KEYDATABASE_URLCHAINLIT_AUTH_SECRET
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
Yes | Anthropic Claude API key |
DATABASE_URL |
Yes | PostgreSQL connection string |
CHAINLIT_AUTH_SECRET |
Yes | Session encryption secret |
The platform includes 13 documented skills in the .claude/skills/ directory, each with:
| File | Purpose |
|---|---|
SKILL.md |
Command, keywords, description, response template |
README.md |
Developer documentation |
examples.md |
Example prompts and usage |
reference/ |
Technical reference docs for agents |
| Skill | Description |
|---|---|
generate_course_proposal |
Generate CP from TSC documents |
generate_courseware |
Generate AP, FG, LG, LP documents |
generate_assessment |
Create 9 assessment types |
generate_slides |
Generate slides with NotebookLM MCP |
generate_brochure |
Create marketing brochures |
check_documents |
Verify supporting documents |
add_assessment_to_ap |
Annex assessments to AP |
branding |
UI styling guidelines |
create_github_readme |
Generate README.md files |
Skills use fuzzy matching via rapidfuzz to match user intents to appropriate workflows.
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Join the discussion in GitHub Discussions!
Distributed under the MIT License. See LICENSE for more information.
- Anthropic — Claude AI API
- Chainlit — Chat UI Framework
- Hugging Face — Model Hosting & Spaces
- SkillsFuture Singapore — WSQ Framework
- Neon — Serverless PostgreSQL
- All contributors and testers who helped improve this project
Made with ❤️ for Singapore's Training Providers
⭐ Star this repo if you find it useful!
