Skip to content
Tanay3183Public

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

K-Chat

A real-time messaging Android application built with Kotlin, Jetpack Compose, Room Database (for offline caching), Firebase Firestore (for real-time data sync) and Cloudinary (for cloud storage of media & statuses).

Installation

Phone Prerequisites

  • Android OS: Android 7.0 (Nougat, API Level 24) or higher.
  • Google Play Services: Required for Firebase services.
  • Permissions: Internet access (for sync) and notification access (optional, to show incoming message alerts).

Install via APK

  1. Download the K-Chat APK (or visit the GitHub Releases page) directly on your Android device.
  2. If prompted, enable installation from unknown sources in your device settings (Settings > Security or Settings > Apps > Special app access > Install unknown apps).
  3. Open your device's file manager, navigate to the Downloads folder, and tap on the downloaded .apk file.
  4. Tap Install and follow the on-screen instructions.

Features

Authentication

  • Phone-Based Authentication: Login with OTP verification.
  • Session Persistence: Auto-login capabilities using DataStore Preferences.

Messaging

  • Real-Time Text Chats: Fast, responsive messaging using real-time Firebase Firestore synchronization.
  • Image Sharing: Send and receive photos securely, with upload integration to Cloudinary.
  • Image Viewer: Full-screen interactive viewer for high-quality media messages.
  • Message Status:
    • SENT: Message uploaded to the server.
    • DELIVERED: Updated instantly when the recipient is online using GlobalDeliveryScanner.
    • READ: Marked when the recipient opens the chat.
  • Message Controls:
    • Delete for Me: Removes the message locally and marks it in Firestore.
    • Delete for Everyone: Replaces the message content with a tombstone (🚫 This message was deleted) for all chat participants.

Live Status / Updates (Stories)

  • Text Status: Write text updates with dynamic background colors.
  • Photo Status: Upload status images directly via Cloudinary.
  • 24-Hour Expiration: Automatic status deletion and clean-up of stale updates.

Notifications & Presence

  • Push Notifications: Live messages delivered via Firebase Cloud Messaging (FCM).
  • Deep Linking: Seamless routing directly from notifications to specific chat screens using custom URI schemes.
  • User Presence: Dynamic online/offline status indicator displayed in real-time.

Architecture & Tech Stack

The app is built using Jetpack Compose for a fully declarative and modern UI.

  • UI Framework: Jetpack Compose
  • Local Cache: Room Database for caching messages locally, facilitating fast load times and offline support.
  • Database Backend: Firebase Firestore for instant remote sync.
  • Image Loader: Coil for asynchronous Compose image loading.
  • Cloud Storage: Cloudinary SDK for media storage.
  • Dependency Management: Gradle Version Catalog (libs.versions.toml).
  • Asynchronous Flow: Kotlin Coroutines & Flow.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages