Skip to content

pranav291/ghost-messenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ‘ป Ghost Messenger

Privacy-First โ€ข Open Source โ€ข Next Generation Messaging

Version Release License Platform

Telegram GitHub

Kotlin Compose Ktor MongoDB WebSocket


โš ๏ธ WORK IN PROGRESS - This project is under active development. Features may change, and some functionality might not be fully implemented yet. We welcome contributions and feedback!


๐Ÿ“– Table of Contents


๐ŸŒŸ About Ghost Messenger

Ghost Messenger Logo

Ghost Messenger is a revolutionary, privacy-focused messaging application that puts user security and data protection at the forefront. Built from the ground up with modern technologies, Ghost Messenger offers a unique "Ghost Mode" feature that allows messages to disappear after a set time, ensuring your conversations remain truly private.

In an era where digital privacy is increasingly compromised, Ghost Messenger stands as a beacon of hope for users who value their personal data. Unlike mainstream messaging apps that harvest user data for advertising, Ghost Messenger is committed to a privacy-first approach with end-to-end encryption and zero data collection policies.

Why Ghost Messenger?

Problem Our Solution
Messages stored forever on servers Ghost Mode - Messages auto-delete after set time
Companies selling your data Zero data collection - We don't track you
Complex, bloated apps Clean, minimal UI - Focus on what matters
Closed source, no transparency Open source - Audit our code yourself
No control over your data Full user control - Delete anything, anytime

๐ŸŽฏ Vision & Mission

Our Vision

To create a world where digital communication is truly private, secure, and under the complete control of users - not corporations.

Our Mission

  • Democratize Privacy: Make enterprise-grade security accessible to everyone
  • Empower Users: Give complete control over personal data and conversations
  • Foster Trust: Build transparent, open-source software that users can verify
  • Innovate Responsibly: Push the boundaries of messaging technology while respecting user privacy

Core Values

  1. Privacy First - Every feature is designed with privacy as the primary consideration
  2. Transparency - Open source code, clear policies, no hidden agendas
  3. User Empowerment - You own your data, you control your experience
  4. Security by Design - Not an afterthought, but the foundation
  5. Simplicity - Powerful features wrapped in an intuitive interface

โœจ Key Features

๐Ÿ’ฌ Core Messaging

Real-time Communication

  • Instant message delivery via WebSocket
  • Typing indicators show when contacts are composing
  • Read receipts with blue double-tick
  • Online/offline status indicators
  • Message delivery confirmation

Rich Media Support

  • Share images, videos, and documents
  • Voice message recording and playback
  • Location sharing with map preview
  • Contact card sharing
  • File attachments up to 100MB

๐Ÿ‘ป Ghost Mode (Signature Feature)

Ghost Mode Demo

Ghost Mode is what sets us apart. Enable it on any conversation to make messages automatically disappear:

Duration Use Case
5 minutes Quick, sensitive information
1 hour Time-sensitive discussions
24 hours Daily conversations
7 days Extended but temporary chats
Custom Set your own duration

Additional Ghost Mode Features:

  • ๐Ÿ”” Screenshot detection alerts
  • ๐Ÿšซ Forward prevention option
  • ๐Ÿ‘๏ธ View-once media
  • ๐Ÿ”’ No server-side message storage

๐Ÿ“ž Voice & Video Calls

Feature Description
HD Voice Calls Crystal clear audio with noise cancellation
Video Calls Up to 1080p video quality
Group Calls Up to 8 participants
Call Recording Record important calls (with consent)
Screen Sharing Share your screen during video calls

๐Ÿ” Smart Search

  • Global Search: Find messages, contacts, and media across all chats
  • In-Chat Search: Search within specific conversations
  • Filter by Type: Images, videos, documents, links
  • Date Range: Find messages from specific time periods

๐Ÿ“ข Channels & Groups

Channels - Broadcast to unlimited subscribers

  • Public or private channels
  • Admin-only posting option
  • Subscriber analytics
  • Scheduled posts

Groups - Collaborate with up to 200,000 members

  • Multiple admin levels
  • Polls and surveys
  • Pinned messages
  • Slow mode option

๐Ÿ—๏ธ Architecture

Ghost Messenger follows a clean, modular architecture designed for scalability, maintainability, and testability.

System Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                           GHOST MESSENGER ECOSYSTEM                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚                        ANDROID APPLICATION                           โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                    PRESENTATION LAYER                          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚ Screens โ”‚  โ”‚ViewModelsโ”‚  โ”‚  State  โ”‚  โ”‚   UI    โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚(Compose)โ”‚  โ”‚  (MVVM) โ”‚  โ”‚  Flows  โ”‚  โ”‚ Events  โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                      DOMAIN LAYER                              โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚Use Casesโ”‚  โ”‚Repositoriesโ”‚ โ”‚ Models โ”‚  โ”‚Interfacesโ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                       DATA LAYER                               โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  Room   โ”‚  โ”‚ Retrofitโ”‚  โ”‚WebSocketโ”‚  โ”‚DataStoreโ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚   DB    โ”‚  โ”‚   API   โ”‚  โ”‚ Client  โ”‚  โ”‚  Prefs  โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                                     โ”‚                                        โ”‚
โ”‚                                     โ–ผ                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚                         KTOR BACKEND SERVER                          โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                      API LAYER (REST)                          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  Auth   โ”‚  โ”‚ Message โ”‚  โ”‚  Call   โ”‚  โ”‚ Channel โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚ Routes  โ”‚  โ”‚ Routes  โ”‚  โ”‚ Routes  โ”‚  โ”‚ Routes  โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                   REAL-TIME LAYER (WebSocket)                  โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  Chat   โ”‚  โ”‚ Typing  โ”‚  โ”‚ Online  โ”‚  โ”‚  Call   โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚ Server  โ”‚  โ”‚ Events  โ”‚  โ”‚ Status  โ”‚  โ”‚Signalingโ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚                     DATA LAYER                                 โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚ MongoDB โ”‚  โ”‚   S3    โ”‚  โ”‚  Redis  โ”‚  โ”‚   FCM   โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ”‚Database โ”‚  โ”‚ Storage โ”‚  โ”‚  Cache  โ”‚  โ”‚  Push   โ”‚          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚  โ”‚    โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                                                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ Tech Stack

Android Application

Technology Purpose Why We Chose It
Kotlin Primary Language Modern, concise, null-safe, officially supported by Google
Jetpack Compose UI Framework Declarative UI, less boilerplate, better performance
Hilt Dependency Injection Official DI solution, compile-time verification
Room Local Database Type-safe SQLite abstraction, LiveData/Flow support
Retrofit HTTP Client Industry standard, type-safe, easy to use
OkHttp WebSocket Client Reliable, efficient, great interceptor support
DataStore Preferences Modern replacement for SharedPreferences
Coil Image Loading Kotlin-first, lightweight, Compose support
Navigation Compose Navigation Type-safe navigation, deep linking support

Backend Server

Technology Purpose Why We Chose It
Kotlin Primary Language Shared language with Android, coroutines support
Ktor Web Framework Lightweight, async, Kotlin-native
MongoDB Database Flexible schema, horizontal scaling, JSON-like documents
JWT Authentication Stateless, secure, industry standard
WebSocket Real-time Bi-directional, low latency communication
AWS S3 File Storage Scalable, reliable, cost-effective
Firebase FCM Push Notifications Reliable delivery, cross-platform

Development Tools

Tool Purpose
Android Studio IDE
IntelliJ IDEA Backend IDE
Git Version Control
GitHub Actions CI/CD
Docker Containerization
Postman API Testing

๐Ÿš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Android Studio Hedgehog (2023.1.1) or later
  • JDK 17 or higher
  • MongoDB 6.0+ (local or Atlas)
  • Kotlin 1.9+
  • Gradle 8.0+

Clone the Repository

git clone https://github.com/pranav291/ghost-messenger.git
cd ghost-messenger

Backend Setup

  1. Navigate to backend directory

    cd backend
  2. Configure environment variables Create src/main/resources/application.conf:

    ktor {
        deployment {
            port = 8080
        }
        application {
            modules = [ com.pranavajay.ApplicationKt.module ]
        }
    }
    
    mongodb {
        connectionString = "mongodb://localhost:27017"
        database = "ghost_messenger"
    }
    
    jwt {
        secret = "your-super-secret-key-min-32-chars"
        issuer = "ghost-messenger"
        audience = "ghost-users"
        realm = "Ghost Messenger"
    }
    
    aws {
        accessKey = "your-aws-access-key"
        secretKey = "your-aws-secret-key"
        region = "ap-south-1"
        bucket = "ghost-messenger-media"
    }
  3. Run the server

    ./gradlew run

    Server starts at http://localhost:8080

  4. Verify installation

    curl http://localhost:8080/health
    # Should return: OK

