details about the mobile app part of the project
the project will need a mobile app so that users on mobile phones will be able to use the meme instant messaging service.
the mobile app will be used to allows users to create memes on the device as well as send memes to other people
the app should be created with continuous integration in mind. this will make it easier to to update the app if there are any bugs and general maintenance will be easier with this.
the app is to be created using the React Native Expo SDK. this will provide a good starting point for the project. (https://expo.io/)
there needs to be the ability to create a meme to be sent to another device. it would be useful to persist data to the device to prevent having to fetch it from a remote source.
to be able to send memes, users will have to register with the platform to ensure they are real users.
i can use passportjs (http://www.passportjs.org/). many authentication strategies are available, it would be good to include the main user authentication providers:
it should be possible to persist data to the device so the user is able to keep memes private on their device unless they decide to send it to another device.
if possible, data should be encrypted at rest.
if data is encrypted at rest on all devices, then i can make it so that if the "author" of a sent meme decides to delete the meme, that deletion can propagate to all devices connected to the network to delete on other devices if the author decides to remove it.
websockets will be necessary to achieve instant messaging functionality. communication should be E2E encrypted.
possibly over webrtc?