
Life Lessons
A full-stack MERN learning platform with role-based access, premium content, JWT auth, and an admin dashboard for lesson moderation and analytics.
Test Credentials
Use these accounts to explore the live demo
Full dashboard, moderation & analytics access
Create, publish and manage lessons
Project Overview
Life Lessons is a full-stack MERN-based learning platform where users can explore, create, manage, and save educational lessons in an interactive way. The platform includes secure authentication, role-based access control, public/private lesson management, premium content access via Stripe, and a powerful admin dashboard for moderation and analytics.
Problem Statement
Learners struggle to find a single platform that allows them to both consume and create structured lessons while providing content creators control over their material's visibility and monetisation.
Solution
Built a role-aware MERN application where educators can publish lessons with configurable access levels, learners can save and track progress, and admins can moderate content through a dedicated dashboard — all secured with JWT and Stripe.
Key Features
- Role-based access control (Student / Instructor / Admin)
- Public and private lesson management
- Stripe payment integration for premium content
- Admin dashboard with analytics and moderation
- JWT-secured REST API with refresh tokens
- Responsive UI with dark/light mode
Challenges Faced
- Designing a flexible permission model that scales across three distinct roles
- Integrating Stripe webhooks for reliable payment status updates
- Keeping admin analytics performant with aggregation pipelines in MongoDB
Technology Stack
Architecture & Workflow
React SPA → Axios → Express REST API → MongoDB Atlas. Auth layer uses RS256 JWTs with HttpOnly cookie refresh tokens. Stripe webhooks are verified with signature validation before updating order state.