Skip to content

Nehmuk/microlearn-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ MicroLearn β€” Micro-Learning Platform

A modern full-stack micro-learning web application that delivers short, focused lessons with quizzes, progress tracking, and personalized dashboards.


🌐 Project Overview

MicroLearn is a complete full-stack web application built during a 15-week internship at VrishankSoft OPC Pvt Ltd. It allows users to learn through structured short lessons, complete quizzes, track their progress, save content, and manage their profile β€” all through a clean and responsive interface.

The platform was built using React.js and Tailwind CSS on the frontend, and Django REST Framework with SQLite on the backend, following a clean client-server architecture connected through REST APIs.


✨ Features

  • πŸ” User Authentication β€” Secure token-based login and signup
  • πŸ“Š Personalized Dashboard β€” Real-time stats, streak tracking, and daily learning card
  • πŸ” Explore Topics β€” Browse topics with detailed lesson modal and curriculum view
  • πŸ“– Lesson Flow β€” Structured lessons with Intro, Content, and Key Takeaways
  • 🧠 Quiz System β€” Multiple choice and True/False questions with auto scoring
  • πŸ“ˆ Progress Analytics β€” Circular progress bar, per-topic progress, and recent activity
  • πŸ”– Saved Lessons β€” Bookmark lessons with search and category filter
  • πŸ”” Notifications β€” Real-time notification system with polling and mark-as-read
  • πŸ‘€ Profile Management β€” View and edit profile with backend persistence
  • πŸ“± Fully Responsive UI β€” Works across mobile, tablet, and desktop

πŸ› οΈ Tech Stack

Frontend

Technology Purpose
React.js Component-based UI development
Tailwind CSS Responsive styling and layout
Axios API communication with backend
React Hooks State and lifecycle management
Lucide React Icon library

Backend

Technology Purpose
Python Backend programming language
Django Web framework
Django REST Framework REST API development
Token Authentication Secure user session management

Database

Technology Purpose
SQLite Development database

Tools

Tool Purpose
VS Code Development environment
Git and GitHub Version control
Django Admin Content and lesson management

πŸ“ Project Structure

microlearn-platform/
β”‚
β”œβ”€β”€ api/                        ← Django App
β”‚   β”œβ”€β”€ models.py               ← Database models
β”‚   β”œβ”€β”€ serializers.py          ← JSON conversion
β”‚   β”œβ”€β”€ views.py                ← API logic
β”‚   β”œβ”€β”€ admin.py                ← Admin panel config
β”‚   └── migrations/             ← Database migrations
β”‚
β”œβ”€β”€ core/                       ← Django Project Config
β”‚   β”œβ”€β”€ settings.py             ← Project settings
β”‚   └── urls.py                 ← URL routing
β”‚
β”œβ”€β”€ src/                        ← React Application
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ common/             ← AuthModal, MainHeader, NotificationDropdown
β”‚   β”‚   β”œβ”€β”€ dashboard/          ← Dashboard, Sidebar, StatsCards, DailyLearning
β”‚   β”‚   β”œβ”€β”€ explore/            ← ExplorePage, TopicCard, TopicGrid, TopicModal
β”‚   β”‚   β”œβ”€β”€ lesson/             ← LessonController, Quiz, Steps, UI
β”‚   β”‚   β”œβ”€β”€ analytics/          ← ProgressStats, ProgressHero, RecentActivity
β”‚   β”‚   β”œβ”€β”€ saved/              ← SavedTopics
β”‚   β”‚   β”œβ”€β”€ profile/            ← ProfilePage, EditForm, ViewFields
β”‚   β”‚   β”œβ”€β”€ contact/            ← ContactForm, ContactInfo
β”‚   β”‚   β”œβ”€β”€ review/             ← ReviewForm, ReviewList, ReviewCard
β”‚   β”‚   └── pages/              ← About, Contact, Review, Privacy, Terms
β”‚   β”œβ”€β”€ App.jsx                 ← Root component and routing
β”‚   └── main.jsx                ← React entry point
β”‚
β”œβ”€β”€ manage.py                   ← Django management script
β”œβ”€β”€ requirements.txt            ← Python dependencies
β”œβ”€β”€ package.json                ← Node dependencies
└── README.md

βš™οΈ How to Run Locally

Prerequisites

  • Python 3.x installed
  • Node.js installed
  • Git installed

Backend Setup

