P2P Messaging- Flutter

Project Duration: 350 hrs

A chat application for Android and IOS in flutter/dart which sends messages Using Bluetooth & wifi-direct. Each device has a UUID to identify it and optionally the user's name. Each account is linked to a username(can be authenticated using OAuth) and each message is directed to another username which is mapped to all devices logged in with that username. Users can choose to be anonymous as well. Using Bluetooth and wifi direct eliminates the use of a central server. The app scans for nearby devices which are discoverable and connects to them allowing messages to be relayed through each device(a node in a network). The messages will be transferred using an optimal path using underlying network protocols.

About:

Tasks expected:

  1. Refine chat UI
  2. currently the app uses a naive push gossip protocol that floods the system, the system has to move to a pull gossip protocol or a hybrid version, this would mean that messages would propogate in O(log(log n)) time.
  3. Encryption must be fully implemented
  4. Enable sending pictures/heavy relatively heavy files.
  5. Implement any kind of system to transmit messages over the internet. Eg, matrix.
  6. Implement dev-ops for the repository, so that we can deploy app to playstore
  7. TDD is preferred but you can write the tests later

Deliverables:

  • A fully functional iOS application that follows the best design principles.

Required Skills:

  • Flutter
  • UX/UI design
  • Testing and Loggings

Mentors:

Tanya Prasad