Skip to content

This is a repository for a Real-Time Chat Messaging: Next.js 13, React, Tailwind, Prisma, MongoDB, NextAuth, Pusher.

License

Notifications You must be signed in to change notification settings

rohit4242/realtime-chat-messaging

Repository files navigation

Real-Time Chat Messaging: Next.js 13, React, Tailwind, Prisma, MongoDB, NextAuth, Pusher

This is a repository for a Real-Time Chat Messaging: Next.js 13, React, Tailwind, Prisma, MongoDB, NextAuth, Pusher.

we'll walk you through the process of creating a fully-functional and visually stunning chat application that rivals the best in the industry.

Key Features:

  • Real-time messaging using Pusher
  • Message notifications and alerts
  • Tailwind design for sleek UI
  • Tailwind animations and transition effects
  • Full responsiveness for all devices
  • Credential authentication with NextAuth
  • Google authentication integration
  • Github authentication integration
  • File and image upload using Cloudinary CDN
  • Client form validation and handling using react-hook-form
  • Server error handling with react-toast
  • Message read receipts
  • Online/offline user status
  • Group chats and one-on-one messaging
  • Message attachments and file sharing
  • User profile customization and settings
  • How to write POST, GET, and DELETE routes in route handlers (app/api)
  • How to fetch data in server React components by directly accessing the database (WITHOUT API! like Magic!)
  • Handling relations between Server and Child components in a real-time environment
  • Creating and managing chat rooms and channels

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (version 14 or higher)
  • npm (Node package manager)
  • MongoDB (for database management)
  • A Pusher account (for real-time messaging)
  • A Cloudinary account (for file uploads)

Cloning the repository

git clone https://github.com/rohit4242/realtime-chat-messaging.git

Install packages

npm i

Setup .env file

DATABASE_URL=
NEXTAUTH_SECRET=

NEXT_PUBLIC_PUSHER_APP_KEY=
PUSHER_APP_ID=
PUSHER_SECRET=

NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=

GITHUB_ID=
GITHUB_SECRET=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

Setup Prisma

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

Technologies Used

  • Next.js: A React framework for server-side rendering and static site generation.
  • React: A JavaScript library for building user interfaces.
  • Tailwind CSS: A utility-first CSS framework for styling.
  • Prisma: An ORM for database management.
  • MongoDB: A NoSQL database for storing user and message data.
  • NextAuth: Authentication for Next.js applications.
  • Pusher: A service for real-time communication.
  • Cloudinary: A cloud service for image and video management.

Conclusion

This Real-Time Chat Messaging Application is designed to provide a robust and interactive chat experience. With its modern tech stack and rich features, it stands out as a competitive solution for real-time communication needs.

About

This is a repository for a Real-Time Chat Messaging: Next.js 13, React, Tailwind, Prisma, MongoDB, NextAuth, Pusher.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages