A feature-rich, role-based learning management system (LMS) built with a powerful Java & Spring Boot backend and a dynamic React & TypeScript frontend. Learnexa provides a seamless and professional experience for instructors to create and manage their content, and for students to discover, purchase, and consume courses.
The platform follows a robust MVC architecture on the backend and is divided into two primary user experiences:
- Secure Authentication: Full registration and login system using JWT for secure sessions.
- Course Management Dashboard: A dedicated dashboard to view, search, and manage all created courses.
- Advanced Course Creation & Editing: An intuitive, multi-step form to create and edit courses with modules and resources.
- AI-Powered Content Generation: Integrated with the Gemini API to automatically generate compelling course descriptions.
- Dynamic Pricing & Discounts: Set course prices and promotional discounts with real-time feedback.
- Rich Resource Uploads: Upload various resource types, including PDFs (stored locally) and Video/Article links.
- Course Analytics: A detailed dashboard for each course showing total enrollments, estimated revenue, and an interactive graph of enrollment trends.
- Student Roster: View and search a paginated list of all students enrolled in a specific course.
- Secure Authentication: Register and log in as a student to access the platform.
- Interactive Course Catalog: A beautiful, responsive dashboard to discover and search all available courses.
- "Freemium" Course Previews: Students can view the first module of any course for free before deciding to enroll.
- Seamless Enrollment: A simulated checkout process for enrolling in free or paid courses.
- Personal Learning Dashboard ("My Courses"): A dedicated page to access all enrolled courses.
- Professional Course Viewer: An immersive learning interface with a collapsible curriculum sidebar, an integrated PDF viewer, and embedded video/link content.
The project leverages a modern, scalable, and professional technology stack.
| Backend (learningpath) | Frontend (learningpath-dashboard) |
|---|---|
| Java 21 | React 18 & TypeScript |
| Spring Boot 3 | Vite |
| Spring Security (JWT) | Tailwind CSS |
| Spring Data JPA | Recharts (for charts) |
| PostgreSQL | Axios |
| Cloudinary |
To get a local copy up and running, please follow these steps.
- Java JDK 21 or later
- Node.js v18 or later
- A running PostgreSQL database
- A Cloudinary account (for user profile image uploads)
- Navigate to the backend directory:
cd learningpath - Configure Environment Variables:
- In
src/main/resources/, renameapplication-example.propertiestoapplication.properties. - Fill in your PostgreSQL database details (
spring.datasource.url,username,password). - Add your Cloudinary API details (
cloudinary.cloud_name,api_key,api_secret).
- In
- Run the application:
The backend server will start on
./gradlew bootRun
http://localhost:8080. The first time it runs, theDataSeederwill populate the database with fake users and courses if uncommented (but no resourses will be added in courses).
- Navigate to the frontend directory:
cd learningpath-dashboard - Install Dependencies:
npm install
- Run the development server:
The frontend will be available at
npm run dev
http://localhost:5173.
I am open to suggestions and plan to continue developing this platform.
Isa Shaikh - isashaikh2005@gmail.com
Project Link: https://github.com/IsaShaikh/smartedu-platform