# 1. Clone the repository
git clone https://github.com/Nehmuk/microlearn-platform.git

# 2. Go to project folder
cd microlearn-platform

# 3. Create virtual environment
python -m venv venv

# 4. Activate virtual environment
venv\Scripts\activate        # Windows
source venv/bin/activate     # Mac or Linux

# 5. Install Python dependencies
pip install -r requirements.txt

# 6. Run database migrations
python manage.py migrate

# 7. Create admin user (optional)
python manage.py createsuperuser

# 8. Start Django server
python manage.py runserver

Frontend Setup

# 1. Install Node dependencies
npm install

# 2. Start React development server
npm run dev

Access the Application

Frontend  β†’  http://localhost:5173
Backend   β†’  http://localhost:8000
Admin     β†’  http://localhost:8000/admin

πŸ—„οΈ Database Models

Model Purpose
Topic Stores learning topics, categories, icons, and descriptions
Lesson Stores lesson content as JSON including quiz questions
UserLessonProgress Tracks per-lesson completion for each user
UserProgress Stores streak, total points, and lessons completed
UserProfile Extended profile β€” bio, location, occupation, gender, age
SavedLesson Tracks lessons bookmarked by each user
Notification Stores notifications generated for each user
Review Stores star ratings and comments from users

πŸ”Œ API Endpoints

Method Endpoint Auth Required Purpose
POST /api/login/ ❌ User login
POST /api/signup/ ❌ User registration
GET /api/topics/ ❌ Fetch all topics with curriculum
GET /api/user-stats/ βœ… Fetch streak, points, lessons done
POST /api/complete-lesson/ βœ… Mark lesson complete and update stats
GET /api/lesson-progress/ βœ… Fetch per-lesson completion records
GET /api/saved-lessons/ βœ… Fetch user saved lessons
POST /api/lessons/toggle-save/ βœ… Save or unsave a lesson
GET /api/notifications/ βœ… Fetch user notifications
POST /api/notifications/mark-read/ βœ… Mark one notification as read
POST /api/notifications/mark-all-read/ βœ… Mark all notifications as read
GET /api/profile/ βœ… Fetch user profile
PUT /api/profile/update/ βœ… Update user profile
GET /api/reviews/ βœ… Fetch all reviews
POST /api/reviews/ βœ… Post a new review
POST /api/contact/ ❌ Submit contact message

πŸ” Authentication Flow

  1. User signs up β†’ Django creates user β†’ Token generated β†’ Stored in localStorage
  2. User logs in β†’ Django verifies credentials β†’ Token returned β†’ Stored in localStorage
  3. Every API request β†’ Token sent in Authorization header β†’ Django validates β†’ Response returned
  4. User logs out β†’ Token removed from localStorage β†’ Session cleared

πŸ“Š Key Technical Concepts Used

  • Component-based Architecture β€” React components for every UI section
  • React Hooks β€” useState, useEffect, useCallback for state and lifecycle
  • Token Authentication β€” Secure session management without cookies
  • REST API Design β€” Clean endpoints following REST conventions
  • Custom Events β€” statsUpdated, progressUpdated, savedUpdated for real-time sync
  • Optimistic UI β€” Instant UI updates before backend confirmation
  • Promise.all β€” Parallel API calls for faster page loading
  • Django Serializers β€” Clean JSON conversion with validation
  • OneToOneField β€” UserProfile and UserProgress linked one-to-one with User
  • JSONField β€” Lesson content and quiz data stored as flexible JSON

πŸš€ Future Scope

  • AI-based personalized lesson recommendations
  • Video lessons and interactive learning materials
  • Certificates and achievement badges
  • Email notifications and reminder systems
  • Mobile application for Android and iOS
  • Deployment on Vercel and Railway with PostgreSQL

πŸ‘©β€πŸ’» Developer

Neha Mukhopadhyay B.E. Computer Science and Engineering GSSSIETW, Mysuru β€” 4GW22CS073

Internship at VrishankSoft OPC Pvt Ltd External Guide β€” Mr. Santosh Khot, Managing Director Internal Guide β€” Mrs. Harshitha B, Assistant Professor

Duration β€” February 2026 to May 2026 (15 Weeks)


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

About

A full-stack Micro-Learning Platform built with React.js and Django REST Framework. Features include interactive lessons, quiz system, progress tracking, saved lessons, notifications, and user authentication.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors