/Dating-App

A concept dating app with profile search and chat.

Primary LanguageJavaMIT LicenseMIT

Dating-App

End-to-end encryption chat simulation final year project.

System Design

In this project I used Firebase as the server and for frontend, I used android xml.

  • The app is designed to accomodate almost all screen sizes in mobile and tablet devices.

  • It has a persistent server which means even if you lose network, whenever the internet connection is live again it will receive and send message automatically.
  • Chats are stored on the local database using Android and SQLite.
sequenceDiagram
    Alice->>+John: Hello John, how are you?
    Alice->>+John: John, can you hear me?
    John-->>-Alice: Hi Alice, I can hear you!
    John-->>-Alice: I feel great!
Loading
  • Server only holds the message as long as the receiver is offline.

  • Messages sent to server are encrypted on the client device first and then decoded on the receiver device.
flowchart TD;
    A[Sender App] -->|Message| B(Encoder);
    B --> |Encoded Message| C{Server};
    C -->|Encoded Message| D[Receiver App];
    D --> |Encoded Message| E(Decoder);
    E --> |Decoded Message| F(Receiver);
Loading

System GUI

The app is easy-to-use and user-friendly. Everything is labeled and easy to access.

The app is under development.

  • Log in and Sign up.

  • Profiles Screen comes first after loading screen once you have logged in.

  • You can click on the user profile card to interact with the user.

  • Heart icon represents Favourite selection, you can mark any user as Favourite and it will show in your Favourite tab which you can access from your dashboard.

  • Chat Dialog icon will let you chat to the other user and also that user will be shown in your chat tab which can be accessed from the dasboard.

  • These are Account Options here you can edit your profile, logout and upload photos to the server.

  • By clicking on Edit Profile option you can edit your profile.

  • For Example we will first turn the swith on and then click on the field you want to edit.

  • Another example where we will edit the Profession field.

  • Chat List and Conversation UI.

  • Tablet user.

  • Forgot Password? and exit screen UI Flow.

Some features are under development. 📢 PSA for those who want to fork or copy this repo and use it for their own site:

Please be a decent person and give me proper credit by linking back to my website! Refer to this handy quora post if you're not sure.

Contact me for any details regarding the app and code features.

Overall the app was designed to only simulate a part of end-to-end encryption using AES-128 encryption with ECB Packaging.