Skip to content

zakisheriff/One-Message

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

One Message

Secure Hybrid Messaging with End-to-End Encryption & Offline SMS Fallback

Kotlin Jetpack Compose Node.js Socket.IO PostgreSQL


"Your messages. Your privacy. Your control."

One Message isn't just another messaging app β€” it's a commitment to security-first communication.
Built with Signal Protocol encryption, designed with The One Atom aesthetic, and engineered for reliability with offline SMS fallback.


πŸ” Vision

One Message is designed to be:

  • A truly private messaging platform β€” end-to-end encryption by default
  • A hybrid communication system β€” seamless switch between internet and SMS
  • A beautifully crafted experience β€” The One Atom design with glassmorphism

✨ Why One Message?

Most messaging apps compromise between security and usability.
One Message delivers both β€” military-grade encryption with a premium user experience.


🎨 The One Atom Design System

  • Pure Black Background
    #000000 for true OLED blacks and maximum contrast.

  • Glassmorphism Effects
    Translucent panels with backdrop-filter: blur() for depth and elegance.

  • White & Gray Typography
    Clean, readable text hierarchy with proper visual weight.

  • Ambient Orbs
    Subtle floating gradient effects for visual atmosphere.


πŸ›‘οΈ Security Architecture

  • Signal Protocol
    Industry-standard end-to-end encryption for all messages.

  • Device-Only Storage
    Messages stored locally with Room encryption β€” server never sees plaintext.

  • OTP Authentication
    Phone number verification via Twilio β€” no passwords to hack.

  • Multi-Device Sync
    Secure key exchange for seamless cross-device experience.


πŸ“± Platform Support

Android (Kotlin/Jetpack Compose)

  • Material 3 design with custom One Atom theme
  • Native performance with modern architecture
  • Room database with encryption

iOS (Swift/SwiftUI) β€” Coming Soon

  • Native SwiftUI implementation
  • CoreData with encryption
  • APNs push notifications

Web Landing Page

  • Marketing website with glassmorphic design
  • Responsive for all devices
  • Premium animations and interactions

πŸ“ Project Structure

One-Message/
β”œβ”€β”€ app/                          # Android App (Kotlin/Compose)
β”‚   β”œβ”€β”€ src/main/java/com/example/onemessage/
β”‚   β”‚   β”œβ”€β”€ MainActivity.kt       # App entry point
β”‚   β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”‚   β”œβ”€β”€ screens/          # UI Screens
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ LoginScreen.kt      # Phone + OTP auth
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ChatListScreen.kt   # Conversations list
β”‚   β”‚   β”‚   β”‚   └── ChatScreen.kt       # Individual chat
β”‚   β”‚   β”‚   └── theme/            # One Atom Design System
β”‚   β”‚   β”‚       β”œβ”€β”€ Color.kt      # Color palette
β”‚   β”‚   β”‚       β”œβ”€β”€ Theme.kt      # Dark theme config
β”‚   β”‚   β”‚       └── Type.kt       # Typography scale
β”‚   β”‚   └── navigation/
β”‚   β”‚       └── Navigation.kt     # Jetpack Navigation
β”‚   └── build.gradle.kts
β”‚
β”œβ”€β”€ backend/                      # Node.js + Express API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ index.js              # Express + Socket.IO server
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.js           # OTP authentication
β”‚   β”‚   β”‚   └── messages.js       # HTTP message fallback
β”‚   β”‚   β”œβ”€β”€ socket/
β”‚   β”‚   β”‚   └── handlers.js       # Real-time WebSocket events
β”‚   β”‚   └── db/
β”‚   β”‚       └── schema.sql        # PostgreSQL schema
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.example
β”‚
└── landing/                      # Marketing Website
    β”œβ”€β”€ index.html                # Main HTML structure
    β”œβ”€β”€ styles.css                # Glassmorphism & animations
    └── script.js                 # Interactions & effects

πŸš€ Quick Start

Prerequisites

  • Android Studio (Hedgehog or later)
  • Node.js (v18+)
  • PostgreSQL (v14+)
  • Twilio Account (for OTP)

