Chitchat Node.js Application

Welcome to Chitchat - Modern Real-time Messaging Platform

Welcome to Chitchat, a comprehensive real-time messaging platform built with modern web technologies. Chitchat delivers a modern, full-featured messaging experience with powerful features for seamless communication, media sharing, and social connectivity.

Our Node.js-powered application delivers lightning-fast performance, real-time messaging capabilities, and a rich user experience that scales beautifully across all devices. Whether you're building a personal chat application or an enterprise communication solution, Chitchat provides the robust foundation you need.

🚀 Technologies Stack

Chitchat is built using cutting-edge technologies to ensure optimal performance, scalability, and maintainability:

Backend Technologies

Node.js Express.js Socket.io WebRTC

Powerful server-side technologies for real-time communication

Database & Storage

MySQL Multer

Reliable data persistence and file storage solutions

Frontend Technologies

EJS Bootstrap 5 JavaScript ES6+

Modern frontend stack for responsive user interfaces

✨ Key Features Overview

Chitchat comes packed with features that rival the most popular messaging platforms:

📋 Prerequisites

Before setting up Chitchat, ensure you have basic knowledge of:

📖 Documentation Structure

This documentation is organized into comprehensive sections:

  1. Project Setup - Installation and configuration for all operating systems
  2. Deployment - Server deployment and production setup
  3. Core Features - Essential messaging and communication features
  4. Advanced Features - Extended functionality and integrations
  5. Customization - Theming, styling, and personalization options
  6. Security & Privacy - Security features and privacy controls

Setting up Chitchat is straightforward and works seamlessly across different operating systems. This section provides detailed installation instructions for Ubuntu, macOS, and Windows.

📦 System Requirements

🐧 Ubuntu/Linux Installation

Step 1: Update System Packages

sudo apt update && sudo apt upgrade -y
Real-time messaging screenshot

Step 2: Install Node.js (Latest LTS)

# Install Node.js using NodeSource repository (Latest LTS)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

# Verify installation
node --version
npm --version
Real-time messaging screenshot

Step 3: Install MySQL Server

# Install MySQL
sudo apt install mysql-server -y

# Secure MySQL installation
sudo mysql_secure_installation

# Start MySQL service
sudo systemctl start mysql
sudo systemctl enable mysql
Real-time messaging screenshot

Step 4: Install Git and Development Tools

sudo apt install git curl wget -y
Real-time messaging screenshot

🍎 macOS Installation

Step 1: Install Homebrew (if not already installed)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Real-time messaging screenshot

Step 2: Install Node.js

# Install Node.js via Homebrew
brew install node

# Verify installation
node --version
npm --version

Step 3: Install MySQL

# Install MySQL via Homebrew
brew install mysql

# Start MySQL service
brew services start mysql

# Secure MySQL installation
mysql_secure_installation
Real-time messaging screenshot

🪟 Windows Installation

Step 1: Download and Install Node.js (Latest LTS)

  1. Visit nodejs.org
  2. Download the LTS version for Windows
  3. Run the installer and follow the setup wizard
  4. Ensure "Add to PATH" is checked during installation

Step 2: Install MySQL (Latest GA)

  1. Download MySQL Community Server from MySQL official site
  2. Run the MySQL installer
  3. Choose "Developer Default" setup type
  4. Configure MySQL Server with a root password
  5. Start MySQL as a Windows Service

Step 3: Verify Installation

# Open Command Prompt or PowerShell and run:
node --version
npm --version
mysql --version
Real-time messaging screenshot

📥 Project Installation

Step 1: Download from CodeCanyon and Extract

# After purchasing, download the ZIP from CodeCanyon
# Extract the ZIP; you will see the 'chitchat-nodejs' folder
unzip chitchat-nodejs.zip
cd chitchat-nodejs

Step 2: Database Setup

# Login to MySQL
mysql -u root -p

# Create database
CREATE DATABASE chitchat;

# Exit MySQL
exit;
Database Setup

Step 3: Environment Configuration

Create a .env file in the root directory with the following configuration (sample):

APP_NAME=Chitchat
APP_PORT=3000

BASE_PATH=/
ASSETS_PATH=/assets

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=chitchat
DB_DIALECT=mysql

# For create default admin then you can remove it
ADMIN_NAME=Admin
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=123456789

Step 4: Install Dependencies

npm install
Database Setup

Step 5: Install Development Tools

# Install nodemon globally for development
npm install -g nodemon

# Install additional development dependencies
npm install --save-dev

# Seeder
npx sequelize-cli db:seed:all
Database Setup

Step 6: Start the Application

# For development (with auto-restart)
nodemon app.js

# For production
npm start
# or
node app.js
Database Setup

Local URLs

✅ Successful Installation Dashboard

🎉 Congratulations! Your Chitchat application should now be running at http://localhost:3000

Installation

1: Open chitchat-fronend-and-admin-nodejs directory that you downloaded from CodeCanyon.

