Users & Friending ~ User Stories - uchicago-cs/chigame GitHub Wiki
Notifications
In general, when a user receives a notification, a banner pops up on the page that gives them information and will redirect them to the notification’s associated url when clicked. Note that this notification will also be available for viewing at the top of their inbox if the user chooses to navigate there. If the user is already in their inbox, they will not receive a banner pop up and instead will see the notification appear in real time at the top of their inbox. The banner pop ups will remain on the user’s screen until the user clicks the ‘X’ button.
Notifications can be marked as read, unread, or deleted in the inbox.
Notification integration with each feature:
- Friend request:
- When a user receives a friend request, the notification will be titled “[Sender username] has sent you a friend request” and clicking the notification will redirect the user to that person’s profile, where the user can approve or deny the friend request.
- Match invitation:
- When a user receives a match proposal, the notification will be titled “[Sender username] has sent you a match proposal” and clicking the notification will redirect the user to the match lobby, where the user can see the game details and can elect to join by clicking the join button.
- Upcoming match:
- When a user receives an upcoming match proposal, the notification will be titled “Remember your upcoming game of [Game] created by [Match creator]” and clicking the notification will redirect the user to the match lobby, where the user can see the game details and the countdown timer.
- Group invitation:
- When a user receives a group invitation, the notification will be titled “[Sender username] has sent you a group invitation to [Group name]” and clicking the notification will redirect the user to a page with the group details including the group name, members, and description where the user can also approve or deny the invitation.
- Reminder:
- When the user does not perform any actions on a friend request, match invitation or group invitation notification for 3 days, a reminder notification will be generated.
- Achievements:
- When a user gets an achievement while playing a game, a notification should pop up on the top corner of the screen. Clicking on the notification should redirect to the achievements subpage of the user profile
- Message:
- Messages from users or groups generate notifications (if the user is away from the chat). Notification should be just a pop up but should not clutter the user's inbox. Need to ensure users do not end up getting spammed.
Note that notifications are limited such that a user could not send another user multiple spam friend requests or match invitations or otherwise. Additionally, notifications will be removed from the inbox once the user has addressed them.
User Profile
A user can view their own profile or other user profiles by accessing a user page that contains information like their username, bio, profile picture, friends, favorite games, etc. If a user is not friends with another user, they will only be able to see limited information like their username, bio, and profile picture.
Each profile should have an “achievements” subpage button for everyone to access (owner of profile or another user). There are minor details depending on who clicks on the profile for someone else’s profile - consult the Achievements user stories.
Friending
A user can send a friend request by navigating to another user’s profile via search or link and clicking a button on the user profile that says “Send Friend Request.” Before the two users are friends, each can only see basic information about one another including their username, and optionally their profile description and photo.
After an invitation is sent, the other user will receive a friend invitation notification that when clicked will redirect them to the original sender’s profile where accept or deny buttons will be visible at the top of the page. If the user opts to accept the friend request, they will press the associated button and the view of the other user’s profile page will change such that more detailed information will be displayed and the options to invite the user to play games or message them will be available.
Users will be able to see how many friends they have on their profile and will be able to access a more detailed list view of all of their friends.
Friends list should also have integration with apps:
- "Watch" button next to each friend’s name to spectate (Adding Games user stories)
Groups
A user can create a group by providing a group name and group description. That user automatically becomes the group admin and can later go back and add a group photo or adjust permissions like whether other group members can invite new group members to the group. After the group is created, the group admin can send group invitations to other users using their usernames.
The invited users will receive a group invitation notification, which when clicked will redirect them to a page that provides information about the group including the group name, the description, and (optionally) the group photo. Below this information will be two buttons that the user can use to either accept or deny the invitation.
After the user has joined the group, they can see the group’s home page. There will be information about the group, a list of the group members, a list of upcoming matches that everyone in the group is invited to, a mechanism to start a group game, and a link to a group chat with all the members of the group.