A comprehensive web suite of tools to generate LMS Templates. ππ
View Live Demo Β»
View Source
Β·
Report Bug
Β·
Request Feature
π Table of Contents
ModuMate LMS Template Generator is a modern, accessible web application designed specifically for managing and generating LMS HTML Templates. It provides an intuitive interface for creating, editing, and exporting timetables with support for multiple cohorts, various export formats, and comprehensive accessibility features.
- π― Timetable Generation: Create and manage timetables with drag-and-drop functionality
- π Preset Management: Save and load timetable presets with cohort support (April/September)
- π Multiple Export Formats: Export to PDF, HTML, and iCalendar (.ics) formats
- π Dark/Light Theme: Toggle between themes with persistent preferences
- βΏ Accessibility: WCAG 2.1 AA compliant with screen reader support
- π± Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- π Real-time Preview: Live preview of timetable changes
- π Week Management: Add, remove, and reorder weeks with different types (Teaching, Reading, Assessment, Break)
- HTML5 - Semantic markup with accessibility features
- CSS3 - Modern styling with CSS custom properties and responsive design
- JavaScript (ES6+) - Vanilla JavaScript with modern features
- Font Awesome - Icon library for consistent UI elements
- jsPDF - PDF generation library
- Local Storage - Client-side data persistence
- Modern web browser (Chrome 80+, Firefox 75+, Safari 13+, Edge 80+)
- No additional software installation required
- Works offline after initial load
-
Clone the repository
git clone https://github.com/smcnab1/super-bassoon.git cd super-bassoon -
Open
index.htmlin your web browser# On macOS/Linux open index.html # On Windows start index.html
-
Or serve with a local server (recommended)
# Using Python 3 python -m http.server 8000 # Using Node.js npx serve . # Using PHP php -S localhost:8000
- Generate Timetable: Click "π Timetable" to start creating a new timetable
- Load Preset: Choose from available module presets or import custom JSON
- Customize: Add weeks, set dates, and configure module details
- Preview: Use the preview feature to see how your timetable looks
- Export: Download as PDF, copy HTML, or export to calendar format
- Week Management: Add, remove, and reorder weeks dynamically
- Week Types: Support for Teaching, Reading, Assessment, and Break weeks
- Date Calculation: Automatic date calculation based on first teaching date
- Highlighting: Mark important weeks with highlighting feature
- Real-time Updates: Changes reflect immediately in the preview
- Teaching Weeks: Blue styling with comprehensive content areas
- Reading Weeks: Orange styling for self-study periods
- Assessment Weeks: Red styling for evaluation periods
- Break Weeks: Purple styling for holidays and breaks
- Module Details: Display module name, code, year, and leader
- Cohort Support: Separate data for April and September cohorts
- Tutor Management: Add and manage multiple tutors per module
- Location Tracking: Record and display teaching locations
- JSON Import/Export: Full preset data import and export
- File Upload: Drag-and-drop or file selection for JSON files
- Validation: Automatic validation of JSON structure
- Backup: Local storage backup of custom presets
- Dual Cohorts: Separate data for April and September intakes
- Date Differences: Automatic handling of different academic calendars
- Cohort Selection: Modal-based cohort selection when loading presets
- Export Integration: Cohort information included in all exports
- Professional Layout: Clean, print-ready PDF format
- Module Information: Complete module details and cohort information
- Week Details: All week information with proper formatting
- Color Coding: Maintains week type color coding in PDF
- Custom Styling: Optimized for both screen and print viewing
- Full HTML: Complete HTML markup for external use
- Copy to Clipboard: One-click copying of generated HTML
- Styling Included: All CSS styles embedded in the HTML
- Responsive: Maintains responsive design in exported HTML
- iCalendar Format: Standard calendar format compatible with all major calendar apps
- Event Details: Each week as a calendar event with full details
- Time Slots: Default 09:00-17:00 time slots for each week
- Color Coding: Different colors for different week types
- Import Instructions: Modal with step-by-step import instructions for:
- Microsoft Outlook
- Google Calendar
- Apple Calendar
- Other calendar applications
- Keyboard Navigation: Full keyboard accessibility
- Screen Reader Support: Proper ARIA labels and semantic markup
- Focus Management: Clear focus indicators and logical tab order
- Color Contrast: High contrast ratios for all text elements
- Skip Links: Skip to main content functionality
- Screen Readers: Compatible with NVDA, JAWS, VoiceOver, and TalkBack
- High Contrast Mode: Automatic adaptation to system high contrast settings
- Reduced Motion: Respects user's motion preferences
- Font Scaling: Supports browser font scaling up to 200%
- Proper Headings: Logical heading hierarchy (h1-h3)
- Landmark Roles: Navigation, main, and content landmarks
- Form Labels: All form elements properly labeled
- Button Descriptions: Descriptive button text and ARIA labels
super-bassoon/
βββ index.html # Main landing page
βββ styles.css # Comprehensive CSS with theming
βββ timetable/
β βββ generate.html # Main timetable generator
β βββ presets.json # Built-in preset data
β βββ preset/
β βββ new.html # Create new presets
β βββ edit.html # Edit existing presets
βββ images/ # Project images and screenshots
βββ README.md # This file
βββ CHANGELOG.md # Version history
βββ LICENSE.md # MIT License
{
"ED70011X": {
"april": {
"name": "Foundations of Simulation Education",
"code": "ED70011X",
"year": "Year 1",
"leader": "Dr. Example",
"tutors": ["Tutor 1", "Tutor 2"],
"weeks": [
{
"week": 1,
"topic": "Introduction to Simulation",
"type": "teaching",
"date": "2024-04-15",
"location": "Room 101",
"highlight": false
}
]
},
"september": {
// Similar structure for September cohort
}
}
}- CSS Custom Properties: Theme variables for consistent styling
- Dark/Light Themes: Complete theme system with smooth transitions
- Responsive Design: Mobile-first approach with breakpoints
- Accessibility: Focus states, high contrast, and reduced motion support
- Print Styles: Optimized CSS for PDF generation
- ES6+ Syntax: Modern JavaScript with arrow functions, destructuring, etc.
- Local Storage: Persistent data storage for user preferences
- Event Handling: Comprehensive event management
- PDF Generation: Client-side PDF creation with jsPDF
- Calendar Export: iCalendar format generation
- Form Validation: Real-time validation and error handling
- Chrome: 80+ (Full support)
- Firefox: 75+ (Full support)
- Safari: 13+ (Full support)
- Edge: 80+ (Full support)
- CSS Custom Properties: For theming system
- ES6 Modules: For modern JavaScript features
- Local Storage: For data persistence
- File API: For JSON import functionality
- Blob API: For file downloads
- Graceful Degradation: Core functionality works without JavaScript
- Feature Detection: Automatic fallbacks for unsupported features
- Polyfills: Minimal polyfills for older browsers
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- HTML: Semantic markup with proper accessibility attributes
- CSS: Use CSS custom properties, follow BEM methodology
- JavaScript: ES6+ syntax, meaningful variable names, proper error handling
- All new features must be keyboard accessible
- Screen reader compatibility required
- Maintain WCAG 2.1 AA compliance
- Test with assistive technologies
- Test on multiple browsers (Chrome, Firefox, Safari, Edge)
- Test responsive design on mobile devices
- Verify keyboard navigation
- Test with screen reader
- Check color contrast ratios
- Validate HTML markup
When reporting issues, please include:
- Browser and version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
This project is licensed under the MIT License - see the LICENSE.md file for details.
The MIT License allows for:
- β Commercial use
- β Modification
- β Distribution
- β Private use
- β No liability
- β No warranty