Skip to content

Simple chat app allowing Google users to join single shared chat room.

Notifications You must be signed in to change notification settings

neronguyenvn/firebase-auth-chat-app

Repository files navigation

Chatne App

Chatne is a simple chat application built with Kotlin and Jetpack Compose that allows authenticated Google users to join a single shared chat room.

🔥 Motivation

This project was initiated to explore Firebase Authentication, WebSocket, and Push Notifications. Initially focusing on building a basic chat app, I aim to expand its functionality to include person-to-person chats and options for connecting users with strangers. This ongoing development journey is driven by a passion for learning and innovation.

🛠️ Technologies

  • UI: Built with Jetpack Compose and Coil for image loading.

  • Architecture: Utilizes Circuit for MVI Pattern + Navigation, apply Clean Architecture principles.

  • Dependency Injection: Powered by Koin.

  • Firebase: Integrates Firebase Authentication for Google Sign-In and Firebase Cloud Messaging for receiving push notifications.

  • Network: Utilizes Ktor Client for REST API and WebSocket communication.

  • Storage: Implements Realm for offline-first chat history storage.

  • Additional: Utilizes Kotlinx Datetime for easy serialize and deserialize Instant time.

📋 Features

  • Intuitive Interface: Built using Jetpack Compose for a seamless chat experience.

  • Google Authentication: Sign in with your Google account, with a sign-out option via your avatar.

  • Single Chat Room: Connect with others in one shared space, with access to the entire chat history.

🎥 Demo

Chatne_Complete_Flow.mp4
Chatne_Notification_Flow.mp4