Skip to content

ClipJoy is a Next.js-based ๐Ÿ“ฝ๏ธ application for sharing reels ๐ŸŽฅ with users. It allows users to upload, view, and interact ๐Ÿ‘ with short videos โฉ. The project is built with Next.js, NextAuth ๐Ÿ” for authentication, and ImageKit ๐Ÿ–ผ๏ธ for video uploads.

Notifications You must be signed in to change notification settings

skp3214/clipjoy

Repository files navigation

๐ŸŽฌ ClipJoy

ClipJoy is a Next.js-based ๐Ÿ“ฝ๏ธ application for sharing reels ๐ŸŽฅ with users. It allows users to upload, view, and interact ๐Ÿ‘ with short videos โฉ. The project is built with Next.js, NextAuth ๐Ÿ” for authentication, and ImageKit ๐Ÿ–ผ๏ธ for video uploads.

โญ Features

  • User Authentication ๐Ÿ”‘ with NextAuth
  • Video Uploads ๐Ÿ“ค using ImageKit
  • Secure Password Hashing ๐Ÿ”’ with bcryptjs
  • Video Metadata Storage ๐Ÿ—„๏ธ using MongoDB & Mongoose
  • Styled ๐ŸŽจ with TailwindCSS & DaisyUI
  • Form Handling ๐Ÿ“„ with React Hook Form

๐Ÿ› ๏ธ Tech Stack

  • Frontend: ๐ŸŽญ Next.js, React, TailwindCSS, DaisyUI
  • Backend: ๐Ÿ—๏ธ Next.js API routes, NextAuth
  • Database: ๐Ÿ—‚๏ธ MongoDB (Mongoose ODM)
  • Storage: ๐Ÿž๏ธ ImageKit
  • Authentication: ๐Ÿ”‘ NextAuth (JWT-based authentication)
  • State Management: ๐Ÿ“ฆ React Hook Form

๐Ÿš€ Installation

  1. Clone the Repository ๐Ÿ“‚:
    git clone https://github.com/skp3214/clipjoy.git
    cd clipjoy
  2. Install Dependencies ๐Ÿ“ฆ:
    npm install
    # or
    yarn install
  3. Set Up Environment Variables ๐ŸŒ:
    • Create a .env.local file and add the following:
    NEXTAUTH_SECRET=your_secret_key
    NEXTAUTH_URL=http://localhost:3000
    MONGODB_URI=your_mongodb_connection_string
    IMAGEKIT_PUBLIC_KEY=your_public_key
    IMAGEKIT_PRIVATE_KEY=your_private_key
    IMAGEKIT_URL_ENDPOINT=your_url_endpoint
  4. Run the Development Server ๐Ÿƒ:
    npm run dev

๐Ÿ“‚ Folder Structure

clipjoy/
โ”‚โ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”œโ”€โ”€ auth/
โ”‚   โ”‚   โ”œโ”€โ”€ register/
โ”‚   โ”‚   โ”œโ”€โ”€ videos/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ login/
โ”‚   โ”œโ”€โ”€ register/
โ”‚   โ”œโ”€โ”€ upload/
โ”‚โ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ api-client.ts
โ”‚   โ”œโ”€โ”€ auth.ts
โ”‚   โ”œโ”€โ”€ db.ts
โ”‚โ”€โ”€ models/
โ”‚   โ”œโ”€โ”€ User.ts
โ”‚   โ”œโ”€โ”€ Video.ts
โ”‚โ”€โ”€ public/
โ”‚โ”€โ”€ styles/
โ”‚โ”€โ”€ pages/
โ”‚โ”€โ”€ .env.local
โ”‚โ”€โ”€ next.config.js
โ”‚โ”€โ”€ package.json

๐Ÿ”— API Routes

๐ŸŒ Route ๐Ÿ”„ Method ๐Ÿ“œ Description
/api/videos GET Fetch all videos ๐Ÿ“น
/api/auth/session GET Get user session ๐Ÿ”‘
/api/auth/signin POST User login ๐Ÿšช
/api/auth/signup POST User registration ๐Ÿ“

๐Ÿ”ฎ Future Enhancements

  • Admin Dashboard ๐Ÿ› ๏ธ for managing videos & users
  • Like & Comment System โค๏ธ๐Ÿ’ฌ for user engagement
  • Video Categories & Tags ๐Ÿท๏ธ for better content organization
  • Performance Optimization โšก with caching and SSR

๐Ÿค Contributing

Pull requests are welcome! ๐Ÿš€ For major changes, please open an issue ๐Ÿ—‚๏ธ first to discuss what you would like to change.

About

ClipJoy is a Next.js-based ๐Ÿ“ฝ๏ธ application for sharing reels ๐ŸŽฅ with users. It allows users to upload, view, and interact ๐Ÿ‘ with short videos โฉ. The project is built with Next.js, NextAuth ๐Ÿ” for authentication, and ImageKit ๐Ÿ–ผ๏ธ for video uploads.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published