Buzz Box is a chat application similar to Discord, offering a wide range of features to facilitate seamless communication among users. Built with modern technologies like Next.js, Prisma, PostgreSQL, Shadcn UI, and UploadThing, Buzz Box aims to provide a smooth and responsive chatting experience.
- Auth
- Register using Clerk
- Login using Clerk
- Logout
- Create Server
- User becomes the owner of the server
- User can create channels in the server:
- Voice Channel
- Video Channel
- Text Channel
- User can invite people to the server
- User can promote/depromote people to/from moderator role
- Moderators and Admins can:
- Delete messages of members in the channel
- Kick members out of the server
- Admins can:
- Delete a channel
- Modify a channel
- Members can invite users to join their server by sharing a link
- Join Server
- Members can join the server by using the link
- Private Message
- Users can send private messages to others
- Real-time Messaging: Instant messaging with friends and groups.
- Voice and Video Calls: High-quality voice and video calls.
- File Sharing: Easy file uploads and sharing with integrated UploadThing.
- User Management: Secure user authentication and profile management.
- Customizable UI: Beautiful and responsive UI powered by Shadcn UI.
- Database: Robust data handling with Prisma and PostgreSQL.
- Next.js: A React framework for server-side rendering and generating static websites.
- Prisma: A next-generation ORM for Node.js and TypeScript.
- PostgreSQL: A powerful, open-source object-relational database system.
- Shadcn UI: A set of components for building beautiful user interfaces.
- UploadThing: A simple and flexible file upload solution.
- Node.js
- npm or yarn
- PostgreSQL
-
Clone the repository:
git clone https://github.com/your-username/buzz-box.git cd buzz-box
-
Install dependencies:
npm install # or yarn install
-
Set up your environment variables: Create a
.env
file in the root directory and add your PostgreSQL connection string and other necessary environment variables:DATABASE_URL=postgresql://user:password@localhost:5432/mydatabase
-
Run database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev # or yarn dev
-
Open your browser and navigate to
http://localhost:3000
.
pages/
: Contains the Next.js pages.components/
: Reusable React components.prisma/
: Prisma schema and migrations.public/
: Static files.styles/
: Global and component-specific styles.utils/
: Utility functions.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
- Commit your changes:
git commit -m "Add some feature"
- Push to the branch:
git push origin feature/your-feature
- Open a pull request.
This project is licensed under the MIT License.
- Inspired by Discord.
- Built with Next.js, Prisma, PostgreSQL, Shadcn UI, and UploadThing.