Skip to content

Sync is a real-time messaging chat application designed for developers, featuring real-time messaging, friend requests, and Google authentication.

Notifications You must be signed in to change notification settings

KrishDave1/Sync

Repository files navigation

Sync - Realtime Messaging Chat Application

Built with the tools and technologies:

npm PostCSS JavaScript sharp React Docker
TypeScript Zod ESLint Axios Pusher datefns


Introduction

Sync is a real-time messaging chat application designed for developers. It offers a seamless and responsive user experience with features like real-time messaging, friend requests, and Google authentication. The application is built using modern technologies such as TypeScript, Tailwind CSS, and Next.js, ensuring high performance and scalability.

Website Link

Sync Application

Table of Contents

Features

  • Realtime messaging

  • Adding friends and sending friend requests via email

  • Performant database queries with Redis

  • Responsive UI with complete mobile responsiveness built with TailwindCSS

  • Protection of sensitive routes using middleware

  • Google authentication using OAuth2.0

  • Built with TypeScript, Tailwind CSS

  • Icons from Lucide

  • Class merging with tailwind-merge

  • Conditional classes with clsx

  • Variants with class-variance-authority

Technologies Used

  • Frontend: React, Next.js, Tailwind CSS
  • Backend: Node.js, Next.js API routes
  • Database: Redis (Upstash)
  • Authentication: NextAuth.js with Google OAuth2.0
  • Real-time Communication: Pusher
  • Icons: Lucide
  • Utilities: clsx, tailwind-merge, class-variance-authority

Installation

Running the Project Without Docker

  1. Clone the Repository:

    git clone https://github.com/KrishDave1/Sync.git
    cd Sync
  2. Install Dependencies:

    npm install
  3. Run the Development Server:

    npm run dev

    The application will be available at http://localhost:3000.

  4. Build and Start for Production:

    npm run build
    npm start

Running the Project with Docker

  1. Build the Docker Image (if needed):

    docker build -t sync .
  2. Run the Docker Container:

    docker run -p 3000:3000 --name sync-container sync
  3. Stop the Docker Container:

    docker stop sync-container
  4. Remove the Docker Container (optional):

    docker rm sync-container

Running the Project Using Docker Hub Image

  1. Pull the Image from Docker Hub:

    docker pull krishd01/sync
  2. Run the Container:

    docker run -p 3000:3000 --name sync-container krishd01/sync
  3. Stop and Remove the Container:

    docker stop sync-container
    docker rm sync-container

Usage

  1. Sign In: Use Google authentication to sign in.
  2. Add Friends: Send friend requests via email.
  3. Chat: Start real-time messaging with your friends.
  4. Responsive Design: Use the application on any device with a responsive UI.

Screenshots

Login Page Dashboard Chat

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure that your code follows the project's coding standards and includes appropriate tests.

Contact

If you have any feedback or questions, please reach out to me at krish.dave@iiitb.ac.in.

License

This project is licensed under the MIT License.

About

Sync is a real-time messaging chat application designed for developers, featuring real-time messaging, friend requests, and Google authentication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published