Real-time messaging screenshot

2: Add the required database credentials in .env file.

step-2

- Add values to the below keys in the .env file

step-2

3: Install Required Dependencies:

- In the chitchat-fronend-and-admin-nodejs folder, run following command in the terminal to install the required dependencies.

npm install
Database Setup

4: Run Chitchat API:

- Once you've finished all the previous steps, you can run Application by adding following command.

# For development (with auto-restart)
nodemon app.js

# For production
npm start
# or
node app.js
                    
Database Setup

5: Run chitchat Installation Wizard:

- After starting the server, open the current running server URL (http://127.0.0.1:3000) in your web browser, and the chitchat installation wizard will automatically appear.

Database Setup

- Step 1: Before you proceed to the next step, make sure that the specified Node extensions are installed on your system.

Database Setup

- Step 2: Before using the Chitchat, it's important to verify your Envato purchase license code.

- Enter in your Envato username and the chitchat purchase code and click next button.

- If you don't know where to find your purchase code, click here: where is my purchase code

Note: Once a license is verified, it can't be used for another project. An Envato Purchase License can only be verified on one domain at time.


database configuration

- Step 3: Once the license has been verified, proceed to the database configuration step.

- Enter the essential MySQL database credentials to connect NodeJs to the MySQL database such as a database host, username, password, and database name.

- Enter the administration details as well. Once done, click the "Next" button to proceed.

Note: After entering the required information and clicking "Next," the database setup will start. It might take around 5 to 10 minutes, so please wait patiently.

Success

- Step 4: Once all steps are finished, Congratulations! ChitChat has been successfully installed and configured on your system! 🎉

Deploying Chitchat to a production server ensures your messaging platform is accessible to users worldwide. This section covers deployment strategies for various hosting platforms and server configurations.

☁️ Server Requirements

🖥️ VPS/Dedicated Server Deployment

Step 1: Server Setup

# Update server packages
sudo apt update && sudo apt upgrade -y

# Install essential tools
sudo apt install curl wget git unzip -y
Database Setup

Step 2: Install Node.js on Server

# Install Node.js using NodeSource
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

# Verify installation
node --version
npm --version
Database Setup

Step 3: Install MySQL on Server

# Install MySQL Server
sudo apt install mysql-server -y

# Secure MySQL installation
sudo mysql_secure_installation

# Configure MySQL for remote access (if needed)
sudo ufw allow mysql
Database Setup

Step 4: Deploy Application

# Clone your repository
git clone https://github.com/your-username/chitchat-nodejs.git
cd chitchat-nodejs

# Install production dependencies
npm install --production

# Seeder
npx sequelize-cli db:seed:all

# Set up environment variables
cp .env.example .env
nano .env  # Edit with production values

Step 5: Process Management with PM2

# Install PM2 globally
sudo npm install -g pm2

# Start application with PM2
pm2 start app.js --name chitchat

# Save PM2 configuration
pm2 save

# Set PM2 to start on boot
pm2 startup
Database Setup

Step 6: Nginx Reverse Proxy (Recommended)

# Install Nginx
sudo apt install nginx -y

# Create Nginx configuration
sudo nano /etc/nginx/sites-available/chitchat

# Add configuration:
server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# Enable site
sudo ln -s /etc/nginx/sites-available/chitchat /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

🔒 SSL Certificate Setup

# Install Certbot
sudo apt install certbot python3-certbot-nginx -y

# Obtain SSL certificate
sudo certbot --nginx -d your-domain.com

# Auto-renewal setup
sudo crontab -e
# Add: 0 12 * * * /usr/bin/certbot renew --quiet
Database Setup

☁️ Cloud Platform Deployment

Chitchat can be easily deployed on popular cloud platforms:

Heroku

Simple git-based deployment with add-ons for MySQL

DigitalOcean

Droplets with one-click Node.js setup and managed databases

AWS EC2

Scalable cloud computing with RDS for MySQL

Deployment URLs:

Chitchat's core features provide the foundation for modern messaging experiences. Built with real-time communication at its heart, these features ensure seamless interaction between users across all devices.

📱 Real-time Messaging

Experience instant message delivery with our WebSocket-powered real-time messaging system. Messages are delivered instantly with read receipts, typing indicators, and delivery confirmations.

👥 User Management

Comprehensive user management system with profile customization, status updates, and privacy controls.

💾 Data Persistence

All your conversations, media, and settings are securely stored in MySQL database with automatic backups and data synchronization across devices.

Chitchat offers a comprehensive set of messaging features designed to be intuitive and feature-rich.

😊 Message Reactions

Express your emotions instantly with message reactions. Choose from a wide variety of emojis to react to messages without sending a separate reply.

📋 Copy & Reply Functions

Efficient message management with copy, reply, and forward capabilities for seamless communication flow.

📝 Message Management

Complete control over your messages with editing, deletion, and organization features.

🔍 Search Functionality

Powerful search capabilities to find messages, contacts, and media across your entire chat history.

📂 Chat Organization

Keep your chats organized with archiving, pinning, and categorization features.

Chitchat provides comprehensive communication tools including high-quality audio and video calls, making it a complete communication platform for personal and professional use.

🎵 Audio Calling

Crystal-clear audio calls with advanced features for seamless voice communication.

📹 Video Calling

Face-to-face communication with HD video calls, screen sharing, and interactive features.

📊 Call Management

Comprehensive call management with history tracking, statistics, and contact integration.

💬 Recent Chats

Smart chat organization with recent conversations, unread indicators, and quick access to active chats.

Build and manage your social network with Chitchat's comprehensive friend management system. Connect with friends, manage contacts, and build meaningful relationships.

🔍 Find Friends

Discover and connect with friends using multiple search methods and recommendation systems.

📨 Friend Requests

Secure friend request system with approval workflows and privacy controls.

👥 Contact Management

Organize and manage your contacts with advanced sorting, grouping, and interaction features.

Share memories, documents, and media effortlessly with Chitchat's advanced media sharing capabilities. Support for multiple file types, drag-and-drop functionality, and cloud integration.

📸 Image Sharing

Share photos instantly with gallery management.

🎬 Video Sharing

Share videos with playback.

📄 Document Sharing

Share documents, PDFs, presentations, and files.

🖱️ Drag & Drop Upload

Intuitive drag-and-drop interface for effortless file sharing and media upload.

☁️ Google Drive Integration

Seamless integration with Google Drive for enhanced file sharing and backup capabilities.

Chitchat's advanced features provide professional-grade functionality for power users and organizations requiring sophisticated communication tools.

📜 Load Previous Messages

Efficient message loading with pagination and a Load Previous Messages button for optimal performance.

😫 Blocking & Privacy

Comprehensive privacy controls and blocking features to maintain a safe communication environment.

📁 Archive Management

Organize your conversations with powerful archiving features and bulk management tools.

💾 Chat Export & Backup

Comprehensive backup and export features to protect your data and enable migration.

⌨️ Typing Indicators

Real-time typing indicators provide immediate feedback about ongoing conversations.

Personalize your Chitchat experience with extensive customization options, themes, and layout configurations. Make Chitchat truly yours with our comprehensive theming system.

🌓 Dark & Light Themes

Switch between beautiful dark and light themes.

🖼️ Wallpapers & Backgrounds

Customize your chat backgrounds with a variety of wallpapers and the ability to use your own images.

🎛️ Layout Customization

Adapt the interface to your workflow with flexible layout options and component positioning.

🎨 Color Schemes

Choose from multiple pre-designed color schemes or create your own custom color palette.

Available color schemes include:

Ocean Blue
#1c9dea

Calm and professional

Sunset Orange
#ff4c3b

Vibrant and energetic

Forest Green
#3fdda7

Natural and soothing

Golden Yellow
#f0b54d

Warm and friendly

Coral Red
#e4604a

Bold and expressive

Purple Gradient
#8b5cf6

Modern and stylish

Your privacy and security are our top priorities. Chitchat implements industry-standard security measures and provides comprehensive privacy controls to protect your communications.

🛡️ Security Features

Multi-layered security approach with encryption, authentication, and access controls.

👁️ Privacy Controls

Granular privacy settings to control who can see your information and contact you.

Common issues and their solutions to help you get the most out of your Chitchat experience.

❗ Common Issues

Database Connection Issues

# Check MySQL service status
sudo systemctl status mysql

# Restart MySQL if needed
sudo systemctl restart mysql

# Verify database credentials in .env file
# Ensure database exists and user has proper permissions

Port Already in Use

# Find process using port 3000
sudo lsof -i :3000

# Kill the process
sudo kill -9 [PID]

# Or use a different port in .env file
PORT=3001

File Upload Issues

📞 Support & Community

Get help and connect with the Chitchat community:

🚀 Performance Optimization

Tips for optimizing your Chitchat installation:

🔄 Updates & Maintenance

Keep your Chitchat installation secure and up-to-date:

# Update application
git pull origin main
npm install
pm2 restart chitchat

# Update Node.js dependencies
npm update

Version 1.0 - Initial Release

Released: November 2025

Initial release with core messaging functionality and basic features


Version 2.0 – Update Release

Released: December 2025

– Added Group features (Create, Edit, Update, Assign Admin, Assign Member)

– Added audio/video calling for group participants to join

– Added end-to-end encryption support for text, audio, and video calls

– Minor issues fixed and performance improvements

Thank you for choosing Chitchat! 🎉

We're thrilled that you've chosen Chitchat for your messaging platform needs. Your trust in our product motivates us to continuously improve and add new features.

🌟 What's Next?

📞 Get Support

If you need help or have questions:

⭐ Rate & Review

If you love Chitchat, please consider rating and reviewing our project. Your feedback helps us grow and improve the platform for everyone.

Best Regards,
The Chitchat Development Team 💙