Skip to content

A modern, feature-rich real-time communication platform built with React, TypeScript, and Firebase

Notifications You must be signed in to change notification settings

bouzayenilyes/whoxa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WHOXA πŸš€

A modern, feature-rich real-time communication platform built with React, TypeScript, and Firebase

License: MIT TypeScript React Firebase

πŸ“± Overview

WHOXA is a comprehensive real-time communication platform that brings together the best features of modern messaging applications. Built with cutting-edge technologies, it offers seamless messaging, high-quality video calls, group conversations, status updates, and much more.

✨ Key Features

πŸ’¬ Real-time Messaging

  • Instant messaging with real-time delivery
  • Message reactions and emoji support
  • Message forwarding and replying
  • Starred messages for easy access
  • Message search functionality
  • File and media sharing (images, videos, documents)

πŸ“ž Video Calling

  • High-quality peer-to-peer video calls
  • Group video calls support
  • Screen sharing capabilities
  • Call recording (planned)
  • Call history tracking

πŸ‘₯ Group Management

  • Create and manage group chats
  • Group admin controls
  • Add/remove members functionality
  • Group settings and permissions
  • Public group discovery

πŸ“Έ Status Updates

  • WhatsApp-style status stories
  • View status updates from contacts
  • Story replies and interactions
  • Privacy controls for status visibility

πŸ—ΊοΈ Location & Sharing

  • Real-time location sharing
  • Interactive maps integration
  • Contact sharing functionality
  • File compression and optimization

🎯 Interactive Features

  • Polls and voting system
  • Message pinning
  • User blocking and reporting
  • Multi-language support
  • Dark/light theme toggle

πŸ”’ Security & Privacy

  • Firebase Authentication
  • Secure message encryption
  • User privacy controls
  • Admin moderation tools

πŸ—οΈ Architecture

whoxa/
β”œβ”€β”€ whoxa_frontend/     # React web application
β”œβ”€β”€ whoxa_backend/      # Backend API services
└── whoxa_admin/        # Admin dashboard

πŸ› οΈ Technology Stack

Frontend

  • React 18 - Modern UI library
  • TypeScript - Type-safe development
  • Vite - Fast build tool and dev server
  • Tailwind CSS - Utility-first CSS framework
  • Redux Toolkit - State management
  • Socket.IO - Real-time communication
  • Firebase - Authentication and backend services

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • Socket.IO - Real-time WebSocket communication
  • Firebase Admin - Backend services

Key Libraries

  • PeerJS - Peer-to-peer connections for video calls
  • mediasoup-client - WebRTC media server
  • Google Maps API - Location services
  • FFmpeg - Video processing
  • React Query - Server state management

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Firebase project setup
  • Google Maps API key

Installation

  1. Clone the repository

    git clone https://github.com/bouzayenilyes/whoxa.git
    cd whoxa
  2. Install dependencies

    # Frontend
    cd whoxa_frontend
    npm install
    
    # Backend
    cd ../whoxa_backend
    npm install
    
    # Admin
    cd ../whoxa_admin
    npm install
  3. Environment Setup

    Create .env files in each directory:

    Frontend (.env)

    VITE_FIREBASE_API_KEY=your_firebase_api_key
    VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
    VITE_FIREBASE_PROJECT_ID=your_project_id
    VITE_GOOGLE_MAPS_API_KEY=your_google_maps_key
  4. Start the development servers

    # Terminal 1 - Frontend
    cd whoxa_frontend && npm run dev
    
    # Terminal 2 - Backend
    cd whoxa_backend && npm start
    
    # Terminal 3 - Admin
    cd whoxa_admin && npm run dev

πŸ“¦ Project Structure

whoxa_frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”œβ”€β”€ pages/              # Main application pages
β”‚   β”‚   β”œβ”€β”€ Home/           # Main chat interface
β”‚   β”‚   β”œβ”€β”€ Register/       # Authentication pages
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ store/              # Redux state management
β”‚   β”‚   β”œβ”€β”€ api/            # API calls and queries
β”‚   β”‚   └── slices/         # Redux slices
β”‚   β”œβ”€β”€ utils/              # Utility functions
β”‚   β”œβ”€β”€ types/              # TypeScript type definitions
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   └── socket/             # WebSocket handlers
β”œβ”€β”€ public/                 # Static assets
└── ...

🎯 Core Components

Message Management

  • Real-time message delivery via WebSocket
  • Message status indicators (sent, delivered, read)
  • File upload and media handling
  • Message encryption and security

Video Calling System

  • Peer-to-peer connection setup
  • Media stream management
  • Call controls (mute, camera, end call)
  • Multi-participant support

User Interface

  • Responsive design for all screen sizes
  • Dark/light theme support
  • Multi-language localization
  • Accessibility features

πŸ”§ Configuration

Firebase Setup

  1. Create a new Firebase project
  2. Enable Authentication (Email, Google, Phone)
  3. Configure Firestore Database
  4. Set up Storage buckets
  5. Enable Cloud Functions (optional)

Google Maps Integration

  1. Get a Google Maps API key
  2. Enable Maps JavaScript API
  3. Enable Places API
  4. Configure billing account

πŸ“± Mobile Responsiveness

WHOXA is fully responsive and works seamlessly across:

  • πŸ“± Mobile devices (iOS/Android)
  • πŸ’» Desktop computers
  • πŸ“Ÿ Tablets
  • 🌐 Web browsers

πŸ” Security Features

  • End-to-end encryption for messages (planned)
  • Firebase Security Rules for data protection
  • User authentication with multiple providers
  • Input validation and sanitization
  • Rate limiting for API endpoints
  • Admin moderation tools

🌍 Internationalization

Currently supports:

  • πŸ‡¬πŸ‡§ English
  • πŸ‡«πŸ‡· French
  • πŸ‡ΈπŸ‡¦ Arabic
  • πŸ‡©πŸ‡ͺ German
  • And more languages coming soon...

πŸš€ Deployment

Frontend (Vercel/Netlify)

cd whoxa_frontend
npm run build
# Deploy the dist folder

Backend (Railway/Heroku)

cd whoxa_backend
npm run build
# Deploy using your preferred platform

πŸ§ͺ Testing

# Run frontend tests
cd whoxa_frontend
npm test

# Run backend tests
cd whoxa_backend
npm test

πŸ“Š Performance

  • ⚑ Fast loading with Vite bundling
  • πŸ”„ Real-time updates via WebSocket
  • πŸ“± Optimized for mobile with lazy loading
  • 🎨 Smooth animations with React Spring
  • πŸ“¦ Code splitting for optimal bundle sizes

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a 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 licensed under the MIT License - see the LICENSE file for details.

πŸ‘¨β€πŸ’» Author

Bouzayen Ilyes

πŸ™ Acknowledgments

πŸ“ž Support

If you have any questions or need help, feel free to:

πŸ—ΊοΈ Roadmap

Phase 1 (Current)

  • βœ… Real-time messaging
  • βœ… Video calling
  • βœ… Group chats
  • βœ… Status updates

Phase 2 (Planned)

  • πŸ”² Voice messages
  • πŸ”² Message encryption
  • πŸ”² Desktop application
  • πŸ”² Bot integration

Phase 3 (Future)

  • πŸ”² Video/Audio filters
  • πŸ”² AI-powered features
  • πŸ”² Cloud storage
  • πŸ”² Enterprise features

Made with ❀️ by Bouzayen Ilyes

⭐ Star this repo if you find it useful!

Releases

No releases published

Packages

No packages published

Languages