⚡ Server-side rendering for course page with Next.js
🍪 Cookie-based authorization with JWT
👤 Dashboard for students and instructors
🖼️ Images, videos, notes in PDF format upload with AWS-S3
💳 Payments using Stripe with connect accounts for instructors
💻 Playground for HTML, CSS, JS
👨💻 Practice programming in C, C++, Java, Python, Javascript
🪵 Logging with winston
and a lot more..
Clone this repository and install dependencies by running:
npm install
#or
yarn install
#or
pnpm install
Create a new file named config.env with the following environment variables in the root of the project folder:
PORT = 3000
API = http://localhost:3000/api
DOMAIN = http://localhost:3000
MONGO_URI = mongodb://127.0.0.1:27017/proLearning
JWT_SECRET =
AWS_ACCESS_KEY_ID =
AWS_SECRET_ACCESS_KEY =
AWS_REGION = ap-south-1
AWS_API_VERSION = 2010-12-01
AWS_BUCKET =
STRIPE_PUBLISHABLE_KEY =
STRIPE_SECRET_KEY =
STRIPE_REDIRECT_URL = http://localhost:3000/stripe/callback
STRIPE_SETTINGS_REDIRECT_URL = http://localhost:3000/instructor/earnings
STRIPE_PAYMENT_SUCCESS_URL = http://localhost:3000/stripe/success
STRIPE_PAYMENT_CANCEL_URL = http://localhost:3000/stripe/cancel
REDIS_CONNECTION = {redis: { port: 6379, host: "127.0.0.1", password: "" } }
EMAIL_FROM =
ADMIN_EMAIL =
Create a new file named .env.local with following configuration:
NEXT_PUBLIC_DOMAIN = http://localhost:3000
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY =
For development mode, run:
npm run dev
For production mode, run:
npm run build
npm start
Visit http://localhost:3000 or your custom port environment variable to view the app.
| Search Courses | Settings |
|---|---|
![]() |
![]() |
| Playground | Practice |
|---|---|
![]() |
![]() |
| Enrolled Courses | Course Page |
|---|---|
![]() |
![]() |
| Course Video | Course Coding Question |
|---|---|
![]() |
![]() |
| Course Notes | Course Quiz |
|---|---|
![]() |
![]() |











