mirror of https://github.com/01-edu/public.git
MSilva95
4 years ago
committed by
GitHub
4 changed files with 587 additions and 0 deletions
@ -0,0 +1,213 @@ |
|||||||
|
#### Functional |
||||||
|
|
||||||
|
##### 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 <database_name.db>"`. |
||||||
|
|
||||||
|
###### 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) |
@ -0,0 +1,62 @@ |
|||||||
|
## App image |
||||||
|
|
||||||
|
### Objectives |
||||||
|
|
||||||
|
For this optional, `cross platform app image`, you will have to implement a desktop app using [Electron](https://www.electronjs.org/): |
||||||
|
|
||||||
|
This desktop app should have as principle objective the creation of a messenger, just like facebook or discord. It should be able to run in multiple platforms : windows, linux and macOS. |
||||||
|
|
||||||
|
You will have to create: |
||||||
|
|
||||||
|
- A way to see which users are online (able to talk) |
||||||
|
- A way to notify the user whenever he/she receives a message |
||||||
|
- A real time communication between the users that are chatting |
||||||
|
- A section for emojis, where users can send to each other |
||||||
|
- An offline possibility here you can see all messages from all users, but can not send messages to them or receive. You must inform the user that he/she is offline/online |
||||||
|
- A search engine to search for a messages |
||||||
|
|
||||||
|
We encourage you to add any other additional features that you find relevant. |
||||||
|
|
||||||
|
### Instructions |
||||||
|
|
||||||
|
You must use a method of authentication for the app. |
||||||
|
|
||||||
|
To be able for the users to use the app you must create a login form, the user should provide: |
||||||
|
|
||||||
|
- Email |
||||||
|
- Password |
||||||
|
|
||||||
|
If the user does not present a registration, then the app should redirect to the social network website (mandatory project) so that the user can register himself. |
||||||
|
|
||||||
|
When the user logs in or registers he should stay logged in until he/she chooses a logout option that should be available at all times. Even when the user exits the app and opens it again it should continue logged in until the [session](https://www.electronjs.org/docs/api/session) expires (the time limit is up to you to decide) or the user decides to logout. |
||||||
|
|
||||||
|
#### Websocket |
||||||
|
|
||||||
|
The use of websocket must be present in this project: |
||||||
|
|
||||||
|
- You must be able to send messages in real time just like the [mandatory project](https://public.01-edu.org/subjects/social-network/), you should be able to send chat messages using the website as an user, to the desktop app as another user. |
||||||
|
- To see the status of a user, whenever a user goes online/offline the status must change automatically, in real time. So when a user goes offline all the followers must be able to see that the user went offline and its not available to talk. The same happens when the user goes online, all followers must see that he/she is online. |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
#### Offline |
||||||
|
|
||||||
|
If the internet connection goes down or the user does not have internet, the app should warn the user that there is no connection by displaying a message to say so. The offline mode allows the user to view all the messages sent, but if the user tries to send a message it should display the same error message as the first one. |
||||||
|
|
||||||
|
Here's a tip [offline/online](https://www.electronjs.org/docs/tutorial/online-offline-events) |
||||||
|
|
||||||
|
The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices/). |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
#### Search |
||||||
|
|
||||||
|
The search should be interactive, in other words, the results should be displaying as you write, not needing a button for you to click. |
||||||
|
|
||||||
|
This project will help you learn about: |
||||||
|
|
||||||
|
- Data manipulation and local storage |
||||||
|
- Authentication |
||||||
|
- Desktop Applications: |
||||||
|
- [Electron](https://www.electronjs.org/docs) |
||||||
|
- Websocket |
@ -0,0 +1,85 @@ |
|||||||
|
#### General |
||||||
|
|
||||||
|
###### Does the app implement sessions for the authentication of the users? |
||||||
|
|
||||||
|
###### Are the correct form elements being used in the login? (Email, Password) |
||||||
|
|
||||||
|
###### Can you confirm that it is possible to send emojis to other users using the desktop app? |
||||||
|
|
||||||
|
#### Functional |
||||||
|
|
||||||
|
##### Try to register a user. |
||||||
|
|
||||||
|
###### Did the app redirect the user to the social network site? |
||||||
|
|
||||||
|
##### Try to log in the desktop app with the user you just registered. |
||||||
|
|
||||||
|
###### Did the login 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? |
||||||
|
|
||||||
|
##### Log into the desktop app, then close the app and open it once more. |
||||||
|
|
||||||
|
###### Did the app log in automatically, without being needed to log in once more? |
||||||
|
|
||||||
|
##### Log into the desktop app, then logout and close the app, open it once more. |
||||||
|
|
||||||
|
###### Is the app asking for the user to log in? |
||||||
|
|
||||||
|
##### Try and open a browser with the social-network website and the desktop app, log in with different users in each one. Then with the browser try to send a private message to the desktop user. |
||||||
|
|
||||||
|
###### Did the desktop user receive the message in realtime? |
||||||
|
|
||||||
|
##### Using the same browser and desktop app, try to have a chat between the users. |
||||||
|
|
||||||
|
###### Did the chat between the users went well? |
||||||
|
|
||||||
|
##### Using the same browser and desktop app, try to logout the browser user. |
||||||
|
|
||||||
|
###### Did the user went automatically offline (in real time) on the desktop app? |
||||||
|
|
||||||
|
##### Using the same browser and desktop app, try to log into the browser as a follower of the desktop user (so that the desktop user can see him/her). |
||||||
|
|
||||||
|
###### Did the user went automatically online (in real time) on the desktop app? |
||||||
|
|
||||||
|
##### Try to lose the internet connection while being in the app. |
||||||
|
|
||||||
|
###### Is there some kind of warning that the user lost internet connection? |
||||||
|
|
||||||
|
##### Try to send a message to a follower while offline. |
||||||
|
|
||||||
|
###### Did the app warn that there is no internet connection? |
||||||
|
|
||||||
|
##### Try to search for something in a chat. |
||||||
|
|
||||||
|
###### Is the search engine interactive? (as you write the results are displayed) |
||||||
|
|
||||||
|
##### Try going to the chat conversation between two users, then search for a specific message. |
||||||
|
|
||||||
|
###### Did it output the expected result? |
||||||
|
|
||||||
|
##### Try to run a [VM](https://www.virtualbox.org/) (virtual machine) with Windows, then install the social network desktop application. |
||||||
|
|
||||||
|
###### Did the app installed without any problems? |
||||||
|
|
||||||
|
##### Using this VM, open the app and and repeat all the previous questions. |
||||||
|
|
||||||
|
###### Does the app behave like it should? |
||||||
|
|
||||||
|
##### Try to run a [VM](https://www.virtualbox.org/) (virtual machine) with macOS, then install the social network desktop application. |
||||||
|
|
||||||
|
###### Did the app installed with out any problems? |
||||||
|
|
||||||
|
##### Using this VM, open the app and and repeat all the previous questions. |
||||||
|
|
||||||
|
###### Does the app behave like it should? |
||||||
|
|
||||||
|
#### Bonus |
||||||
|
|
||||||
|
###### +Does the app have an External Authentication? (Github, Google, etc) |
||||||
|
|
||||||
|
###### +Does the search engine include operators? (include, exclude or fuzzy) |
||||||
|
|
||||||
|
###### +Does the search engine include operators for numbers? (equal, not equal, greater than, lesser than) |
Loading…
Reference in new issue