Skip to content

Sambashivarao-Boyina/ChatterApp

Repository files navigation

Chatter - A Modern Messaging App

Overview

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.

Features

  • 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.

Technology Stack

Frontend

  • 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.

Backend

  • 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.

Screenshots

Login Screen Chat Screen Notifications

Friend Requests Image Sharing Image Request

Installation and Setup

Prerequisites

  1. Android Studio installed on your system.
  2. A running instance of the backend server (follow setup instructions in the ChatApp Backend repository).
  3. A Firebase project set up for authentication and push notifications.

Steps to Run the App

  1. Clone the repository:

    git clone https://github.com/YourUsername/Chatter.git
  2. Open the project in Android Studio.

  3. Configure the Firebase:

    • Download the google-services.json file from your Firebase project.
    • Place it in the app/ directory.
  4. 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>).
  5. Build and run the app on an emulator or physical device.

How It Works

Authentication

  • Users can register and log in using their email or Google account.
  • Firebase handles authentication and token generation.

Adding Friends

  • Search for other users via the search bar.
  • Send friend requests to users, who can accept or reject them.

Chat Functionality

  • 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.

Notifications

  • Push Notifications are implemented to alert users of new messages or friend requests, even when the app is closed, using Firebase Cloud Messaging (FCM).

Folder Structure

Chatter/
├── app/
│   ├── src/
│   │   ├── main/
│   │       ├── java/
│   │       └── res/
│   │   └── AndroidManifest.xml
│   ├── build.gradle
│   └── google-services.json
└── backend/  (linked backend repository)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages