https://github.com/gary121github/discord
https://github.com/gary121github/discord
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/gary121github/discord
- Owner: GARY121github
- Created: 2023-12-06T20:07:05.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-22T11:58:43.000Z (over 2 years ago)
- Last Synced: 2025-03-19T07:16:37.753Z (over 1 year ago)
- Language: TypeScript
- Size: 131 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Discord: Next.js 14, React, Socket.io, Prisma, Tailwind, MySQL

Features:
- Real-time messaging using Socket.io
- Send attachments as messages using UploadThing
- Delete & Edit messages in real time for all users
- Create Text, Audio and Video call Channels
- 1:1 conversation between members
- 1:1 video calls between members
- Member management (Kick, Role change Guest / Moderator)
- Unique invite link generation & full working invite system
- Infinite loading for messages in batches of 10 (tanstack/query)
- Server creation and customization
- Beautiful UI using TailwindCSS and ShadcnUI
- Full responsivity and mobile UI
- Light / Dark mode
- Websocket fallback: Polling with alerts
- ORM using Prisma
- MySQL database using Planetscale
- Authentication with Clerk
### Prerequisites
**Node version 18.x.x**
### Cloning the repository
```shell
git clone https://github.com/GARY121github/DISCORD.git
```
### Install packages
```shell
npm i
```
### Setup .env file
```js
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 Supabase)
```shell
npx prisma generate
npx prisma db push
```
### Start the app
```shell
npm run dev
```
## Available commands
Running commands with npm `npm run [command]`
| command | description |
| :-------------- | :--------------------------------------- |
| `dev` | Starts a development instance of the app |
## [DEMO](https://discord-production-0a73.up.railway.app/)