GithubHelp home page GithubHelp logo

eoeefosa / flutter-whatsapp-clone Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 11.49 MB

Clean architecture case study: Recreating WhatsApp with Flutter, Firebase and Nodejs using clean architecture principles

Kotlin 0.19% Swift 2.70% Objective-C 0.05% Dart 35.32% CMake 25.76% C++ 31.47% C 1.95% HTML 2.56%

flutter-whatsapp-clone's Introduction

Flutter Whatsapp Clone

Trying to recreate WhatsApp app with clean architeture.

Clean code case study series #clean

Introduction

Clean architecture is a set of organizing principles that can be used to design software solutions. It is a formal architecture that is less than 10 years old. clean architecture is based on core principles that must be kept intact and implemented correctly. It is scalable and appropriate for modern web and mobile applications.

Clean architecture constists of core layers, periphery layers, user interface and common layer

ORGANISATION

DOMAIN

ENTITY

  1. User : The user entity has a unique id, a name, a phone number, a profile picture and a status. A user can send and receive messages, create and join groups, make and recieve calls, and updated their profile and settings.
  2. Message: The message entity has a unique id, a sender, a reciver, a content, a timestamp, and a status(sent, delivered, read). A message can be text, image, video, document, or location. A message can belong to a group or a direct chat.
  3. Group: The group entity has a unique id, a name, an icon, a description, and a list of members. A group can have one or more admins who can manage the group settings and members. A group can send and recieve messages form its members.
  4. Call: The call entity has a unique id, a caller, a callee, a type( voice or video), a duration, and a status( missed, answered, declined). A call can be made between two users or within a group

References

Understanding WhatsApp's Architecture and system design

clean Architecture tutorial : Design for enterprise-scale apps

flutter-whatsapp-clone's People

Contributors

eoeefosa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.