#### Functional ###### Has the requirement for the allowed packages been respected? ##### Open the project ###### Is the file system for the backend well organized? ##### Open the project ###### Is the file system for the frontend well organized? #### Database ###### Is Sqlite being used in the project as the database? ###### Does the app implement a migration system? ###### Is that migration file system well organized? (like the example from the subject) ##### Start the social network application, then enter the database using the command `"sqlite3 "`. ###### Are the migrations being applied by the migration system? #### Authentication ###### Does the app implement sessions for the authentication of the users? ###### Are the correct form elements being used in the registration? (Email, Password, First Name, Last Name, Date of Birth, Avatar/Image (Optional), Nickname (Optional), About Me (Optional)) ##### Try to register a user. ###### Did the app saved the registered user without error? ##### Try to log in with the user you just registered. ###### Did the log in worked without problem? ##### Try to log in with the user you created, but with a wrong password or email. ###### Did the app detect if the email or password was wrong? ##### Try to register the same user you already registered. ###### Did the app detect if the email/user is already present in the database? ##### Open two browsers (ex: Chrome and Firefox), log in into one and refresh the other browsers. ###### Can you confirm that the browser non logged remains unregistered? ##### Using the two browsers, log in with different users in each one. Then refresh both the browsers. ###### Can you confirm that both browsers continue with the right users? #### Followers ##### Try to follow a private user. ###### Are you able to send a following request to the private user? ##### Try to follow a public user. ###### Are you able to follow the public user without the need of sending a following request? ##### Open two browsers(ex: Chrome and Firefox), log in as two different private users and with one of them try to follow the other. ###### Is the user who received the request able to accept or decline the following request? ##### After following another user successfully try to unfollow him. ###### Were you able to do so? ##### Profile ##### Try opening your own profile. ###### Does the profile displays every information requested in the register form, apart from the password? ##### Try opening your own profile. ###### Does the profile displays every post created by the user? ##### Try opening your own profile. ###### Does the profile displays the users that you follow and the ones who are following you? ##### Try opening your own profile. ###### Are you able to change between private profile and public profile? ##### Open two browsers and log in with different users on them, with one of the users having a private profile and successfully follow that user. ###### Are you able to see a followed user private profile? ##### Using the two browsers with the same users, with one of the users having a private profile and be sure not to follow him. ###### Are you prevented from seeing a non-followed user private profile? ##### Using the two browsers with the users, with one of the users having a public profile and be sure not to follow him. ###### Are you able to see a non-followed user public profile? ##### Using the two browsers with the users, with one of the users having a public profile and successfully follow that user. ###### Are you able to see a followed user public profile? #### Posts ###### Are you able to create a post and commenting already created posts after legging in? ##### Try creating a post. ###### Are you able to include an image (JPG or PNG) or a GIF on it? ##### Try creating a comment. ###### Are you able to include an image (JPG or PNG) or a GIF on it? ##### Try creating a post. ###### Can you specify the type of privacy of the post (private, public, almost private)? ###### If you choose the almost private privacy option, can you specify the users that are allowed to see the post? ##### Groups ##### Try creating a group. ###### Were you able to invite one of your followers to join the group? ##### Open two browsers, log in with different users on each browser, follow each other and with one of the users create a group and invite the other user. ###### Did the other user received a group invitation that he/she can refuse/accept? ##### Using the same browsers and the same users, with one of the users create a group and with the other try to make a group entering request. ###### Did the owner of the group received a request that he/she can refuse/accept? ###### Can a user make group invitations, after being part of the group (being the user different from the creator of the group)? ###### Can a user make a group entering request (a request to enter a group)? ###### After being part of a group, can the user create posts and comment already created posts? ##### Try to create an event in a group. ###### Were you asked for a title, a description, a day/time and at least two options (going, not going)? ##### Using the same browsers and the same users, after both of them becoming part of the same group, create an event with one of them. ###### Is the other user able to see the event and vote in which option he wants? #### Chat ##### Try and open two browsers (ex: Chrome and Firefox), log in with different users in each one. Then with one of the users try to send a private message to the other user. ###### Did the other user received the message in realtime? ##### Using the two browsers with the users start a chat between the two of them. ###### Did the chat between the users went well? (did not crash the server) ##### Try and open three browsers (ex: Chrome and Firefox or a private browser), log in with different users in each one. Then with one of the users try to send a private message to one of the other users. ###### Did only the targeted user received the message? ##### Using the three browsers with the users, enter with each user a common group. Then start sending messages to the common chat room using one of the users. ###### Did all the users that are common to the group receive the message in realtime? ##### Using the three browsers with the users, continue chatting between the users in the group. ###### Did the chat between the users went well? (did not crash the server) ###### Can you confirm that it is possible to send emojis via chat to other users? #### Notifications ###### Can you check the notifications on every page of the project? ##### Open two browsers, log in as two different private users and with one of them try to follow the other. ###### Did the other user received a notification regarding the following request? ##### Open two browsers, log in with different users on each browser, follow each other and with one of the users create a group and invite the other user. ###### Did the invited user received a notification regarding the group invitation request? ##### Open two browsers, log in with different users on each browser, create a group with one of them and with the other send a group entering request. ###### Did the other user received a notification regarding the group entering request? ##### Open two browsers, log in with different users on each browser, become part of the same group with both users and with one of the users create an event. ###### Did the other user received a notification regarding the creation of the event? #### Docker ##### Try and run the application, then use the docker command `"docker ps -a"` ###### Can you confirm that there are two containers, one for the backend and the other for the frontend? #### Bonus ###### +Can you log in using Github or other type of external OAuthenticator (open standard for access delegation)? ###### +Did the student created a migration to fill the database? ###### +If you unfollow a user, do you get a confirmation pop-up? ###### +If you change your profile from public to private (or vice versa), do you get a confirmation pop-up? ###### +Is there other notification apart from the ones explicit on the subject? ###### +Does the project present a script to build the images and containers? (using a script to simplify the build) ###### +Do you think in general this project is well done?