A comprehensive learning management system that automatically detects and loads Markdown lessons from the ./lessons/ directory, extracts action items, and provides progress tracking with milestone markers.
- Scans
./lessons/directory for Markdown files - Automatically loads and parses lesson content
- Extracts action items from "What I Should Try Next" sections
- Track completion of individual action items
- Visual progress bars and percentages
- Milestone system with achievement badges
- Persistent progress storage (JSON file)
- Dashboard: Overview of all lessons and progress
- Lessons: Browse and read full lesson content
- Action Items: Filter and manage tasks by lesson, status, or category
- Responsive design that works on all devices
The system intelligently extracts action items from markdown files by:
- Finding sections titled "What I Should Try Next"
- Parsing numbered lists with bold titles (
1. **Title** description) - Organizing items by category (### headers)
- Including sub-items and detailed descriptions
- Node.js (no external dependencies required)
- Markdown lesson files in
./lessons/directory
- Clone or download the Learning System
cd /path/to/learning-system- Start the application
node server.jsOr use the start script:
node start.js- Open your browser
Navigate to
http://localhost:3000
- Create Markdown files in the
./lessons/directory - Include a "What I Should Try Next" section with action items
- The system will automatically detect and load them
# Lesson Title
## Overview
Brief description of what this lesson covers...
## Key Concepts
Main concepts explained...
## What I Should Try Next
### Immediate Actions
1. **First action** - Description of what to do
2. **Second action** - More details here
### Advanced Topics
1. **Advanced task** - For when you're ready
2. **Expert level** - Challenge yourself
### Best Practices
- Always test your work
- Document your progress
- Share with otherslearning-system/
βββ server.js # Main server application
βββ start.js # Startup script
βββ package.json # Project configuration
βββ progress.json # Progress data (auto-generated)
βββ lessons/ # Markdown lesson files
β βββ lesson1.md
β βββ lesson2.md
βββ public/ # Frontend assets
β βββ index.html # Main web interface
β βββ css/
β β βββ styles.css # Application styles
β βββ js/
β βββ app.js # Frontend JavaScript
βββ README.md # This file
Returns all lessons with extracted action items and progress data.
Response:
[
{
"id": "lesson-name",
"title": "Lesson Title",
"overview": "Brief description...",
"content": "Full markdown content...",
"actionItems": [
{
"id": "action-1",
"title": "Action Title",
"description": "Detailed description",
"category": "Category Name",
"completed": false,
"difficulty": "medium"
}
],
"totalItems": 10,
"completedItems": 3,
"progress": 30
}
]Update progress for a specific action item.
Request body:
{
"lessonId": "lesson-name",
"itemId": "action-1",
"completed": true
}- Progress Overview: Visual cards showing completion status for each lesson
- Milestones: Achievement system with 6 levels (Getting Started β Completed!)
- Recent Activity: Track your learning journey (planned feature)
- Browse all available lessons
- Click to view full lesson content in modal
- See progress and action item counts at a glance
- Filter by lesson, completion status, or category
- Check off completed items
- See difficulty levels and descriptions
- Track which lesson each item belongs to
- All progress automatically saved to
progress.json - Survives server restarts
- Can be backed up or transferred
Modify the extractActionItems() function in server.js to support different markdown patterns.
Edit public/css/styles.css to customize the appearance. The CSS uses CSS custom properties for easy theming.
Modify the milestone definitions in public/js/app.js to add custom achievement levels.
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Mobile responsive design
- Progressive enhancement
- Ensure markdown files are in
./lessons/directory - Check that files have
.mdextension - Verify "What I Should Try Next" section exists
- Ensure proper markdown formatting:
- Use
### Category Namefor categories - Use
1. **Title** descriptionfor numbered items - Include "What I Should Try Next" section
- Use
- Check file permissions in the project directory
- Ensure server has write access for
progress.json
MIT License - Feel free to modify and distribute.
This is a self-contained learning system. Feel free to fork and customize for your needs!
Happy Learning! πβ¨