Android Setup

  1. Open in Android Studio

    • File โ†’ Open โ†’ Select the app folder
  2. Configure API URL Update app/src/main/java/.../di/AppModule.kt:

    // For emulator
    private const val BASE_URL = "http://10.0.2.2:8080/"
    
    // For physical device (replace with your IP)
    // private const val BASE_URL = "http://192.168.1.100:8080/"
  3. Build and Run

    ./gradlew assembleDebug

    Or use Android Studio's Run button (Shift+F10)


๐Ÿ“ก API Documentation

Base URL

Production: https://api.ghostmessenger.app/
Development: http://localhost:8080/

Authentication

All authenticated endpoints require a Bearer token in the Authorization header:

Authorization: Bearer <your-jwt-token>

Endpoints Overview

๐Ÿ” Authentication
Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login Login with email/password
POST /api/auth/verify-otp Verify OTP code
POST /api/auth/google Google OAuth login
POST /api/auth/refresh Refresh access token
POST /api/auth/logout Logout and invalidate token
๐Ÿ’ฌ Chats & Messages
Method Endpoint Description
GET /api/chats Get all user's chats
POST /api/chats Create new chat
GET /api/messages/{chatId} Get messages for chat
POST /api/messages Send message
POST /api/messages/forward Forward message
DELETE /api/messages/{id} Delete message
PUT /api/chats/{id}/ghost-mode Toggle ghost mode
PUT /api/chats/{id}/pin Pin/unpin chat
PUT /api/chats/{id}/archive Archive chat
๐Ÿ“ž Calls
Method Endpoint Description
POST /api/calls/initiate Start a call
POST /api/calls/{id}/accept Accept incoming call
POST /api/calls/{id}/decline Decline call
POST /api/calls/{id}/end End ongoing call
GET /api/calls/history Get call history
๐Ÿ“ข Channels
Method Endpoint Description
GET /api/channels Get subscribed channels
POST /api/channels Create channel
POST /api/channels/{id}/subscribe Subscribe to channel
POST /api/channels/{id}/unsubscribe Unsubscribe
GET /api/channels/search Search public channels
๐Ÿ“Š Status/Stories
Method Endpoint Description
GET /api/status/me Get my statuses
GET /api/status Get contacts' statuses
POST /api/status Create status
POST /api/status/{id}/view Mark as viewed
POST /api/status/{id}/react React to status
DELETE /api/status/{id} Delete status

WebSocket Events

Connect to: ws://localhost:8080/chat?token=<jwt-token>

Client โ†’ Server:

{ "type": "message", "data": { "chatId": "...", "content": "Hello!" } }
{ "type": "typing", "data": { "chatId": "...", "isTyping": true } }
{ "type": "read", "data": { "chatId": "...", "messageId": "..." } }

Server โ†’ Client:

{ "type": "message", "data": { "id": "...", "content": "...", ... } }
{ "type": "typing", "data": { "userId": "...", "isTyping": true } }
{ "type": "online_status", "data": { "userId": "...", "isOnline": true } }
{ "type": "incoming_call", "data": { "callId": "...", "callerId": "..." } }

๐Ÿ“… Development Timeline

The Journey So Far

2022 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ”œโ”€โ”€ Q1: ๐Ÿ’ก Concept & Research
     โ”‚        - Market research on messaging apps
     โ”‚        - Privacy concerns analysis
     โ”‚        - Initial concept development
     โ”‚        - Technology stack evaluation
     โ”‚
     โ”œโ”€โ”€ Q2: ๐Ÿ“ Planning & Design
     โ”‚        - UI/UX wireframes
     โ”‚        - Database schema design
     โ”‚        - API architecture planning
     โ”‚        - Security protocol research
     โ”‚
     โ”œโ”€โ”€ Q3: ๐Ÿ—๏ธ Foundation
     โ”‚        - Project setup
     โ”‚        - Basic authentication system
     โ”‚        - Database integration
     โ”‚        - Initial UI components
     โ”‚
     โ””โ”€โ”€ Q4: ๐Ÿ’ฌ Core Messaging
              - Real-time messaging via WebSocket
              - Message persistence
              - Basic chat UI
              - User profiles

2023 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ”œโ”€โ”€ Q1: ๐Ÿ‘ป Ghost Mode Development
     โ”‚        - Disappearing messages logic
     โ”‚        - Timer implementation
     โ”‚        - Screenshot detection research
     โ”‚        - Message expiry system
     โ”‚
     โ”œโ”€โ”€ Q2: ๐Ÿ“ž Voice & Video Calls
     โ”‚        - WebRTC integration
     โ”‚        - Call signaling server
     โ”‚        - Audio/video streaming
     โ”‚        - Call UI implementation
     โ”‚
     โ”œโ”€โ”€ Q3: ๐Ÿ“ข Groups & Channels
     โ”‚        - Group chat functionality
     โ”‚        - Channel broadcasting
     โ”‚        - Admin management
     โ”‚        - Member permissions
     โ”‚
     โ””โ”€โ”€ Q4: ๐Ÿ” Security Enhancements
              - End-to-end encryption
              - Biometric authentication
              - App lock feature
              - Security audit

2024 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ”œโ”€โ”€ Q1: ๐Ÿ“Š Status/Stories
     โ”‚        - 24-hour stories
     โ”‚        - Text/image/video status
     โ”‚        - Viewer analytics
     โ”‚        - Reactions system
     โ”‚
     โ”œโ”€โ”€ Q2: ๐Ÿ” Search & Discovery
     โ”‚        - Global search
     โ”‚        - Message search
     โ”‚        - User discovery
     โ”‚        - Channel discovery
     โ”‚
     โ”œโ”€โ”€ Q3: ๐ŸŽจ UI/UX Overhaul
     โ”‚        - Material Design 3
     โ”‚        - Dark/Light themes
     โ”‚        - Animations
     โ”‚        - Accessibility improvements
     โ”‚
     โ””โ”€โ”€ Q4: ๐Ÿงช Testing & Optimization
              - Unit testing
              - Integration testing
              - Performance optimization
              - Bug fixes

2025 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ”œโ”€โ”€ Q1: ๐Ÿ“ฑ Beta Release Preparation
     โ”‚        - Feature freeze
     โ”‚        - Beta testing program
     โ”‚        - User feedback collection
     โ”‚        - Critical bug fixes
     โ”‚
     โ”œโ”€โ”€ Q2: ๐ŸŒ Internationalization
     โ”‚        - Multi-language support
     โ”‚        - RTL layout support
     โ”‚        - Regional compliance
     โ”‚        - Localized content
     โ”‚
     โ”œโ”€โ”€ Q3: โ˜๏ธ Cloud Infrastructure
     โ”‚        - AWS deployment
     โ”‚        - Auto-scaling setup
     โ”‚        - CDN integration
     โ”‚        - Backup systems
     โ”‚
     โ””โ”€โ”€ Q4: ๐Ÿ”” Push Notifications
              - FCM integration
              - Notification channels
              - Silent notifications
              - Notification preferences

2026 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ”œโ”€โ”€ Q1: ๐Ÿ’พ Offline Mode
     โ”‚        - Local message caching
     โ”‚        - Offline message queue
     โ”‚        - Sync on reconnect
     โ”‚        - Conflict resolution
     โ”‚
     โ”œโ”€โ”€ Q2: ๐Ÿ“ค Backup & Restore
     โ”‚        - Cloud backup
     โ”‚        - Local backup
     โ”‚        - Encrypted backups
     โ”‚        - Cross-device restore
     โ”‚
     โ”œโ”€โ”€ Q3: ๐Ÿ–ฅ๏ธ Multi-Device Support
     โ”‚        - Device linking
     โ”‚        - Session management
     โ”‚        - Sync across devices
     โ”‚        - Device authorization
     โ”‚
     โ””โ”€โ”€ Q4: ๐ŸŽฏ Final Polish
              - Performance tuning
              - UI refinements
              - Documentation
              - Release preparation

2027 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
     โ”‚
     โ””โ”€โ”€ ๐Ÿ“… February 22, 2027: ๐Ÿš€ OFFICIAL RELEASE v1.0.0
              - Public launch on Google Play Store
              - Press release
              - Marketing campaign
              - Community launch event

๐Ÿ—บ๏ธ Roadmap

Completed โœ…

