Skip to content

abinnovator/LMS

Repository files navigation

LMS (Learning Management System)

A modern, full-featured Learning Management System built with Next.js 15, specialized for creating and managing educational content.

Features

  • 🎓 Comprehensive Course Management: Create, edit, and publish courses with ease.
  • 🏗️ Drag & Drop Curriculum Builder: Intuitively organize chapters and lessons using a powerful drag-and-drop interface (powered by @dnd-kit).
  • 📝 Rich Content Editor: Author lessons using a rich text editor (Tiptap) with support for advanced formatting.
  • ☁️ Media Management: Seamlessly upload and manage video and image assets via AWS S3.
  • 🔐 Secure Authentication: Robust user authentication and session management powered by Better Auth.
  • 📊 Instructor Dashboard: Dedicated area for instructors to manage their courses and content.
  • 🎨 Modern UI/UX: Responsive and accessible design built with Tailwind CSS 4 and Radix UI primitives.

Tech Stack

Getting Started

Prerequisites

  • Node.js (v20+ recommended)
  • PostgreSQL database
  • AWS S3 Bucket for file storage

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/lms.git
    cd lms
  2. Install dependencies

    npm install
    # or
    pnpm install
    # or
    yarn install
  3. Set up Environment Variables

    Create a .env file in the root directory and add the following variables:

    # Database
    DATABASE_URL="postgresql://user:password@localhost:5432/lms_db?schema=public"
    
    # Authentication (Better Auth)
    BETTER_AUTH_SECRET="your-secret-key"
    BETTER_AUTH_URL="http://localhost:3000"
    
    # AWS S3 Storage
    AWS_ACCESS_KEY_ID="your-aws-access-key"
    AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
    AWS_REGION="us-east-1"
    AWS_BUCKET_NAME="your-bucket-name"
    
    # Email (Resend) - Optional but recommended for auth emails
    RESEND_API_KEY="re_..."
  4. Initialize the Database

    Push the Prisma schema to your database:

    npx prisma generate
    npx prisma db push
  5. Run the Development Server

    npm run dev

    Open http://localhost:3000 with your browser to see the result.

Project Structure

  • app/: Next.js App Router pages and API routes.
  • components/: Reusable UI components.
  • hooks/: Custom React hooks.
  • lib/: Utility functions and shared logic.
  • prisma/: Database schema and migrations.
  • public/: Static assets.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors