Code Monkey home page Code Monkey logo

discord-clone's Introduction

DISCORD CLONE

Features:

  • Ability to send attachments as messages using UploadThing
  • Real-time message editing and deletion capabilities for all users
  • Establishment of Text, Audio, and Video call Channels
  • Support for 1:1 conversations between members
  • Enable 1:1 video calls between members
  • Comprehensive member management functionalities including Kick and Role changes (Guest/Moderator)
  • Implementation of a unique invite link generation system and fully functional invite mechanism
  • Infinite message loading in batches of 10 using tanstack/query
  • Creation and customization of servers
  • Implementation of a visually appealing UI using TailwindCSS and ShadcnUI
  • Full responsivity and mobile-friendly UI design
  • Support for Light and Dark mode themes
  • Websocket fallback mechanism: Polling with alerts
  • Integration of ORM using Prisma for database operations
  • Utilization of MySQL database provided by Planetscale
  • Implementation of authentication mechanisms using Clerk

Prerequisites

Node version 18.x.x

Cloning the repository

git clone https://github.com/Deepcoders30/Discord-Clone.git

Install packages

npm i

Setup .env file

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=


DATABASE_URL=

UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=

LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
NEXT_PUBLIC_LIVEKIT_URL=

Setup Prisma

Add MySQL Database (I used PlanetScale)

npx prisma generate
npx prisma db push

Start the app

npm run dev

Available commands

Running commands with npm npm run [command]

command description
dev Starts a development instance of the app

discord-clone's People

Contributors

deepcoders30 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.