Phase Features Status
Phase 1 Core Messaging, Authentication, Basic UI โœ… Complete
Phase 2 Ghost Mode, Reactions, Reply/Forward โœ… Complete
Phase 3 Voice/Video Calls, Search โœ… Complete
Phase 4 Status/Stories, Channels, Groups โœ… Complete
Phase 5 Security (Biometric, App Lock, E2E) โœ… Complete

In Progress ๐Ÿ”„

Phase Features Progress
Phase 6 Settings, Notifications, Polish 80%

Planned ๐Ÿ“‹

Phase Features Target
Phase 7 Push Notifications (FCM) Q4 2025
Phase 8 Offline Mode Q1 2026
Phase 9 Backup & Restore Q2 2026
Phase 10 Multi-Device Sync Q3 2026
Phase 11 iOS Version 2027
Phase 12 Desktop Apps 2027
Phase 13 Web Version 2028

Future Vision ๐Ÿ”ฎ

2027 Predictions:

  • ๐Ÿค– AI-powered smart replies
  • ๐ŸŒ Real-time translation
  • ๐ŸŽฎ In-chat mini games
  • ๐Ÿ’ฐ Integrated payments

2028 Predictions:

  • ๐Ÿฅฝ AR/VR messaging
  • ๐Ÿง  Sentiment analysis
  • ๐Ÿ”— Blockchain verification
  • ๐ŸŒ Decentralized architecture

๐Ÿค Contributing

We love contributions! Ghost Messenger is an open-source project, and we welcome developers of all skill levels.

How to Contribute

  1. Fork the Repository

    git clone https://github.com/YOUR_USERNAME/ghost-messenger.git
  2. Create a Feature Branch

    git checkout -b feature/amazing-feature
  3. Make Your Changes

    • Follow our coding standards
    • Write tests for new features
    • Update documentation
  4. Commit Your Changes

    git commit -m "feat: add amazing feature"

    We follow Conventional Commits

  5. Push and Create PR

    git push origin feature/amazing-feature

    Then open a Pull Request on GitHub

Contribution Guidelines

  • Code Style: Follow Kotlin coding conventions
  • Documentation: Update README and code comments
  • Testing: Add unit tests for new features
  • Commits: Use meaningful commit messages
  • PRs: Keep pull requests focused and small

Areas We Need Help

  • ๐Ÿ› Bug fixes
  • ๐Ÿ“ Documentation improvements
  • ๐ŸŒ Translations
  • ๐Ÿงช Testing
  • ๐ŸŽจ UI/UX improvements
  • ๐Ÿ”’ Security audits

๐Ÿ’ฌ Support

Get Help

Telegram

Join our Telegram community for:

  • ๐Ÿ“ข Latest updates and announcements
  • ๐Ÿ’ฌ Discussion with other developers
  • ๐Ÿ› Bug reports and feature requests
  • ๐Ÿค Collaboration opportunities
  • ๐Ÿ“š Tutorials and guides

Contact

Channel Link
Telegram Community @SpiralTechDivision
GitHub Issues Report a Bug
Email support@spiraltech.dev

FAQ

Is Ghost Messenger really private?

Yes! We use end-to-end encryption for all messages. Even we cannot read your messages. Ghost Mode ensures messages are deleted from our servers after the set time.

Is it free to use?

Ghost Messenger is completely free and open source. We don't have ads, and we don't sell your data. We may introduce optional premium features in the future to sustain development.

When will it be released?

The official release is planned for February 22, 2027. However, you can build and run the app from source right now!

Can I contribute?

Absolutely! We welcome contributions of all kinds. Check out our Contributing section above.


๐Ÿ“„ License

MIT License

Copyright (c) 2022-2027 Spiral Tech Division

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

๐Ÿ‘จโ€๐Ÿ’ป Developer

Pranav Ajay

Founder & Lead Developer

Telegram GitHub


Spiral Tech Division

Building the future of private communication

Join Telegram


Made with โค๏ธ in India

Release Date

ยฉ 2022-2027 Spiral Tech Division. All rights reserved.


โญ Star this repo if you find it useful! โญ

About

๐Ÿ‘ป Ghost Messenger - A privacy-first, open-source messaging app with disappearing messages, end-to-end encryption, and Ghost Mode. Built with Kotlin, Jetpack Compose, and Ktor backend

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages