Skip to content

Chatting App: an android app developed using Kotlin, Jetpack Compose, MVI + Clean architecture, Hilt, Coroutines, Firebase, AI features etc.

Notifications You must be signed in to change notification settings

Abhidhimann/ChattingApp

Repository files navigation

Chatting App by Abhishek

This Android application allows users to discover and connect with others, view profiles, and engage in real-time one-on-one messaging.

Features

  • Sign in/up page: Log in/register using email and password or Google Single Sign-On (SSO).
  • AI Chatbot: Access a built-in AI-powered chatbot for general queries or assistance while chatting.
  • Conversation Summarization: Generate concise summaries of past chats to quickly review key points.
  • Profile Page: View and update your profile, including uploading a profile picture.
  • Discover Users Page: Explore and find other users within the app and send connection requests.
  • Requests Page: Manage incoming connection requests by accepting or rejecting them.
  • Chat list page: See previous/new chats.
  • Chat Page: Engage in real-time, one-on-one messaging with other users.
  • Notification: Receive new messages alert through push notifications via Firebase Cloud Messaging (FCM).

Tech Stacks

Common tech stacks used are:

  • Architecture - MVI + Clean Architecture.
  • Retrofit + OkHttp - RESTful API and networking client.
  • Hilt - For dependency injection.
  • Coil - Image loading library.
  • Coroutines - Concurrency design pattern for asynchronous programming.
  • Zelory Image Compressor - For compressing image before uploading to firebase storage.
  • Jetpack Compose - Declarative and simplified way for UI development.
  • Material 3: Apply Material 3 design principles and components to ensure app has a modern and cohesive look.
  • Firebase Libraries - Firebase Messaging, Firebase Storage, Remote Config, Firebase Auth & Firestore.

DEMO

login.and.google.sso.mp4
Profile.update.mp4
Discover.connect.mp4
one.to.one.chat.mp4
Notifications.mp4
AI.chat.bot.mp4
Conversation.summarization.mp4

Apk file: Chatting App

Prerequisites

To build the project, ensure you do the following:

  1. Add Firebase to App:

    • Create a project in the Firebase Console and add your Android app to the project, use this link
  2. Add google-services.json to your Firebase Project:

    • Download the google-services.json file provided by firebase and place it in your app's /app directory.
  3. Add WEB_CLIENT_ID to project.properties:

    • Open (or create) the project.properties file in the root directory of your project.
    • Add your Web Client ID this way:
      WEB_CLIENT_ID=your-web-client-id

Note: For FCM, instead of using Cloud Functions, this application utilizes a temporary Node.js server. Please refer to the server details. Note that notifications will only function while this server is running. We will explore alternative solutions in the future.

For further assistance, refer to the official documentation or open an issue.

Suggestions and Feedback

If you have any suggestions or feedback regarding the project, please feel free to reach out to me:

Your input is greatly appreciated and helps improve the project!

About

Chatting App: an android app developed using Kotlin, Jetpack Compose, MVI + Clean architecture, Hilt, Coroutines, Firebase, AI features etc.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published