A functional replica of the WhatsApp mobile application.
The project is under development.
Features implemented:
-
Registration request: a client can request the WhatsApp registration to the server.
-
Registration: a client can be registered to WhatsApp with a profile picture.
-
Registered users: a client can see for the registered users to WhatsApp.
-
Status: a client can see the online/offline status of the registered users to WhatsApp.
-
Chat: a client can start a chat with another user.
-
OfflineMessages: a client can receives messages while it is offline.
-
In app Notification: a client can receive in app notification for incoming messages.
Features to implement:
-
Edit profile: a client can edit its personal informations.
-
Send file: a client can send files.
-
Chat groups: Diffrent clients can chat together.
-
Other
To develeop this application, several software/framework have been used:
-
Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase.
The client mobile app is developed with Flutter. -
Node.js is designed to build scalable network applications, many connections can be handled concurrently. Upon each connection, the callback is fired, but if there is no work to be done, Node.js will sleep.
The server is developed with NodeJs. -
SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine.
Both client and server store data using SQLite.
git clone https://github.com/fedehsq/whatsapp_clone
-
Change the server ip address in
whatsapp_clone/app/lib/api.dart -
Run the server:
cd whatsapp_clone/app
npm rebuild
node server.js
- Run the client:
cd whatsapp_clone/app
flutter run
The screens with debug are the cloned version, the other ones are of the real WhatsApp application.
- 




