HomeAboutTech StackProjects
Qualification
EducationExperience
Contact Me
Projects
Back to Projects
Life Lessons
FeaturedFull StackCompleted

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.

Live DemoGitHub Repo

Test Credentials

Use these accounts to explore the live demo

Recruiter Access
Admin
admin@gmail.com
Admin@123

Full dashboard, moderation & analytics access

User
user@gmail.com
User@123

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

React.jsTailwind CSSNode.jsExpress.jsMongoDBJWTStripe

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.

Back to ProjectsView Live DemoView on GitHub
Sohag Ali

Full-Stack Web Developer & AI Enthusiast building modern digital experiences.

HomeAboutTech StackQualificationProjects

© 2026 Sohag Ali. All rights reserved.

Built with ♥ using Next.js & Tailwind