1. Clone the Repository

git clone https://github.com/zakisheriff/One-Message.git
cd One-Message

2. Backend Setup

cd backend
npm install
cp .env.example .env
# Edit .env with your credentials
npm start

3. Android App

# Open in Android Studio
# Or build from command line:
./gradlew assembleDebug

4. Landing Page

# Simply open in browser
open landing/index.html

🎯 Key Features

For Users

βœ… Phone Authentication β€” Secure OTP verification
βœ… 170+ Countries β€” Complete country code picker
βœ… Real-Time Messaging β€” Instant delivery via WebSocket
βœ… Read Receipts β€” Know when messages are read
βœ… Typing Indicators β€” See when someone is typing
βœ… Offline Mode β€” SMS fallback when internet unavailable
βœ… End-to-End Encryption β€” Signal Protocol protection

Technical Features

βœ… Material 3 Design β€” Modern Android UI
βœ… Socket.IO β€” Real-time bidirectional communication
βœ… JWT Sessions β€” Secure token-based auth
βœ… PostgreSQL β€” Reliable data persistence
βœ… Keyboard Handling β€” Perfect mobile input experience


πŸ”§ Tech Stack

Android

  • Kotlin β€” Modern Android development
  • Jetpack Compose β€” Declarative UI framework
  • Material 3 β€” Google's latest design system
  • Navigation Compose β€” Type-safe navigation
  • Room β€” Local database with encryption

Backend

  • Node.js + Express β€” REST API server
  • Socket.IO β€” WebSocket real-time messaging
  • PostgreSQL β€” Relational database
  • JWT β€” Session management
  • Twilio β€” SMS/OTP delivery

Landing Page

  • Pure HTML/CSS/JS β€” No frameworks
  • Glassmorphism β€” Modern visual effects
  • CSS Animations β€” Smooth interactions
  • Responsive Design β€” Mobile-first approach

πŸ“Š Database Schema

Core tables with proper relationships:

  • users β€” Phone numbers and profiles
  • devices β€” Multi-device support with public keys
  • sessions β€” JWT session management
  • otp_codes β€” Verification codes with expiry
  • push_tokens β€” FCM/APNs tokens
  • contacts β€” User relationships
  • sms_transactions β€” Offline message logs

πŸ”’ Security Features

βœ… Signal Protocol β€” End-to-end encryption
βœ… OTP Verification β€” Phone-based authentication
βœ… Device Keys β€” Per-device encryption keys
βœ… JWT Tokens β€” Secure session management
βœ… Local Encryption β€” Room database encryption
βœ… No Server Storage β€” Messages never stored on server


🌐 API Endpoints

Authentication

  • POST /auth/request-otp β€” Send OTP to phone
  • POST /auth/verify-otp β€” Verify and get JWT
  • POST /auth/register-device β€” Register device keys
  • PUT /auth/profile β€” Update display name

Messages (HTTP Fallback)

  • POST /messages/send β€” Send message via HTTP
  • GET /messages/pending β€” Get pending messages

WebSocket Events

  • message:send / message:receive β€” Real-time messaging
  • message:delivered / message:read β€” Delivery status
  • typing:start / typing:stop β€” Typing indicators
  • presence:update β€” Online/offline status

πŸ—ΊοΈ Roadmap

  • Landing Page with glassmorphism
  • Backend with Socket.IO
  • Android UI screens
  • Complete Android networking
  • Signal Protocol integration
  • iOS app (Swift/SwiftUI)
  • Push notifications (FCM/APNs)
  • Offline SMS mode
  • Group messaging
  • Media attachments

πŸ“„ License

Proprietary License

This project is part of The One Atom ecosystem. The code is provided for study and reference purposes only.

  • βœ… You may view and study the code
  • βœ… You may fork for personal learning
  • ❌ Commercial use is prohibited
  • ❌ Redistribution is prohibited
  • ❌ Creating derivative works for distribution is prohibited

β˜•οΈ Support the Project

If One Message inspired you or helped with your learning:


Made by Zaki Sheriff

Part of The One Atom ecosystem

Privacy is not optional. It's fundamental.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published