Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T# 🎓 SkillShare Hub

A modern, full-stack online learning platform built with Next.js 15, PostgreSQL, Prisma, and Tailwind CSS. Share knowledge, learn new skills, and grow together!

Next.js TypeScript Tailwind CSS Prisma

✨ Features

🎯 Core Features

  • Modern UI/UX: Beautiful, responsive design with Tailwind CSS v4 and shadcn/ui components
  • Authentication: Secure authentication with NextAuth.js (credentials & OAuth)
  • Role-Based Access: Three user roles (User, Instructor, Admin) with appropriate permissions
  • Course Management: Full CRUD operations for courses with materials and categories
  • Enrollment System: Seamless course enrollment with progress tracking
  • Payment Integration: Chapa payment gateway for paid courses
  • Reviews & Ratings: Students can rate and review courses
  • Search & Filters: Advanced filtering by category, price, and popularity

👨‍🎓 For Students

  • Browse and search thousands of courses
  • Enroll in free and paid courses
  • Track learning progress
  • Access course materials (videos, PDFs, etc.)
  • Write reviews and ratings
  • Earn certificates upon completion
  • Personal dashboard with enrolled courses

👨‍🏫 For Instructors

  • Create and manage courses
  • Upload course materials
  • Track student enrollments
  • View course analytics
  • Manage course pricing
  • Monitor reviews and feedback

👨‍💼 For Admins

  • User management (roles, permissions)
  • Course moderation and approval
  • Platform analytics and statistics
  • Content management
  • Payment oversight

🚀 Tech Stack

📁 Project Structure

skillsharehub/
├── app/                          # Next.js App Router
│   ├── api/                     # API routes
│   │   ├── auth/               # NextAuth routes
│   │   └── chapa/              # Payment integration
│   ├── courses/                # Course pages
│   │   ├── [id]/              # Course detail & materials
│   │   └── page.tsx           # Course listing
│   ├── dashboard/              # User dashboards
│   │   ├── instructor/        # Instructor dashboard
│   │   └── page.tsx          # Student dashboard
│   ├── admin/                  # Admin panel
│   │   ├── users/            # User management
│   │   └── courses/          # Course moderation
│   ├── profile/               # User profile
│   ├── components/            # Page-specific components
│   │   ├── auth/             # Auth components
│   │   ├── courses/          # Course components
│   │   ├── layout/           # Layout components
│   │   └── payments/         # Payment components
│   ├── layout.tsx            # Root layout
│   ├── page.tsx              # Homepage
│   └── globals.css           # Global styles
├── components/                # Reusable UI components
│   └── ui/                   # shadcn/ui components
├── lib/                      # Utilities & configs
│   ├── auth.ts              # NextAuth config
│   ├── prisma.ts            # Prisma client
│   └── utils.ts             # Helper functions
├── prisma/                   # Database
│   └── schema.prisma        # Database schema
├── public/                   # Static assets
├── middleware.ts            # Auth & role middleware
└── package.json             # Dependencies

🛠️ Getting Started

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL database
  • Chapa account (for payments)

Installation

  1. Clone the repository
git clone <your-repo-url>
cd skillsharehub
  1. Install dependencies
npm install
  1. Set up environment variables

Create a .env file in the root directory:

# Database
DATABASE_URL="postgresql://user:password@localhost:5432/skillshare"

# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here"

# Chapa Payment
CHAPA_SECRET_KEY="your-chapa-secret-key"
CHAPA_WEBHOOK_SECRET="your-chapa-webhook-secret"
  1. Set up the database
npx prisma generate
npx prisma migrate dev --name init
  1. Run the development server
npm run dev
  1. Open your browser

Visit http://localhost:3000

📸 Screenshots

Homepage

Modern landing page with hero section, featured courses, and call-to-actions.

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

About

SkillShare Hub - Learn Skills, Share Knowledge Discover thousands of free and paid courses from expert instructors. Master new skills and advance your career with SkillShare Hub.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages