Implement the possibility to follow

Job ID: 34891189

Budget: $250 – $750 USD

Intro
We have built a beta version of a Swedish language news reading app with the ability for users to comment on articles. We now need help to allow users to follow each other. If the implementation of this new feature goes well then there is a possibility to get more work after this. The app is built in React Native and Expo, using AWS as the back end.
What the app does now
Our users have to be logged in to use the app.
Values/Topic
Users can also answer what they think about different Values/Topic. From 3 thumbs down to 3 thumbs up. Their answer gets saved on their profile.
Users can decide if they want to be public with how they rate different values.
Users Page
It’s possible to click on the name in other users' comments to see the Users Page. If users have decided to be public with their values, other users can see how they have rated different Values/Topics (picture 1). If a user has decided to not be public with their Values/Topics, their User Page will show text stating that they are not public (picture 2).

Notifications
The user gets notifications on different events, for example when someone answer or likes their comments.
Menu Page
There is a Meny Page with different tabs. One tag where the user can see its own Values/Topics. One tab for Notifications.
What we want help to implement
Button to start and stop following users
Add a button in the upper right corner of the User Page. It should look like picture 3 and 4 or similar when not clicked. The text in the button shall say “Följ” (follow).
When clicked it should be grayed out, with the icon changing to picture 5, or similar, and the text in the button shall say “Följer” (“Following”). If clicked when greyed out the user stops following that other user. The view will return to that in picture 4.

Follower Page
The bottom bar in Menu Page needs a new button. This is preferably the same icon as picture 5, but without the checkmark. See picture 7 for the location of the button. The text under the button shall say “Följare”.
Every user is represented by a similar box as the regular comment component, with the name and the picture at the same place. Instead of the comment text, it shall show information similar to when clicking on a user. If a user shows their values publicly, it shall show the two most significant values from the person (the highest rated values in their
profile (most thumbs up/down)). If user has set to not show values, show text: “Användaren har valt att inte publicera sina värderingar” (see Liam Ericson in picture 7)

It shall be possible to click on the name of a user to see the same information as in picture 4 or 6.

The followers shall be divided in 3 lists.
Personer
du följer som följer dig (Persons you follow who follow you)
Personer
du följer (Persons you follow)
Personer
som följer dig (Persons that follow you).

Notifications
When user-A starts to follow user-B, a notification shall be sent to user-B in the app and to the notification tab in Meny Page. The new Follow notifications must follow the existing implementation, so the device also gets notification.
The text shall say “[user-A] följer dig”.
When the user clicks on the notification, they see the User page, as in picture 4 or 6.

Save information to backend
Information when adding followers will be stored twice.
For example, when user-A starts to follow
user-B:
· The information will be stored in DynamoDB as a list of users that user-A is following.
· The information will also be stored in a list of users that follow user-B.
· In both places there shall also be stored the time when user-A started to follow user-B.

We also need a new list of maps in the backend that stores the 10 latest articles that every user commented on. Every map shall contain a string with
· The article id
· A time stamp when the comment was written
· The Comment id
· The Comment id of the comment it answer to (it’s the prefix in the Comment id if is an Answer)
Related categories: Amazon Web Services React Native