Skip to content

mageshyt/buzzbox-chatApp

Repository files navigation

Buzz Box

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.

DataBase Design

image

Workflow

image

  1. Auth
  • Register using Clerk
  • Login using Clerk
  • Logout
  1. 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
  1. Join Server
  • Members can join the server by using the link
  1. Private Message
  • Users can send private messages to others

Features

  • 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.

Technologies Used

  • 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.

Getting Started

Prerequisites

  • Node.js
  • npm or yarn
  • PostgreSQL

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/buzz-box.git
    cd buzz-box
  2. Install dependencies:

    npm install
    # or
    yarn install
  3. 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
  4. Run database migrations:

    npx prisma migrate dev
  5. Start the development server:

    npm run dev
    # or
    yarn dev
  6. Open your browser and navigate to http://localhost:3000.

Project Structure

  • 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.

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/your-feature
  3. Commit your changes:
    git commit -m "Add some feature"
  4. Push to the branch:
    git push origin feature/your-feature
  5. Open a pull request.

License

This project is licensed under the MIT License.

Acknowledgments


Releases

No releases published

Packages

No packages published