Skip to content

A messaging application that has been modularized and adopted the mvvm architecture approach.

License

Notifications You must be signed in to change notification settings

AhmetOcak/KotlinChatApp

Repository files navigation

Chat App 💬

Features

  • If you have an account, you can log in directly. If you do not have an account, you can open an account with your e-mail.
  • If you don't want to log into your account all the time, you can tick the "remember me" box.
  • You can log out of your account.
  • To add a friend, you can send a friend request to the user you want to add via e-mail.
  • You can view, accept or decline friend requests.
  • You can delete your account. You can update the username and user picture of your account.
  • You can chat with your friends in real time.
  • You can immediately find the friend you want by filtering on the screen where your friend list is located.
  • Libraries📚

    Modules

    App Module

    Initializes the project. It contains the main activity, Application class(created for hilt) and google-service.json file(it's coming from firebase).

    Domain Module

    It contains the interfaces and models.

    Data Module

    This module includes local and network operations. It takes the data and makes it ready. It contains the entity models, repositories, mappers, usecases.

    Core Module

    It contains base classes.

    Features Module

    This module includes ui operations. It shows data to user.

    Modularization Graph

    • :features module depends on core and data modules

    • :app module depends on core and features modules

    • :data module depends on domain module

    Preview

    Images from app

    Login Register
    Delete Account Edit Profile
    Message Friend Request
    Account Settings Add Friend
    Log Out Chat

    Firebase setup

    Create project

    Create Android project

    Download the google-services.json and copy to app directory

    Create database