Swahili Learn is a comprehensive Learning Management System (LMS) designed to help learners master web development, DevOps, and programming skills. Our platform provides an interactive, structured approach to learning cutting-edge technology skills through comprehensive courses, hands-on projects, and interactive assessments.
# Swahili Learn 💻🚀
## Project Overview
Swahili Learn is a comprehensive Learning Management System (LMS) designed to help learners master web development, DevOps, and programming skills. Our platform provides an interactive, structured approach to learning cutting-edge technology skills through comprehensive courses, hands-on projects, and interactive assessments.
## Technology Stack
### Frontend
- Framework: Next.js (React)
- UI Components: Radix UI
- Styling: Tailwind CSS
- Language: TypeScript
### Backend
- Framework: FastAPI
- Language: Python (3.10+)
- ORM: SQLAlchemy (with Alembic for migrations)
- Database: PostgreSQL
- Testing: Pytest
## Key Features
### User Management
- User Registration and Authentication
- Profile Management
- Role-based Access Control
- Password Reset Functionality
### Course Management
- Course Creation and Enrollment
- Course Categorization
- Progress Tracking
- Multimedia Content Support
### Learning Content
- Structured Course Modules
- Video Tutorials
- Interactive Coding Exercises
- Project-based Learning
- Hands-on Labs
- Code Sandboxes
### Assessment and Tracking
- Coding Challenges
- Multiple Choice Quizzes
- Practical Coding Assignments
- Progress Tracking
- Skill Certification
- Performance Analytics
### User Management
- Personalized Learning Paths
- Role-based Access
- Profile and Skill Tracking
- Community Interaction
- Mentorship Connections
### Content Visibility Controls
#### Overview
The Content Visibility Controls feature provides granular control over lesson accessibility in the learning management system. This feature allows administrators to:
- Set lesson visibility status
- Define start and end dates for lesson availability
- Restrict lesson access based on user roles
#### Key Features
##### Visibility Management
- `is_visible`: Boolean flag to enable/disable lesson visibility
- `visibility_start_date`: Defines when a lesson becomes accessible
- `visibility_end_date`: Defines when a lesson becomes i …