This Android application allows users to discover and connect with others, view profiles, and engage in real-time one-on-one messaging.
- 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).
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.
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
To build the project, ensure you do the following:
-
Add Firebase to App:
- Create a project in the Firebase Console and add your Android app to the project, use this link
-
Add google-services.json to your Firebase Project:
- Download the
google-services.jsonfile provided by firebase and place it in your app's/appdirectory.
- Download the
-
Add
WEB_CLIENT_IDtoproject.properties:- Open (or create) the
project.propertiesfile in the root directory of your project. - Add your Web Client ID this way:
WEB_CLIENT_ID=your-web-client-id
- Open (or create) the
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.
If you have any suggestions or feedback regarding the project, please feel free to reach out to me:
- Email: abhishekdhimaniitg@gmail.com
Your input is greatly appreciated and helps improve the project!