@ -14,8 +14,8 @@ Ascii-art-stylize consists on making your site :
- Your project must contain **CSS**.
- The code must respect the [**good practices**](../../good-practices/README.md).
- We suggest you to search for the principles of a good website design.
- It must be possible to see the text properly despite the colors used.
- We suggest that you search for the principles of a good website design.
- It must be possible to see the text properly regardless of the colors used.
- The website must be [consistent](https://digitalcommunications.wp.st-andrews.ac.uk/2016/04/07/why-is-consistency-important-in-web-design/), [responsive](https://smallbiztrends.com/2013/05/what-is-responsive-web-design.html) and [interactive](https://en.m.wikipedia.org/wiki/Interactive_design).
###### Do the colors used allow you to see the text properly (ex: you can't see yellow text in a white background that well)?
###### Do the colors used allow you to see the text properly (ex: yellow text on a white background is not usually very visible)?
###### Is the design [consistent](https://digitalcommunications.wp.st-andrews.ac.uk/2016/04/07/why-is-consistency-important-in-web-design/)? (examples: every page follows the same palette of colors, is all centered or is it everything aligned to the right, etc.)
- You must follow the same [instructions](../README.md) as in the first subject **while** writing the result into a file. Yep, you will read from one file and write to another.
- You must follow the same [instructions](../README.md) as in the first subject **while** writing the result into a file. Yes, you will read from one file and write to another.
The file must be named by using the flag `--output=<fileName.txt>`, in which `--output` is the flag and `<fileName.txt>` is the file name which will contain the output.
@ -20,9 +20,9 @@ You will have to follow more a less the same principles has the [make-your-game]
- Proper use of [**`requestAnimationFrame`**](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame)
- Measuring performance to know if your code is fast
You must not use canvas, neither [Web-GL](https://get.webgl.org/) or other framework. For this project you will use the framework you did on the [mini-framework](../mini-framework/) project.
You must not use canvas, neither [Web-GL](https://get.webgl.org/) nor another framework. For this project you will use the framework you did on the [mini-framework](../mini-framework/) project.
You will have to make also a chat that enables the different players to talk to each other. You will have to use [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API). This chat **chat can be considered as a "Hello World" of the multiplayer feature** for the **bomberman-dom**.
You will also have to make a chat that enables the different players to talk to each other. You will have to use [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API). This chat **can be considered as a "Hello World" of the multiplayer feature** for the **bomberman-dom**.
#### Game Mechanics
@ -35,7 +35,7 @@ You will have to make also a chat that enables the different players to talk to
1. The map should be fixed so that every player sees the whole map.
2. There will be two types of blocks, the ones that can be destroyed (blocks) and the ones that can not (walls).
1. The walls will be placed always in the same place, while the blocks are meant to be generated randomly on the map. Tip: the optional project [different maps](../make-your-game/different-maps/README.md) can be useful for this part.
1. The walls will always be placed in the same place, while the blocks are meant to be generated randomly on the map. Tip: the optional project [different maps](../make-your-game/different-maps/README.md) can be useful for this part.
2. In the starting positions the players need to be able to survive. For example: if the players place a bomb, they will need to have space to avoid the bomb explosion.
3. The players should be placed in the corners as their starting positions.
@ -67,7 +67,7 @@ Note that the last two are only available for registered users and must refer to
#### Docker
For the forum project you must use Docker. You can see all about docker basics on the [ascii-art-web-dockerize](../ascii-art-web/dockerize/README.md) subject.
For the forum project you must use Docker. You can read about docker basics in the [ascii-art-web-dockerize](../ascii-art-web/dockerize/README.md) subject.
@ -21,7 +21,7 @@ Beside those sections it will have a mandatory section for the generation of sta
You will have to create a profile UI where you can see your own school information. This information/data is present on the graphQL endpoint, where you will have to query it.
For the UI it will be up to you to design it. But have in mind the principles of a [good UI](../good-practices/README.md).\
The UI design is up to you. However, have in mind the principles of a [good UI](../good-practices/README.md).\
The UI will have a statistic section where you can generate graphs to see more about your journey and achievements on the school. This graphs must be done using [SVG](https://developer.mozilla.org/en-US/docs/Web/SVG). You will have to do at least **two different statistic graphs** for the data given.
Using SVG you can create several [types of graphs](https://www.tutorialspoint.com/svg/graph.htm) including interactive graphs and animated graph. It will be up to you to decide what type of graphs you are going to do.
@ -145,8 +145,8 @@ Here is another example of a query using the table `user`:
}
```
**Note** that for this query is required the introduction of variables (arguments),
so it will return just one user, the user that has the `id` equal to `6`.
**Note** that for this query the introduction of variables (arguments)**is required**,
so it will return just one user, the user that has the `id` equal to `6`.
##### Start typing an artist/band beginning with `"G"`.
###### Does the suggestion help you find the band you were looking for?
###### Is the suggestion helping you find the band you are looking for?
##### Start typing a location of one of the concerts.
###### Does the suggestion help you find the location you were looking for?
###### Is the suggestion helping you find the location you are looking for?
##### Try to search for an artist/band member beginning with `"R"`.
###### Does the suggestion help you find the artist/band you were looking for?
###### Is the suggestion helping you find the artist/band you are looking for?
##### Try to search for a creation date of an artist/band.
###### Does the suggestion help you find the artist/band you were looking for?
###### Is the suggestion helping you find the artist/band you are looking for?
###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks)
You must follow the same [principles](../README.md) as the first subject.
Groupie tracker visualizations consists on manipulating the data coming from the API and displaying it in the most presentable way possible to you, following the [_Schneiderman's 8 Golden Rules of Interface Design_](https://www.interaction-design.org/literature/article/shneiderman-s-eight-golden-rules-will-help-you-design-better-interfaces) :
Groupie tracker visualizations consists of manipulating the data coming from the API and displaying it in the most presentable way possible to you. The [_Schneiderman's 8 Golden Rules of Interface Design_](https://www.interaction-design.org/literature/article/shneiderman-s-eight-golden-rules-will-help-you-design-better-interfaces) must be followed:
@ -18,7 +18,7 @@ You need to find the quickest way to get `n` ants across a colony (composed of r
- At the beginning of the game, all the ants are in the room `##start`. The goal is to bring them to the room `##end` with as few moves as possible.
- The shortest path is not necessarily the simplest.
- Some colonies will have many rooms and many links, but no path between `##start` and `##end`.
- Some will have rooms that link to themselves, sending your path-search spinning in circles, some will have too many/too few ants, no `##start` or `##end`, duplicated rooms, links to unknown rooms, rooms with invalid coordinates and a variety of other invalid or poorly-formatted input. In this cases the program will return an error message `ERROR: invalid data format`. If you want, you can elaborate the error message by being more specific (example: `ERROR: invalid data format, invalid number of Ants` or `ERROR: invalid data format, no start room found`).
- Some will have rooms that link to themselves, sending your path-search spinning in circles. Some will have too many/too few ants, no `##start` or `##end`, duplicated rooms, links to unknown rooms, rooms with invalid coordinates and a variety of other invalid or poorly-formatted input. In those cases the program will return an error message `ERROR: invalid data format`. If you wish, you can elaborate a more specific error message (example: `ERROR: invalid data format, invalid number of Ants` or `ERROR: invalid data format, no start room found`).
You must display your results on the standard output in the following format :
##### Try using the Dev Tool/performance and the option rendering with the paint ON, if possible.
###### Is the paint being used as less as possible?
###### Is the paint being used the less possible?
##### Try using the Dev Tool/performance and the option rendering with the layer ON, if possible.
###### Is the layers being used as less as possible?
###### Are the layers being used the less possible?
###### Are the creation of the [layers being promoted](https://developers.google.com/web/fundamentals/performance/rendering/stick-to-compositor-only-properties-and-manage-layer-count) properly?
###### Are the maps available different from each other?
@ -22,30 +22,30 @@
###### Is the tile map in the code [well structured](https://developer.mozilla.org/en-US/docs/Games/Techniques/Tilemaps#The_tilemap_data_structure)?
##### Try using the Dev Tool/Performance
##### Try using the Dev Tool/Performance.
###### Does it not present frame drop?
###### Is there no frame drop?
##### Try using the Dev Tool/Performance
###### Does the game run ator around 60fps
###### Does the game run at/or around 60fps
##### Try using the Dev Tool/performance and the option rendering with the paint ON, if possible.
###### Is the paint being used as less as possible?
###### Is the paint being used the less possible?
##### Try using the Dev Tool/performance and the option rendering with the layer ON, if possible.
###### Is the layers being used as less as possible?
###### Are the layers being used the less possible?
###### Are the creation of the [layers being promoted](https://developers.google.com/web/fundamentals/performance/rendering/stick-to-compositor-only-properties-and-manage-layer-count) properly?
#### Bonus
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project runs quickly and effectively? (Favoring recursivity, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?
###### +Is the code using synchronicity to increase performance?
###### +Do you think in general this project is well done?
###### +Do you think this project is well done in general?
###### Is an introduction of the story provided in the beginning of the game?
##### Try playing the game and reach the specific score to appear the development part of the story.
##### Try playing the game and reach the specific score to make the development part of the story appear.
###### Does the development part of the story appear when you reach the specific score?
@ -14,7 +14,7 @@
##### Try using the Dev Tool/Performance.
###### Does it not present frame drop?
###### Is there no frame drop?
##### Try using the Dev Tool/Performance.
@ -22,24 +22,24 @@
##### Try using the Dev Tool/performance and the option rendering with the paint ON, if possible.
###### Is the paint being used as less as possible?
###### Is the paint being used the less possible?
##### Try using the Dev Tool/performance and the option rendering with the layer ON, if possible.
###### Is the layers being used as less as possible?
###### Are the layers being used the less possible?
###### Are the creation of the [layers being promoted](https://developers.google.com/web/fundamentals/performance/rendering/stick-to-compositor-only-properties-and-manage-layer-count) properly?
#### Bonus
###### +Does the conclusion change depending if you lose or win?
###### +Does the conclusion change depending whether you lose or win?
###### +Is the story appealing and interesting?
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project runs quickly and effectively? (Favoring recursivity, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?
###### +Is the code using synchronicity to increase performance?
###### +Do you think in general this project is well done?
###### +Do you think this project is well done in general?
###### Did the server respond with usage, as above?
##### Try running `"./TCPChat 2525"`.
@ -18,15 +18,15 @@
##### Try opening 3 terminals, run on the first terminal the command `"./TCPChat <port>"` and on the second and third terminal run the command `"nc <host ip> <port>"`.
###### Does both clients connect to the server with success?
###### Do both clients connect to the server with success?
##### Try creating a server and 2 Clients.
###### Did the server responded with a linux logo and asked for the name?
###### Did the server respond with a linux logo and ask for the name?
##### Try creating a server and 2 Clients.
###### Do all Clients receive a message informing that the Client joined the chat?
###### Do all Clients receive a message informing them that the Client joined the chat?
##### Try creating a server and 2 Clients and send a message using the first Client.
@ -40,9 +40,9 @@
###### Did all the Clients (first, second and third) received the same message?
##### Try creating a server and use 2 or 3 different computers and create for each computer one Client.
##### Try creating a server and use 2 or 3 different computers and create one Client for each computer.
###### Did the server/Clients connected with success?
###### Did the server/Clients connect with success?
##### Try creating a server and 4 Clients and disconnect one of the Clients.
###### Are the messages identified by the name of each Client and the time that the messages was sent, as above?
###### Are the messages identified by the name of each Client and the time that the messages were sent, as above?
###### Is the connections between server and Clients well established?
###### Are the connections between server and Clients well established?
###### Does the project present go routines?
###### Does the project use channels or mutexes?
##### Are the students using just the allowed packages?
##### Are the students using only the allowed packages?
###### As an auditor, is this project up to every standard? If not, why are you failing the project?(Empty Work, Incomplete Work, Invalid compilation, Cheating, Crashing, Leaks)
@ -86,7 +86,7 @@
#### Basic
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?
- Checker will then read instructions on the standard input, each instruction will be followed by `\n`. Once all the instructions have been read, checker will execute them on the stack received as an argument.
- If after executing those instructions, stack `a` is actually sorted and `b` is empty, then checker must display "OK" followed by a `\n` on the standard output. In every other case, checker must display "KO" followed by a `\n` on the standard output.
- In case of error, you must display Error followed by a `\n` on the standard error. Errors include for example: some arguments are not integers, there are duplicates, an instruction do not exist and/or is incorrectly formatted.
- In case of there are no arguments the program displays nothing.
- In case of there are no arguments, the program displays nothing.
###### Does the site asks for a nickname, age, gender, first and last name, email and password?
###### Does the site ask for a nickname, age, gender, first and last name, email and password?
##### Try to login as an unregistered user.
@ -14,7 +14,7 @@
##### Go to the login page.
###### Does the login requests for a nickname or an email combined with a password?
###### Does the login request for a nickname or an email combined with a password?
##### Try to login as a registered user.
@ -54,15 +54,15 @@
##### Open two browsers (ex: Chrome and Firefox), log in with different users in each one and with one of them try to send a private message to the other.
###### Did the other user received a notification?
###### Did the other user receive a notification?
##### Open two browsers (ex: Chrome and Firefox), log in with different users in each one and with one of them try to send a private message to the other.
###### Did the other user received the message in real time, without refreshing the page?
###### Did the other user receive the message in real time, without refreshing the page?
##### Try to open a private conversation, that has more then 10 messages.
###### Is the last 10 messages sent to this user loaded for you to see?
###### Are the last 10 messages sent to this user loaded for you to see?
##### Try to open a private conversation, that has more then 20 messages and scroll up to see the rest of the conversation.
@ -74,14 +74,14 @@
#### Bonus
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project runs quickly and effectively? (Favoring recursivity, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?
###### +Does the users have profiles?
###### +Do the users have profiles?
###### +Can the users send images through the private messages?
###### +Is the code using synchronicity (Promises and Go routines/channels) to increase performance?
###### +Do you think in general this project is well done?
###### +Do you think this project is well done in general ?
###### Can you confirm that the typing in progress has the name of the user that is typing?
##### 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.
##### Open two browsers (ex: Chrome and Firefox or private windows) and log in with different users in each one. With one user starting to type and then stopping.
###### 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)
###### Is the typing in progress engine working properly for both users? (each one can see when whether the other is typing or not)
#### Bonus
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project run quickly and effectively? (Favoring recursivity, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?
###### +Is the code using synchronicity (Promises and Go routines/channels) to increase performance?
###### +Do you think in general this project is well done?
###### +Do you think this project is well done in general ?
###### Can you confirm that the program reads a file that describes the processes, analyzes the entire file and proposes a valid solution?
###### Does the project contains a checker program?
###### Does the project contain a checker program?
###### Can you confirm that at least two configuration files were made by the project owner?
@ -20,7 +20,7 @@
##### Try to run the stock exchange program with the files created by the owner of the project.
###### Does the program produces a log file?
###### Does the program produce a log file?
###### Can that log file be used by the checker program?
@ -41,7 +41,7 @@ Stock :
$
```
###### Does the display presents a result similar to the one above (optimizing time;client_content)?
###### Does the display present a result similar to the one above (optimizing time;client_content)?
##### Try to run the stock exchange program with the [build](../examples/build/build) example, `"./stock examples/build/build 10"`.
@ -65,7 +65,7 @@ Stock :
$
```
###### Does the display presents a result similar to the one above (optimizing time;cabinet)?
###### Does the display present a result similar to the one above (optimizing time;cabinet)?
##### Try to run the stock exchange program with the [seller](../examples/seller/seller) example, `"./stock examples/seller/seller 10"`.
@ -98,7 +98,7 @@ Stock :
$
```
###### Does the display presents a result similar to the one above (optimizing euro)?
###### Does the display present a result similar to the one above (optimizing euro)?
##### Try to run the stock exchange program with the [fertilizer](../examples/fertilizer/fertilizer) example, `"./stock examples/fertilizer/fertilizer 1"`.(fertilizer example is self-powered and rotates indefinitely)
@ -124,11 +124,11 @@ Stock :
$
```
###### Does the display presents a result similar to the one above, (optimizing happiness), choosing a reasonable shutdown condition and showing that the whole process went well for several times?
###### Does the display present a result similar to the one above, (optimizing happiness), choosing a reasonable shutdown condition and showing that the whole process went well for several times?
##### Run the same example with a different waiting time `"./stock examples/fertilizer/fertilizer 0.0003"`.(fertilizer example is self-powered and rotates indefinitely)
###### Does the display presents a result with a significantly shorter number of cycles comparing to the previous question output?
###### Does the display present a result with a significantly shorter number of cycles comparing to the previous question output?
##### Try to run the stock exchange program with the [error1](../examples/errors/error1) example, `"./stock examples/errors/error1 1"`.
@ -139,7 +139,7 @@ Exiting...
$
```
###### Does the display presents a result similar to the one above, where it shows the error?
###### Does the display present a result similar to the one above, where it shows the error?
##### Try to run the stock exchange program with the [error2](../examples/errors/error2) example, `"./stock examples/errors/error2 1"`.
@ -150,7 +150,7 @@ Exiting...
$
```
###### Does the display presents a result similar to the one above, where it shows the error?
###### Does the display present a result similar to the one above, where it shows the error?
##### Try to run the stock exchange program with the [error3](../examples/errors/error3) example, `"./stock examples/errors/error3 1"`.
@ -161,7 +161,7 @@ Exiting...
$
```
###### Does the display presents a result similar to the one above, where it shows the error?
###### Does the display present a result similar to the one above, where it shows the error?
##### Try to run the checker program with the [build](../examples/build/build) and the [build.log](../examples/build/build.log) example, `"./checker examples/build/build examples/build/build.log"`.
@ -178,7 +178,7 @@ Trace completed, no error detected.
$
```
###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct?
###### Does the display present a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct?
##### Try to run the checker program with the [seller](../examples/seller/seller) and the [seller.log](../examples/seller/seller.log)example, `"./checker examples/seller/seller examples/seller/seller.log"`.
@ -204,7 +204,7 @@ Trace completed, no error detected.
$
```
###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct?
###### Does the display present a result similar to the one above, where it shows the last cycle and the proof that the sequence is correct?
##### Try to run the checker program with the [testchecker](../examples/checkererror/testchecker) and [testchecker.log](../examples/checkererror/testchecker.log) example, `"./checker examples/checkererror/testchecker examples/checkererror/testchecker.log"`.
@ -222,11 +222,11 @@ Exiting...
$
```
###### Does the display presents a result similar to the one above, where it shows the last cycle and the proof that the sequence has errors?
###### Does the display present a result similar to the one above, where it shows the last cycle and the proof that the sequence has errors?
#### Bonus
###### +Does the project runs quickly and effectively? (Favoring recursive, no unnecessary data requests, etc)
###### +Does the project run quickly and effectively? (Favoring recursivity, no unnecessary data requests, etc...)
###### +Does the code obey the [good practices](../../good-practices/README.md)?