Browse Source

optional project : typing-in-progress

content-update
lee 4 years ago
parent
commit
0a0c4bd135
  1. 31
      subjects/real-time-forum/typing-in-progress/README.md
  2. 37
      subjects/real-time-forum/typing-in-progress/audit.md

31
subjects/real-time-forum/typing-in-progress/README.md

@ -0,0 +1,31 @@
## typing in progress
### Objectives
You must follow the same [principles](https://public.01-edu.org/subjects/real-time-forum/README.md) as the first subject.
For this project you must create:
- A Typing in progress engine
### Instructions
A typing in progress engine is the a way that people can see that a user is typing in real time. Allowing you to see in real time that the other user is replying or sending a message.
The typing in progress engine must work in real time! This meaning that if you start typing to a certain user this user will be able to see that you are typing
This engine must have/display:
- A websocket to stablish the connection with both users
- An animation so that the user can see that you are typing, this animation should be smooth (no interruptions/janks) and just enough to draw attention for the user to see (user friendly)
- The name of the user that is typing
- When ever the user stops typing or finishes the conversation, it should not display the animation
For help displaying the typing in progress you can take a look on the js [event](https://developer.mozilla.org/en-US/docs/Web/Events) list, primarily the **Keyboard events** and the **Focus events**
This project will help you learn about:
- [Go routines](https://golangbot.com/goroutines/)
- [Go channels](https://medium.com/rungo/anatomy-of-channels-in-go-concurrency-in-go-1ec336086adb)
- [WebSockets](https://en.wikipedia.org/wiki/WebSocket)
- [Events](https://developer.mozilla.org/en-US/docs/Web/Events)

37
subjects/real-time-forum/typing-in-progress/audit.md

@ -0,0 +1,37 @@
#### Functional
##### Open two browsers (ex: Chrome and Firefox or private windows) and log in with different users in each one. With one user start typing.
###### Can you confirm that the typing in progress engine works?
##### Using the same two browsers, start typing with one of the users.
###### Can you confirm that the typing in progress has the name of the user that is typing?
##### Using the same two browsers, start typing with one of the users.
###### Is there any animation from the typing in progress
##### Using the same two browsers, start typing with one of the users.
###### Does the animation work smoothly, without movement interruptions?
##### Using the same two browsers, start typing with one of the users.
###### Is the animation from the typing in progress engine user friendly (easy to understand/see)?
##### Open two browsers (ex: Chrome and Firefox or private windows) and log in with different users in each one. With one user start typing and then stop.
###### Can you confirm that the typing in progress engine stopped when the user stop typing?
##### Open two browsers (ex: Chrome and Firefox or private windows) and log in with different users in each one, then start a conversation between the users.
###### Is typing in progress engine working properly in both users? (each one can see when the other is typing or not)
#### Bonus
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices/README.md)?
###### +Is the code using synchronicity (Promises and goroutines/channels) to increase performance?
Loading…
Cancel
Save