Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌌 Nebula Chat Service

Live Demo: https://chat-feature-pi.vercel.app/

Nebula is a modern, real-time messaging service built with React and Firebase Realtime Database. It features a high-end "Glassmorphism" UI, dynamic group creation, and instant cloud synchronization.

✨ Features

  • Secure Group Isolation: Users enter a specific Room ID to join private communication channels.
  • Real-time Synchronization: Powered by Firebase listeners for sub-second message delivery.
  • Modern Glass UI: A premium dark-mode aesthetic using CSS backdrop-filters and gradients.
  • Responsive Design: Optimized for desktop, tablet, and mobile browsers.
  • Auto-Scroll Engine: Smart message container that follows the latest conversation.

🚀 Tech Stack

  • Frontend: React.js (Hooks & Functional Components)
  • Backend: Firebase Realtime Database (Serverless)
  • Styling: Modern CSS3 (Flexbox, Glassmorphism, Keyframe Animations)
  • Deployment: Vercel / Firebase Hosting

🛠️ Installation & Setup

  1. Clone the repository

    git clone [https://github.com/yourusername/nebula-chat.git](https://github.com/yourusername/nebula-chat.git)
    cd nebula-chat
  2. Install dependencies

    npm install
  3. Firebase Configuration Create a firebase.js file in the src directory and add your credentials:

    // src/firebase.js
    import { initializeApp } from "firebase/app";
    import { getDatabase } from "firebase/database";
    
    const firebaseConfig = {
      apiKey: "YOUR_API_KEY",
      authDomain: "YOUR_PROJECT.firebaseapp.com",
      databaseURL: "https://YOUR_PROJECT.firebaseio.com",
      projectId: "YOUR_PROJECT",
      storageBucket: "YOUR_PROJECT.appspot.com",
      messagingSenderId: "YOUR_ID",
      appId: "YOUR_APP_ID"
    };
    
    const app = initializeApp(firebaseConfig);
    export const db = getDatabase(app);
  4. Run the application

    npm start

🔐 Database Rules

To protect your service, ensure your Firebase Realtime Database rules are configured to support group-based paths:

{
  "rules": {
    "groups": {
      "$roomID": {
        ".read": "true",
        ".write": "true",
        "$messageID": {
          ".validate": "newData.hasChildren(['author', 'message', 'time'])"
        }
      }
    }
  }
}

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages