https://github.com/khairul-islam98/discord-clone
https://github.com/khairul-islam98/discord-clone
axios clark discord emoji-picker-react livekit neondb nextjs prisma-orm query-string reacthookform shadcn-ui socket-io tailwindcss tenstack typescript uploadthing zustand
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/khairul-islam98/discord-clone
- Owner: Khairul-islam98
- Created: 2024-10-13T20:30:26.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-11-07T18:18:29.000Z (8 months ago)
- Last Synced: 2025-04-10T22:17:28.864Z (2 months ago)
- Topics: axios, clark, discord, emoji-picker-react, livekit, neondb, nextjs, prisma-orm, query-string, reacthookform, shadcn-ui, socket-io, tailwindcss, tenstack, typescript, uploadthing, zustand
- Language: TypeScript
- Homepage: https://discord-clone-giqf.onrender.com
- Size: 551 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Discord Clone
Live Link: discord-clone-giqf.onrender.com
This is a Discord clone built using Next.js.
## Table of Contents
- [Installation](#installation)
- [Environment Variables](#environment-variables)
- [Usage](#usage)
- [Features](#features)
- [Contributing](#contributing)
- [License](#license)
- [Technologies Used](#technologies-used)
- [Screenshots](#screenshots)
- [Contact](#contact)## Technologies Used
- Nextjs
- Axios
- TanStack Query
- Clark
- Typescript
- Tailwind css
- Shadcn
- uploadthing
- socket-io
- query-string
- prisma
- livekit## Installation
To install the project, follow these steps:
1. Clone the repository:
```bash
git clone https://github.com/Khairul-islam98/discord-clone.git
```
2. Navigate to the project directory:
```bash
cd discord-clone
```
3. Install the dependencies:
```bash
npm install
```## Environment Variables
```bash
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-upDATABASE_URL=
UPLOADTHING_SECRET=
UPLOADTHING_APP_ID=
UPLOADTHING_TOKEN=LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
NEXT_PUBLIC_LIVEKIT_URL=
```To run this project, you will need to add the following environment variables to your .env file:
## Project Structure
```
βββ πapp
βββ π(auth)
βββ π(routes)
βββ πsign-in
βββ π[[...sign-in]]
βββ page.tsx
βββ πsign-up
βββ π[[...sign-up]]
βββ page.tsx
βββ layout.tsx
βββ π(invite)
βββ π(routes)
βββ πinvite
βββ π[inviteCode]
βββ page.tsx
βββ π(main)
βββ π(routes)
βββ πserver
βββ π[serverId]
βββ πchannels
βββ π[channelId]
βββ page.tsx
βββ πconversations
βββ π[memberId]
βββ page.tsx
βββ layout.tsx
βββ page.tsx
βββ layout.tsx
βββ π(setup)
βββ page.tsx
βββ πapi
βββ πchannels
βββ π[channelId]
βββ route.ts
βββ route.ts
βββ πdirect-messages
βββ route.ts
βββ πlivekit
βββ route.ts
βββ πmembers
βββ π[memberId]
βββ route.ts
βββ πmessages
βββ route.ts
βββ πservers
βββ π[serverId]
βββ πinvite-code
βββ route.ts
βββ πleave
βββ route.ts
βββ route.ts
βββ route.ts
βββ πuploadthing
βββ core.ts
βββ route.ts
βββ favicon.ico
βββ globals.css
βββ layout.tsx
```
```
βββ πcomponents
βββ πchat
βββ chat-header.tsx
βββ chat-input.tsx
βββ chat-item.tsx
βββ chat-messages.tsx
βββ chat-video-buttom.tsx
βββ chat-welcome.tsx
βββ πmodals
βββ create-channel-modal.tsx
βββ create-server-modal.tsx
βββ delete-channel-modal.tsx
βββ delete-message-modal.tsx
βββ delete-modal.tsx
βββ edit-channel-modal.tsx
βββ edit-server-modal.tsx
βββ initial-modal.tsx
βββ invite-modal.tsx
βββ leave-modal.tsx
βββ members-modal.tsx
βββ message-file-modal.tsx
βββ πnavigation
βββ navigation-action.tsx
βββ navigation-item.tsx
βββ navigation-sidebar.tsx
βββ πproviders
βββ modal-provider.tsx
βββ query-provider.tsx
βββ socket-provider.tsx
βββ theme-provider.tsx
βββ πserver
βββ server-channel.tsx
βββ server-hearder.tsx
βββ server-member.tsx
βββ server-search.tsx
βββ server-section.tsx
βββ server-sidebar.tsx
βββ πui
βββ avatar.tsx
βββ badge.tsx
βββ button.tsx
βββ command.tsx
βββ dialog.tsx
βββ dropdown-menu.tsx
βββ form.tsx
βββ input.tsx
βββ label.tsx
βββ popover.tsx
βββ scroll-area.tsx
βββ select.tsx
βββ separator.tsx
βββ sheet.tsx
βββ tooltip.tsx
βββ action-tooltip.tsx
βββ emoji-popover.tsx
βββ file-upload.tsx
βββ media-room.tsx
βββ mobile-toggle.tsx
βββ mode-toggle.tsx
βββ socket-indicator.tsx
βββ user-avatar.tsx
βββ user-button-wrapper.tsx
```
```
βββ πhooks
βββ use-chat-query.ts
βββ use-chat-scroll.ts
βββ use-chat-socket.ts
βββ use-modal-store.ts
βββ use-origin.ts
``````
βββ πpages
βββ πapi
βββ πsocket
βββ πdirect-messages
βββ [directMessageId].ts
βββ index.ts
βββ πmessages
βββ [messageId].ts
βββ index.ts
βββ io.ts
```