Advanced Laravel Framework Development - Dedicated Team from UkraineUncategorized iOS App to take pictures and display them on a map (React Native)

iOS App to take pictures and display them on a map (React Native)

Summary:
This app will allow a user to take pictures. Pictures are then uploaded to a backend together with the location and users can view them (all pictures, own and other users’s) on a map. There is also a leaderboard that shows a ranking of the user who took the most pictures.

Features in detail:
– On app start a user account with random nickname and no email is created on the backend. (no login needed)
– User can take geotagged pictures, which are uploaded and placed on a map.
– Pictures is uploaded directly to S3 bucket to keep the backend simple. Backend provides a signed upload request. (Example code for this is available and we already use it)
– Pictures of ALL users can be viewed on a map. Clustered, if too many are in one place.
– On clicking a single marker, a submenu with the option to show details, delete or cancel opens.
– Search field on map: allows to search a location. On selection the map moves there.
– The details view shows bigger version of the image, time, place, title and description
– Gallery view. Loads dynamically as user scrolls? Can be used for different views:
– Recent pictures of all users
– Recent pictures of single user.
– There is a leaderboard that shows the number of pictures for all users and ranks them.
– Optionally user can complete his profile (add nickname, phone, email) or login to an existing account with email.
– Email is validated when entered. On login a OTP token is sent to the address.
– Images are validated by checking them agains a white-list of labels: https://cloud.google.com/vision/ or https://www.clarifai.com/demo
– Images are resized to ~800px width on upload. No preview or different versions are generated.

Mockups: available, provided on request

Technology: React Native? An Android version may be added later

Backend: Quite simple here. Could be in Laravel. Please indicate if you can provide the backend as well.

Main libraries to use: (alternatives welcome)
– react-native
– map view: https://github.com/airbnb/react-native-maps
– clustering: https://github.com/mapbox/supercluster