Skip to content

Modern Learning Management System built with Next.js 14, featuring secure authentication, interactive lessons, and cloud-powered infrastructure for scalable education delivery.

Notifications You must be signed in to change notification settings

samyakpiya/course-cascade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Course Cascade

Course Cascade Homepage Course Cascade Chapter Page

Course Cascade is a modern Learning Management System (LMS) built with Next.js, leveraging cloud infrastructure for scalability and performance. View the live website here.

Features

  • 🔐 Secure authentication with Clerk
  • 📚 Course creation and management
  • 📝 Interactive lesson content
  • 📊 Student progress tracking
  • 🎥 Video content streaming
  • 💾 File storage and management
  • 📱 Responsive design for all devices

Payment Processing

For demonstration purposes, all Stripe payments are currently processed through a single platform account, meaning course payments go directly to the platform owner.

In a real-world marketplace scenario, the payment system would be implemented using Stripe Connect to facilitate revenue sharing between the platform and instructors. Here's how it would work:

  1. Instructors would onboard through Stripe Connect to create connected accounts
  2. When a student purchases a course for $100:
    • Platform automatically keeps its fee (e.g., 20% = $20)
    • Instructor automatically receives their share (e.g., 80% = $80)
  3. Payouts would be handled automatically to instructors' bank accounts

This marketplace payment setup is intentionally omitted from the demo but represents the proper approach for a production course marketplace platform.

Tech Stack

Frontend

  • Next.js 14 (App Router)
  • TypeScript
  • Tailwind CSS
  • Shadcn UI
  • Clerk Authentication

Backend & Infrastructure

  • AWS Lambda (Serverless Functions)
  • Amazon API Gateway
  • Amazon DynamoDB
  • Amazon S3 (File Storage)
  • Amazon CloudFront (CDN)
  • Amazon ECR (Container Registry)

Getting Started

Prerequisites

  • Node.js 18.0 or later
  • AWS Account
  • Clerk Account
  • npm or pnpm

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/course-cascade.git
cd course-cascade
  1. Install dependencies:
npm install
# or
pnpm install
  1. Set up environment variables:
cp .env.example .env.local

Fill in your environment variables:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
# ... other environment variables
  1. Run the development server:
npm run dev
# or
pnpm dev

Open http://localhost:3000 to view the application.

Deployment

Vercel Deployment

  1. Push your code to GitHub
  2. Import your repository to Vercel
  3. Configure environment variables
  4. Deploy

AWS Infrastructure Setup

  1. Configure AWS CLI
  2. Deploy AWS resources using Infrastructure as Code (IaC)
  3. Set up CI/CD pipeline

Detailed deployment instructions can be found in the deployment documentation.

Architecture

┌─────────────────┐
│   Next.js App   │
└─────────────────┘
         │
         ├────────────────────────────┐
         ▼                            ▼
┌─────────────────┐           ┌──────────────┐
│    Clerk Auth   │           │  CloudFront  │
└─────────────────┘           └──────────────┘
         │                            │
         ▼                            ▼
┌─────────────────┐           ┌──────────────┐
│     Vercel      │           │     S3       │
└─────────────────┘           └──────────────┘
         │
         ▼
┌─────────────────┐
│   API Gateway   │
└─────────────────┘
         │
         ▼
┌─────────────────┐     ┌──────────────┐
│   AWS Lambda    │◀────│     ECR      │
└─────────────────┘     └──────────────┘
         │
         ├────────────────────────────┐
         ▼                            ▼
┌─────────────────┐           ┌──────────────┐
│    DynamoDB     │           │     S3       │
└─────────────────┘           └──────────────┘

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • EdRoh for the project inspiration
  • Next.js team for the amazing framework
  • Vercel for hosting and deployment
  • AWS for cloud infrastructure
  • Clerk for authentication services

Built with ❤️ using Next.js

About

Modern Learning Management System built with Next.js 14, featuring secure authentication, interactive lessons, and cloud-powered infrastructure for scalable education delivery.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages