Skip to content

Anonymous-Chat is an Android messaging app that supports Anonymous Identity & privacy, so no need for phone or email to sign-in, only depends on public-key identifier.

Notifications You must be signed in to change notification settings

DoaaFouad/Anonymous-Chat

Repository files navigation

Overview

Anonymous-Chat is an Android messaging app that supports Anonymous Identity, so no need for phone or email to sign-in, only depends on public-key identifier. It also supports end-to-end encryption depending on Public-key cryptography mechansim.

Project for demonstartion purpose

Model-View-Intent (MVI) Architecture

Project implements MVI Architecture

Clean Architecture

For applying single responsiblity and seperation of concerns principles, the project consists of three main modules;

  • presentation layer; contains Android specific components, UI(activities, fragments), viewmodels and contracts(for intents and viewstates)
  • data layer; contains repositories and data sources implementations (database definition and its DAOs / network APIs definitions), mappers(for remote and item models)
  • domain layer; contains the definitions of the business logic of the app and the data model,

Dependency Injection

Koin framework (https://github.com/InsertKoinIO/koin) is used for Dependency Injection. Koin modules are defined under presentation->base->di

Kotlin Coroutines

Coroutines (https://kotlinlang.org/docs/coroutines-guide.html) is used for asynchronous programming.

Networking layer

Socket.io (https://socket.io/) used for connecting websocket.

Room Database

Room DB (https://developer.android.com/jetpack/androidx/releases/room) is used for caching user's conversations list.

Cryptography

LazySodium (https://github.com/terl/lazysodium-android) is used for generating pair-keys./ encrypting and decrypting messages.


About

Anonymous-Chat is an Android messaging app that supports Anonymous Identity & privacy, so no need for phone or email to sign-in, only depends on public-key identifier.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages