Skip to content

r-mayyank/chatterz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฌ Chatterz

Next.js Socket.io TypeScript Tailwind CSS Express.js

๐Ÿš€ Real-time chat application with temporary rooms

A modern, responsive chat app built with Next.js and Socket.IO featuring temporary rooms that expire when all users leave.

โœจ Features

  • ๐Ÿ  Create Temporary Rooms - Generate unique room codes instantly
  • ๐Ÿ‘ฅ Real-time Messaging - Send and receive messages instantly
  • ๐Ÿ”’ Room-based Chat - Private conversations in dedicated rooms
  • ๐Ÿ“ฑ Responsive Design - Beautiful UI that works on all devices
  • โšก Auto-cleanup - Rooms automatically expire when empty
  • ๐ŸŽจ Modern UI - Clean, intuitive interface with Tailwind CSS
  • ๐Ÿ”„ Live User Count - See how many users are in your room
  • ๐Ÿ“‹ Easy Sharing - Copy room codes to clipboard
  • ๐ŸŒ™ Theme Support - Built-in dark/light theme switching

๐ŸŒŸ Future Features Planning

  • Setting room to public and private, and showing public rooms on dashboard
  • User joining message in group
  • Displaying all users in group in option to private message
  • Replying to messages
  • Attachments
  • Voice messages
  • May bring voice and video call

๐Ÿ› ๏ธ Tech Stack

Frontend

Backend

Development Tools

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm 10+

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/chatterz.git
    cd chatterz
  2. Install dependencies

    npm install
  3. Start the development servers

    npm run dev
  4. Open your browser

๐Ÿ“ Project Structure

chatterz/
โ”œโ”€โ”€ ๐Ÿ“ apps/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ client/          # Next.js frontend application
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ app/         # App Router pages and layouts
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“ components/  # Reusable UI components
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ public/      # Static assets
โ”‚   โ””โ”€โ”€ ๐Ÿ“ server/          # Express.js backend server
โ”œโ”€โ”€ ๐Ÿ“ packages/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ eslint-config/   # Shared ESLint configuration
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ typescript-config/ # Shared TypeScript configuration
โ”‚   โ””โ”€โ”€ ๐Ÿ“ ui/              # Shared UI component library
โ”œโ”€โ”€ ๐Ÿ“„ package.json         # Root package configuration
โ”œโ”€โ”€ ๐Ÿ“„ turbo.json          # Turbo build configuration
โ””โ”€โ”€ ๐Ÿ“„ README.md           # Project documentation

๐ŸŽฎ How to Use

Creating a Room

  1. Click "Create New Room"
  2. Copy the generated room code
  3. Share the code with friends

Joining a Room

  1. Enter your name
  2. Enter the room code
  3. Click "Join Room"
  4. Start chatting!

Features in Action

  • Real-time messaging with instant delivery
  • User count updates live as people join/leave
  • Message history loads when joining existing rooms
  • Auto-scroll to latest messages
  • Responsive design works on mobile and desktop

๐Ÿ”ง Available Scripts

In the project root:

  • npm run dev - Start both client and server in development mode
  • npm run build - Build the entire project
  • npm run lint - Run ESLint across all packages
  • npm run check-types - Run TypeScript type checking
  • npm run format - Format code with Prettier

๐Ÿ—๏ธ Architecture

Real-time Communication

  • Socket.IO handles bidirectional communication
  • Room-based messaging with automatic cleanup
  • Event-driven architecture for scalability

State Management

  • React hooks for local state
  • Socket events for real-time updates
  • TypeScript interfaces for type safety

Styling

  • Tailwind CSS for utility-first styling
  • Radix UI for accessible components
  • Responsive design with mobile-first approach

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

This project is open source and available under the MIT License.

๐Ÿ™ Acknowledgments

  • Built with โค๏ธ using modern web technologies
  • Icons by Lucide
  • UI components inspired by shadcn/ui

About

real-time chatting app with temporary rooms that expires after all users exit (demo of socket.io)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •