Skip to content

ashutosh2287/EASY_CHAT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 

Repository files navigation

πŸ’¬ EasyChat - Real-Time Android Chat Application

EasyChat is a modern real-time chat app built using Kotlin and Firebase. It allows users to authenticate via OTP, chat one-on-one, search for users, and manage profile data. The app is designed with performance, simplicity, and mobile responsiveness in mind β€” a perfect blend of Firebase's power and Material UI design.

Developer: Ashutosh Anand
Development Period: 2024–2025


✨ Features

  • πŸ” Phone Number Authentication with Firebase OTP
  • πŸ§‘β€πŸ’¬ User Profiles: Set username and profile photo
  • πŸ’¬ 1-to-1 Chat: Real-time messaging using Firestore
  • πŸ•’ Recent Chats List: Optimized with embedded user details
  • πŸ” Search Users by username
  • πŸ–ΌοΈ Profile Picture Viewer with full zoom-in layout
  • πŸ“€ Offline Message Support with Firestore cache
  • πŸ”” Push Notifications (via FCM - optional)
  • 🧠 Clean Architecture: MVVM-inspired structure with modular design

πŸ› οΈ Tech Stack

Android

  • Kotlin - Modern Android development language
  • Jetpack Libraries - Lifecycle, ViewModel, etc.
  • Material Design - UI/UX design system
  • RecyclerView - Efficient list rendering

Firebase

  • FirebaseAuth - Phone OTP authentication
  • Cloud Firestore - Real-time database
  • Firebase Storage - For profile pictures
  • Firebase Cloud Messaging - Push notifications

Tools

  • Glide - Image loading and caching
  • Gradle - Dependency management
  • Android Studio - Development environment

πŸ“‚ Project Structure

EasyChat/ β”œβ”€β”€ activities/ β”‚ β”œβ”€β”€ ChatActivity.kt β”‚ β”œβ”€β”€ LoginPhoneNumberActivity.kt β”‚ β”œβ”€β”€ LoginOtpActivity.kt β”‚ β”œβ”€β”€ LoginUsernameActivity.kt β”‚ └── SearchUserActivity.kt β”œβ”€β”€ fragments/ β”‚ β”œβ”€β”€ ChatFragment.kt β”‚ └── ProfileFragment.kt β”œβ”€β”€ adapters/ β”‚ β”œβ”€β”€ ChatRecyclerAdapter.kt β”‚ β”œβ”€β”€ RecentChatRecyclerAdapter.kt β”‚ └── SearchUserRecyclerAdapter.kt β”œβ”€β”€ models/ β”‚ β”œβ”€β”€ UserModel.kt β”‚ β”œβ”€β”€ ChatroomModel.kt β”‚ └── ChatMessageModel.kt β”œβ”€β”€ utils/ β”‚ β”œβ”€β”€ AndroidUtil.kt β”‚ └── FirebaseUtil.kt β”œβ”€β”€ layout/ β”‚ β”œβ”€β”€ *.xml (all activity + recycler row UIs) └── MainActivity.kt


🧭 App Flow

  1. Splash Screen β†’ Auth check
  2. Login β†’ Phone number + OTP β†’ Username + Profile
  3. MainActivity β†’ Contains Chat & Profile Fragments
  4. SearchUserActivity β†’ Start chat with any user
  5. ChatActivity β†’ Real-time conversation

πŸ” Firebase Security Rules (Sample)


---

## 🧭 App Flow

1. **Splash Screen** β†’ Auth check
2. **Login** β†’ Phone number + OTP β†’ Username + Profile
3. **MainActivity** β†’ Contains Chat & Profile Fragments
4. **SearchUserActivity** β†’ Start chat with any user
5. **ChatActivity** β†’ Real-time conversation

---

## πŸ” Firebase Security Rules (Sample)

```js
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth.uid == userId;
    }

    match /chatrooms/{chatroomId} {
      allow read, write: if request.auth.uid in resource.data.userIds;
    }

    match /messages/{messageId} {
      allow read, write: if request.auth.uid != null;
    }
  }
}


 Key Activities and Components
ChatActivity – Real-time message screen

SearchUserActivity – Search and start chats

RecentChatRecyclerAdapter – Shows latest chats efficiently

FirebaseUtil.kt – Centralized Firestore/Auth handling

ChatroomModel – Stores chatroomId, last message, and cached user info

πŸ’‘ Future Improvements
βœ… Image sharing in chat

βœ… Group chat support

⏳ Seen/delivered indicators

⏳ Delete messages

⏳ Typing indicator

⏳ Message encryption

πŸ‘¨β€πŸ’» Developer
Ashutosh Anand

LinkedIn: https://www.linkedin.com/in/ashutosh-anand-1651841b6/

GitHub: https://github.com/ashutosh2287

πŸ“„ License
This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments
Firebase for real-time services

Android Developers community for support

Inspiration from WhatsApp and Signal for UI/UX patterns

About

college project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published