ChatApp is a modern, WhatsApp-inspired Android application built using Firebase and Java, with a Python backend for sending push notifications via Firebase Cloud Messaging (FCM).
It provides secure OTP-based login, real-time messaging, group chats, user presence detection, typing indicators, remote UI updates, and smooth user experience with shimmer loading and story sharing — all integrated seamlessly with Firebase services.
| Category | Description |
|---|---|
| 🔐 Secure Login | Login using your phone number and verify via Firebase OTP Authentication |
| 💬 Real-Time Chat | One-on-one and group messaging powered by Firebase Realtime Database |
| 📢 Push Notifications | Real-time notifications using Firebase Cloud Messaging with Python Flask backend and Volley |
| 👤 User Profiles | Create, edit, and view profiles — including other users’ profiles |
| 🟢 Online & Typing Status | Instantly see if users are online or currently typing |
| 📸 Stories / Status | Upload stories (images) visible to all users, similar to WhatsApp/Instagram |
| 🎨 Remote Customization | Dynamic theme and toolbar updates using Firebase Remote Config |
| ✨ Shimmer Loading | Elegant shimmer animation for smoother UX while chats and data load |
| 👥 Group Chat Support | Create and participate in group conversations with shared messages |
| ☁️ Cloud Storage | Store profile pictures and statuses securely using Firebase Storage |
- Language: Java (Android)
- UI Layout: XML
- Libraries:
// OTP Input View implementation("com.github.mukeshsolanki.android-otpview-pinview:otpview:3.1.0") // Circle Image View implementation("de.hdodenhof:circleimageview:3.1.0") // Glide for Image Loading implementation("com.github.bumptech.glide:glide:5.0.5") // Reaction Popup implementation("com.github.pgreze:android-reactions:1.6") // Circular Status Indicator implementation("com.github.3llomi:CircularStatusView:V1.0.3") // Story View (like WhatsApp) implementation("com.github.OMARIHAMZA:StoryView:1.0.2-alpha") // Shimmer Effect implementation("com.facebook.shimmer:shimmer:0.5.0") // Volley for HTTP Requests implementation("com.android.volley:volley:1.2.1")
- Firebase Authentication → OTP verification
- Firebase Realtime Database → Store messages, users, presence, and typing status
- Firebase Cloud Messaging (FCM) → Push notifications
- Firebase Storage → Images for profile and status
- Firebase Remote Config → Dynamic toolbar/theme customization
- Python Flask Server → FCM backend service for notifications
- Enter your 11-digit mobile number
- Firebase sends OTP
- Verify the OTP to log in securely
- Add your name and profile picture
- Data stored securely in Firebase Realtime Database
- See online users and typing indicators
- Send and receive messages instantly
- Create and join group chats
- Upload image-based stories
- View others' statuses with a smooth transition
-
Clone the repository
git clone https://github.com/amanalis/ChatApp.git cd ChatApp -
Open in Android Studio
-
Connect your Firebase Project
- Go to
Tools → Firebase Assistant - Connect Authentication, Realtime Database, and Cloud Messaging
- Go to
-
Enable Phone Authentication
- Firebase Console → Authentication → Sign-in Method → Enable Phone
-
Run the Python Notification Server
python server.py
-
Build & Run the App on an emulator or physical device.
- 🔹 Message delivery/read receipts (double-tick system)
- 🔹 Cloud-based group management
- 🔹 End-to-end encryption
- 🔹 Voice/video calling
- 🔹 Dark mode UI support
Aman Ali
🎓 BSCS Graduate — SZABIST (Class of 2024)
💼 Android Developer (JAVA | Firebase | Fintech)
This project is licensed under the MIT License — feel free to use, modify, and learn from it.