Chatter is a feature-rich mobile messaging app built using Kotlin and Jetpack Compose for the frontend, with a Node.js backend. The app provides a seamless and secure platform for users to connect, message, and share media with friends. The backend code is hosted in a separate repository: ChatApp Backend.
- User Authentication:
- Email-based login and signup.
- Google Authentication for quick access.
- Friend Requests:
- Search for users by name.
- Send, accept, or reject friend requests.
- Messaging:
- Start real-time chat with friends after they accept your request.
- Send text messages and share images in chats.
- Notifications:
- Get notifications for new messages and friend requests, even when the app is closed.
- Modern UI/UX:
- Built with Jetpack Compose for a smooth and responsive interface.
- Kotlin & Jetpack Compose: For creating a modern, declarative UI.
- Dagger Hilt: For dependency injection and managing app components.
- Retrofit: For networking and API communication.
- Socket.IO: For real-time messaging functionality.
- Node.js: Backend server (source code: ChatApp Backend).
- Socket.IO: For real-time WebSocket communication.
- REST APIs: For user authentication, friend requests, and message handling.
- Android Studio installed on your system.
- A running instance of the backend server (follow setup instructions in the ChatApp Backend repository).
- A Firebase project set up for authentication and push notifications.
-
Clone the repository:
git clone https://github.com/YourUsername/Chatter.git
-
Open the project in Android Studio.
-
Configure the Firebase:
- Download the
google-services.json
file from your Firebase project. - Place it in the
app/
directory.
- Download the
-
Update the API URL:
- Go to the
ApiService
file in the project and set the base URL to match your backend server (e.g.,http://<your-backend-server-url>
).
- Go to the
-
Build and run the app on an emulator or physical device.
- Users can register and log in using their email or Google account.
- Firebase handles authentication and token generation.
- Search for other users via the search bar.
- Send friend requests to users, who can accept or reject them.
- Once a friend request is accepted, a chat session is created.
- Real-time messaging is enabled using Socket.IO.
- Users can send text and images securely.
- Push Notifications are implemented to alert users of new messages or friend requests, even when the app is closed, using Firebase Cloud Messaging (FCM).
Chatter/
├── app/
│ ├── src/
│ │ ├── main/
│ │ ├── java/
│ │ └── res/
│ │ └── AndroidManifest.xml
│ ├── build.gradle
│ └── google-services.json
└── backend/ (linked backend repository)