Browse Source

Merge branch 'master' into done-projects

pull/455/head
OGordoo 4 years ago committed by GitHub
parent
commit
a980dd9dc6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg
  2. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.png
  3. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg
  4. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.png
  5. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg
  6. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.png
  7. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg
  8. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.png
  9. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg
  10. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.png
  11. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg
  12. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.png
  13. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg
  14. BIN
      docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.png
  15. 28
      docs/reviews.md
  16. 7
      docs/ubuntu-installation.md
  17. 15
      docs/ubuntu-persistent-installation.md
  18. 6
      scripts/common_packages.txt
  19. 114
      scripts/configure_ubuntu.sh
  20. 6
      scripts/go.sh
  21. 48
      scripts/kickstart.sh
  22. 17
      scripts/setup.sh
  23. 10
      scripts/system/etc/systemd/system/mount-docker.service
  24. 10
      scripts/system/usr/local/bin/mount-docker.sh
  25. 119
      scripts/ubuntu_tweaks.sh
  26. 15
      subjects/ascii-art-web/ascii-art-web.audit.en.md
  27. 6
      subjects/groupie-trackers/groupie-trackers-filters.audit.en.md
  28. 4
      subjects/groupie-trackers/groupie-trackers-filters.en.md
  29. 6
      subjects/groupie-trackers/groupie-trackers-geolocation.audit.en.md
  30. 4
      subjects/groupie-trackers/groupie-trackers-geolocation.en.md
  31. 6
      subjects/groupie-trackers/groupie-trackers-search-bar.audit.en.md
  32. 4
      subjects/groupie-trackers/groupie-trackers-search-bar.en.md
  33. 14
      subjects/groupie-trackers/groupie-trackers.audit.en.md
  34. 4
      subjects/groupie-trackers/groupie-trackers.en.md
  35. 2
      subjects/lem-in/lem-in.audit.en.md
  36. 6
      subjects/lem-in/lem-in.en.md
  37. 2
      subjects/my-ls-1/my-ls-1.audit.en.md
  38. 4
      subjects/my-ls-1/my-ls-1.en.md
  39. 12
      subjects/options.en.md

BIN
docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 124 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 638 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 182 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 1.4 MiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 151 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 707 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 148 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 707 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 156 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 725 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 143 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 734 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg

diff.bin_not_shown

After

Width:  |  Height:  |  Size: 124 KiB

BIN
docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.png

diff.bin_not_shown

Before

Width:  |  Height:  |  Size: 643 KiB

28
docs/reviews.md

@ -4,41 +4,41 @@
Only unblocked bonus exercises can be reviewed, which are usually the last items of a quest.
Bonus exercises are available in quests 02 / 03 / 04 / 05 / 07 / 08 / 09.
<img width="1073" alt="Screenshot 2019-10-17 at 02.43.31" src="img/reviews/Screenshot 2019-10-17 at 02.43.31.png">
<img width="1073" alt="Screenshot 2019-10-17 at 02.43.31" src="img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg">
Making a review involves 2 students who are goning to review each other's exercise.
Each user has to :
- **check** the code of the other one on Github
- **bet** if it is going to fail or succeed in the Review interface
- **run** his own exercise in the Review interface to give a result to compare with the bet, and state if it was right or wrong
- **check** the code of the other one on Github
- **bet** if it is going to fail or succeed in the Review interface
- **run** his own exercise in the Review interface to give a result to compare with the bet, and state if it was right or wrong
## Usage
To submit an exercise to review and be reviewed, go to the `Review panel` on the right of the quest interface and click on the button to submit it :
<img width="1073" alt="Screenshot 2019-10-17 at 01.59.32" src="img/reviews/Screenshot 2019-10-17 at 01.59.32.png">
<img width="1073" alt="Screenshot 2019-10-17 at 01.59.32" src="img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg">
Then, when a match with another student who also wants to review is found, you will be notified :
<img width="1073" alt="Screenshot 2019-10-17 at 02.03.11" src="img/reviews/Screenshot 2019-10-17 at 02.03.11.png">
<img width="1073" alt="Screenshot 2019-10-17 at 02.03.11" src="img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg">
Once you and the other student have confirmed the match, you can go and check the code of the other student on his repository in the component `Your review` :
<img width="1073" alt="Screenshot 2019-10-17 at 02.05.46" src="img/reviews/Screenshot 2019-10-17 at 02.05.46.png">
<img width="1073" alt="Screenshot 2019-10-17 at 02.05.46" src="img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg">
When you have checked his code, those 4 steps will have to be completed to achieve the review :
- You have to bet if the exercise of the other student will fail or succeed after running the tester
- The other student has to do the same with your exercise and make his own bet, that you will see on the component `Review of your exercise`
<img width="1073" alt="Screenshot 2019-10-17 at 02.20.18" src="img/reviews/Screenshot 2019-10-17 at 02.20.18.png">
- You have to bet if the exercise of the other student will fail or succeed after running the tester
- The other student has to do the same with your exercise and make his own bet, that you will see on the component `Review of your exercise`
<img width="1073" alt="Screenshot 2019-10-17 at 02.20.18" src="img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg">
- Once the other student's bet is set, the tester button unblocks and you have to run it on your exercise to output the result determining if your exercise has failed or succeeded ; this result is compared to the other student's bet to determine if it was wrong or right
- The other student also has to run the tester on his exercise to determine his result and so if your bet was wrong or right
<img width="1073" alt="Screenshot 2019-10-17 at 02.22.30" src="img/reviews/Screenshot 2019-10-17 at 02.22.30.png">
- Once the other student's bet is set, the tester button unblocks and you have to run it on your exercise to output the result determining if your exercise has failed or succeeded ; this result is compared to the other student's bet to determine if it was wrong or right
- The other student also has to run the tester on his exercise to determine his result and so if your bet was wrong or right
<img width="1073" alt="Screenshot 2019-10-17 at 02.22.30" src="img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg">
In fact, a bet is succeeded if it is equal to the tester output :
<img width="1073" alt="Screenshot 2019-10-17 at 02.24.04" src="img/reviews/Screenshot 2019-10-17 at 02.24.04.png">
<img width="1073" alt="Screenshot 2019-10-17 at 02.24.04" src="img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg">
You can have those 4 cases :

7
docs/ubuntu-installation.md

@ -2,7 +2,7 @@
## OS Installation
Download and boot the [last Ubuntu release](http://releases.ubuntu.com/19.04/ubuntu-19.04-desktop-amd64.iso).
Download and boot the [last Ubuntu release](http://releases.ubuntu.com/19.10/ubuntu-19.10-desktop-amd64.iso).
Follow the steps :
@ -41,8 +41,9 @@ Run a terminal and type these commands :
```shell
unset HISTFILE
sudo apt-get -y install curl
bash <(curl -sSL raw.githubusercontent.com/01-edu/public/master/scripts/kickstart.sh)
sudo apt-get -y install git
git clone https://github.com/01-edu/public.git
public/scripts/setup.sh
```
The script will ask for student user password (which will be deleted after) and then after a long configuration process it will restart the computer.

15
docs/ubuntu-persistent-installation.md

@ -30,15 +30,26 @@ Skip the welcoming window.
Don't install updates if Ubuntu asks to. The scripts will.
## OS customization
You can overwrite the files of the folder `system` by setting an environment variable named `OVERWRITE` with the format : `Destination folder;Git URL`.
For example to write the content of the repository [github.com/xpetit/custom](https://github.com/xpetit/custom) in the system folder :
```shell
export OVERWRITE='.;https://github.com/xpetit/custom.git'
```
## OS configuration
Run a terminal and type these commands :
```shell
unset HISTFILE
sudo apt-get -y install curl
sudo apt-get -y install git
export PERSISTENT=
bash <(curl -sSL raw.githubusercontent.com/01-edu/public/master/scripts/kickstart.sh)
git clone https://github.com/01-edu/public.git
public/scripts/setup.sh
```
After reboot you should install Virtual Box additions (and reboot again) :

6
scripts/common_packages.txt

@ -13,7 +13,6 @@ dialog
dmidecode
dnsutils
file
firmware-linux-nonfree
git
hdparm
iftop
@ -25,14 +24,15 @@ isc-dhcp-client
isc-dhcp-common
jq
less
linux-headers-amd64
linux-image-amd64
linux-headers-generic
linux-image-generic
lm-sensors
locales
lsb-release
lshw
lsof
lz4
lz4
lzop
man
mc

114
scripts/install_client.sh → scripts/configure_ubuntu.sh

@ -1,9 +1,9 @@
#!/usr/bin/env bash
# Configure Z01 client
# Configure Z01 Ubuntu
# Log stdout & stderr
exec > >(tee -i /tmp/install_client.log) 2>&1
exec > >(tee -i /tmp/install_ubuntu.log) 2>&1
script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd $script_dir
@ -21,6 +21,8 @@ apt-get update
apt-get -y upgrade
apt-get -y autoremove --purge
apt-get -y install curl
# Remove outdated kernels
# old_kernels=$(ls -1 /boot/config-* | sed '$d' | xargs -n1 basename | cut -d- -f2,3)
@ -33,7 +35,6 @@ apt-get -yf install
. bash_tweaks.sh
. ssh.sh
. firewall.sh
. ubuntu_tweaks.sh
. grub.sh "$disk"
. go.sh
. nodejs.sh
@ -44,17 +45,117 @@ apt-get -yf install
. exam.sh
. docker.sh
# Install additional packages
# Purge unused Ubuntu packages
pkgs="
apparmor
apport
bind9
bolt
cups*
exim*
fprintd
friendly-recovery
gnome-initial-setup
gnome-online-accounts
gnome-power-manager
gnome-software
gnome-software-common
memtest86+
orca
popularity-contest
python3-update-manager
secureboot-db
snapd
speech-dispatcher*
spice-vdagent
ubuntu-report
ubuntu-software
unattended-upgrades
update-inetd
update-manager-core
update-notifier
update-notifier-common
whoopsie
xdg-desktop-portal
"
apt-get -y purge $pkgs
apt-get -y autoremove --purge
# Install packages
pkgs="$(cat common_packages.txt)
baobab
blender
dconf-editor
emacs
f2fs-tools
firefox
gimp
gnome-calculator
gnome-system-monitor
gnome-tweaks
golang-mode
i3lock
imagemagick
mpv
vim
virtualbox
xfsprogs
zenity
"
apt-get -y install $pkgs
# Disable services
services="
apt-daily-upgrade.timer
apt-daily.timer
console-setup.service
e2scrub_reap.service
keyboard-setup.service
motd-news.timer
remote-fs.target
"
systemctl disable $services
services="
grub-common.service
plymouth-quit-wait.service
"
systemctl mask $services
# Disable GTK hidden scroll bars
echo GTK_OVERLAY_SCROLLING=0 >> /etc/environment
# Reveal boot messages
sed -i -e 's/TTYVTDisallocate=yes/TTYVTDisallocate=no/g' /etc/systemd/system/getty.target.wants/getty@tty1.service
# Speedup boot
sed -i 's/MODULES=most/MODULES=dep/g' /etc/initramfs-tools/initramfs.conf
sed -i 's/COMPRESS=gzip/COMPRESS=lz4/g' /etc/initramfs-tools/initramfs.conf
# Reveal autostart services
sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
# Remove password complexity constraints
sed -i 's/ obscure / minlen=1 /g' /etc/pam.d/common-password
# Remove splash screen (plymouth)
sed -i 's/quiet splash/quiet/g' /etc/default/grub
update-initramfs -u
update-grub
# Change ext4 default mount options
sed -i -e 's/ errors=remount-ro/ noatime,nodelalloc,errors=remount-ro/g' /etc/fstab
# Disable swapfile
swapoff /swapfile ||:
rm -f /swapfile
sed -i '/swapfile/d' /etc/fstab
# Put temporary and cache folders as tmpfs
echo 'tmpfs /tmp tmpfs defaults,noatime,rw,nosuid,nodev,noexec,mode=1777,size=1G 0 0' >> /etc/fstab
# Install additional drivers
ubuntu-drivers install ||:
@ -116,6 +217,9 @@ if ! test -v PERSISTENT; then
# Disable user password
passwd -d student
# Enable docker relocation
systemctl enable mount-docker
# Remove tty
cat <<-EOF>> /etc/systemd/logind.conf
NAutoVTs=0

6
scripts/go.sh

@ -6,9 +6,9 @@ script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd $script_dir
. set.sh
wget https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.6.linux-amd64.tar.gz
rm go1.13.6.linux-amd64.tar.gz
wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz
rm go1.13.7.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
# Set-up all users

48
scripts/kickstart.sh

@ -1,48 +0,0 @@
#!/usr/bin/env bash
# Run me with:
#
# bash <(curl -Ss raw.githubusercontent.com/01-edu/public/master/scripts/kickstart.sh)
# Treat unset variables as an error when substituting.
set -u
# Exit immediately if a command exits with a non-zero status.
set -e
# Set the variable corresponding to the return value of a pipeline is the status
# of the last command to exit with a non-zero status, or zero if no command
# exited with a non-zero status
set -o pipefail
# Separate tokens on newlines only
IFS='
'
# The value of this parameter is expanded like PS1 and the expanded value is the
# prompt printed before the command line is echoed when the -x option is set
# (see The Set Builtin). The first character of the expanded value is replicated
# multiple times, as necessary, to indicate multiple levels of indirection.
# \D{%F %T} prints date like this : 2019-12-31 23:59:59
PS4='-\D{%F %T} '
# Print commands and their arguments as they are executed.
set -x
# Skip dialogs during apt-get install commands
export DEBIAN_FRONTEND=noninteractive # DEBIAN_PRIORITY=critical
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.screensaver lock-enabled false
cd
wget github.com/01-edu/public/archive/master.zip
unzip master.zip
cd public-master/scripts
sudo -E ./install_client.sh
cat dconfig.txt | dconf load /
cd
rm -rf master.zip public-master
reboot

17
scripts/setup.sh

@ -0,0 +1,17 @@
#!/usr/bin/env bash
# Setup everything
script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd $script_dir
. set.sh
repo_dir=$(git rev-parse --show-toplevel)
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.screensaver lock-enabled false
sudo -E ./configure_ubuntu.sh
cat dconfig.txt | dconf load /
rm -rf "$repo_dir"
reboot

10
scripts/system/etc/systemd/system/mount-docker.service

@ -0,0 +1,10 @@
[Unit]
Description=Docker relocation
Before=docker.service
[Service]
ExecStart=/usr/local/bin/mount-docker.sh
Type=oneshot
[Install]
RequiredBy=docker.service

10
scripts/system/usr/local/bin/mount-docker.sh

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# Unofficial Bash Strict Mode
set -euo pipefail
IFS='
'
cp -a /var/lib/docker /tmp
mount -t tmpfs -osize=2G tmpfs /var/lib/docker
mv /tmp/docker/* /var/lib/docker

119
scripts/ubuntu_tweaks.sh

@ -1,119 +0,0 @@
#!/usr/bin/env bash
# Configure ubuntu desktop systems
script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd "$script_dir"
. set.sh
# Install dependencies
apt-get -y install lz4
# Change ext4 default mount options
sed -i -e 's/ errors=remount-ro/ noatime,nodelalloc,errors=remount-ro/g' /etc/fstab
# Disable GTK hidden scroll bars
echo GTK_OVERLAY_SCROLLING=0 >> /etc/environment
# Reveal boot messages
sed -i -e 's/TTYVTDisallocate=yes/TTYVTDisallocate=no/g' /etc/systemd/system/getty.target.wants/getty@tty1.service
# Speedup boot
sed -i 's/MODULES=most/MODULES=dep/g' /etc/initramfs-tools/initramfs.conf
sed -i 's/COMPRESS=gzip/COMPRESS=lz4/g' /etc/initramfs-tools/initramfs.conf
# Reveal autostart services
sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop
# Remove password complexity constraints
sed -i 's/ obscure / minlen=1 /g' /etc/pam.d/common-password
# Remove splash screen (plymouth)
sed -i 's/quiet splash/quiet/g' /etc/default/grub
update-initramfs -u
update-grub
# Disable swapfile
swapoff /swapfile ||:
rm -f /swapfile
sed -i '/swapfile/d' /etc/fstab
# Purge unused Ubuntu packages
pkgs="
apparmor
apport
bind9
bolt
cups*
exim*
fprintd
friendly-recovery
gnome-initial-setup
gnome-online-accounts
gnome-power-manager
gnome-software
gnome-software-common
memtest86+
orca
popularity-contest
python3-update-manager
secureboot-db
snapd
speech-dispatcher*
spice-vdagent
ubuntu-report
ubuntu-software
unattended-upgrades
update-inetd
update-manager-core
update-notifier
update-notifier-common
whoopsie
xdg-desktop-portal
"
apt-get -y purge $pkgs
apt-get -y autoremove --purge
services="
apt-daily-upgrade.timer
apt-daily.timer
console-setup.service
e2scrub_reap.service
keyboard-setup.service
motd-news.timer
remote-fs.target
"
systemctl disable $services
services="
grub-common.service
plymouth-quit-wait.service
"
systemctl mask $services
# Install packages
pkgs="$(cat common_packages.txt)
baobab
blender
dconf-editor
firefox
gimp
gnome-calculator
gnome-system-monitor
gnome-tweaks
i3lock
imagemagick
mpv
virtualbox
zenity
"
# Replace debian packages with ubuntu's
pkgs=${pkgs/linux-image-amd64/linux-image-generic}
pkgs=${pkgs/linux-headers-amd64/linux-headers-generic}
pkgs=${pkgs/firmware-linux-nonfree}
apt-get -y install $pkgs

15
subjects/ascii-art-web/ascii-art-web.audit.en.md

@ -4,7 +4,11 @@
###### Does the project contain HTML files?
##### Try inputting `"{123}\n<Hello> (World)!"` with the standard template/banner.
##### Try inputting with the standard template/banner the following example:
In the first line `{123}`
In the second line `<Hello> (World)!`
```
__ __
/ / _ ____ _____ \ \
@ -38,7 +42,7 @@
```
###### Does it display the right result as above?
##### Try to input `"$% \"="` using the template/banner shadow.
##### Try to input `"$% "="` using the template/banner shadow.
```
_| _|
_| _|_| _| _| _|
@ -67,11 +71,10 @@ o-o-o o--o o-o o o o o-o | | o o
###### Does it display an understandable graphical representation of the result?
##### Try to navigate between all the available pages in the website.
###### Are all the pages working? Does the project avoid [404 status](https://www.restapitutorial.com/httpstatuscodes.html)?
###### Does the project avoid HTTP status [400 bad request](https://kinsta.com/knowledgebase/400-bad-request/#causes)?
###### Are all the pages working? Does the project implement [404 status](https://www.restapitutorial.com/httpstatuscodes.html)?
###### Does the project avoid HTTP status [500 internal server error](https://www.restapitutorial.com/httpstatuscodes.html)?
###### Does the project implement HTTP status [400 bad request](https://kinsta.com/knowledgebase/400-bad-request/#causes)?
###### Does the project implement HTTP status [500 internal server error](https://www.restapitutorial.com/httpstatuscodes.html)?
##### Try making a request to the server (clicking a button to generate the ascii-art representation on the website)
###### Is the communication between [server and client](https://www.geeksforgeeks.org/client-server-model/) well established?

6
subjects/groupie-trackers/groupie-trackers-filters.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
###### Does the project have a range [filter](https://dribbble.com/shots/1751801-Ui-Elements-Social-Network-Analytics/attachments/284260)?
###### Does the project have a check box [filter](https://dribbble.com/shots/1751801-Ui-Elements-Social-Network-Analytics/attachments/284260)?
@ -37,9 +39,11 @@
#### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear?
#### Social
###### +Did you learn anything from this project?
###### +Would you recommend/nominate this program as an example for the rest of the school?
###### +Would you recommend/nominate this program as an example for the rest of the school?

4
subjects/groupie-trackers/groupie-trackers-filters.en.md

@ -33,3 +33,7 @@ This project will help you learn about:
- You must handle website errors.
- The code must respect the [good practices](https://public.01-edu.org/subjects/good-practices.en)
- It is recommended that the code should present a **test file**.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed

6
subjects/groupie-trackers/groupie-trackers-geolocation.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
###### Is [geocoding](https://developers.google.com/maps/documentation/geocoding/intro) API being used to converting addresses into geographic coordinates?
##### Try to input `"Queen"` to see the concerts locations.
@ -93,11 +95,15 @@ gulf shores alabama usa
#### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear?
###### +Does the project run using an API?
#### Social
###### +Did you learn anything from this project?
###### +Can it be open-sourced or be used for other sources?
###### +Would you recommend/nominate this program as an example for the rest of the school?

4
subjects/groupie-trackers/groupie-trackers-geolocation.en.md

@ -26,6 +26,10 @@ This project will help you learn about :
- The code must respect the [good practices](https://public.01-edu.org/subjects/good-practices.en)
- It is recommended that the code should present a **test file**
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
- Here is a simple [example](https://www.google.com/maps/place/Henderson+Island/@-24.3990887,-128.3627872,13.5z/data=!4m5!3m4!1s0x9e43f2cfaa5822c5:0x58ba891a3ed4565f!8m2!3d-24.3743846!4d-128.3270931) of the process of giving a address and returning a marker to the location.

6
subjects/groupie-trackers/groupie-trackers-search-bar.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
##### Start typing in the search bar `"Billie Joe"`.
###### Does it present as suggestions the member "Billie Joe Armstrong"?
@ -45,11 +47,15 @@
#### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear?
###### +Does the project run using an API?
#### Social
###### +Did you learn anything from this project?
###### +Can it be open-sourced / be used for other sources?
###### +Would you recommend/nominate this program as an example for the rest of the school?

4
subjects/groupie-trackers/groupie-trackers-search-bar.en.md

@ -28,3 +28,7 @@ This project will help you learn about :
- The program must be written in **Go**.
- The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices.en).
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed

14
subjects/groupie-trackers/groupie-trackers.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
###### Is the data from the artists being used?
###### Is data from the relations being used?
@ -50,27 +52,39 @@
###### Does the event responds as expected?
###### Did the server crashed?
###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)?
###### Has the website runned without crashing at anytime?
###### Are all the pages working? (Absence of 404 page?)
###### Does the project avoid [HTTP status 400](https://kinsta.com/knowledgebase/400-bad-request/#causes)?
###### Does the project avoid [HTTP status 500](https://www.restapitutorial.com/httpstatuscodes.html)?
###### Is the communication between server and client well established?
###### Does the server present all the needed handlers and patterns for the http requests?
#### General
###### +Does the event system run as asynchronous? (usage of go routines and channels)
###### +Is the site hosted or deployed? Can you access the website through a DNS (Domain Name System)?
#### Basic
###### +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.en)?
###### +Is there a test file for this code?
#### Social
###### +Did you learn anything from this project?
###### +Can it be open-sourced / be used for other sources?
###### +Would you recommend/nominate this program as an example for the rest of the school?

4
subjects/groupie-trackers/groupie-trackers.en.md

@ -36,6 +36,10 @@ This project will help you learn about :
- The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices.en).
- It is recommended that the code should present a **test file**.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
- You can see an example of a RESTful API [here](https://rickandmortyapi.com/)

2
subjects/lem-in/lem-in.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
##### Try to run `"./lem-in example00.txt"`.
###### Is the program able to read the ant farm in this standard input?

6
subjects/lem-in/lem-in.en.md

@ -1,4 +1,4 @@
## lem-in
## lem-in
### Objectives
@ -113,6 +113,10 @@ This project will help you learn about :
- The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices.en).
- It is recommended that the code should present a **test file**.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
Example 1 :

2
subjects/my-ls-1/my-ls-1.audit.en.md

@ -1,5 +1,7 @@
#### Functional
###### Has the requirement for the allowed packages been respected? (Reminder for this project: (only [standard packages](https://golang.org/pkg/)
##### Run both my-ls-1 and the system command `ls` with no arguments.
###### Does it display the same files and/or folders in the same order?

4
subjects/my-ls-1/my-ls-1.en.md

@ -51,6 +51,10 @@ This project will help you learn about :
- We suggest that you consult the `ls` command manual.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage
You can see how the `ls` command works, by using it on your terminal.

12
subjects/options.en.md

@ -14,6 +14,8 @@ Write a program that takes an undefined number of arguments which could be consi
- Launching the program without arguments or with the `-h` flag activated must print all the valid `options` on the standard output, as shown on one of the following examples.
- Please note the `-h` flag has priority over the others flags when it is called first in one of the arguments. (See the examples)
- A wrong `option` must print `Invalid Option` followed by a newline.
## Usage
@ -28,6 +30,16 @@ student@ubuntu:~/[[ROOT]]/test$ ./test -z | cat -e
00000010 00000000 00000000 00000000$
student@ubuntu:~/[[ROOT]]/test$ ./test -abc -hijk | cat -e
options: abcdefghijklmnopqrstuvwxyz$
student@ubuntu:~/[[ROOT]]/test$ ./test -h | cat -e
options: abcdefghijklmnopqrstuvwxyz$
student@ubuntu:~/[[ROOT]]/test$ ./test -zh | cat -e
00000010 00000000 00000000 10000000$
student@ubuntu:~/[[ROOT]]/test$ ./test -z -h | cat -e
options: abcdefghijklmnopqrstuvwxyz$
student@ubuntu:~/[[ROOT]]/test$ ./test -hhhhhh | cat -e
options: abcdefghijklmnopqrstuvwxyz$
student@ubuntu:~/[[ROOT]]/test$ ./test -eeeeee | cat -e
00000000 00000000 00000000 00010000$
student@ubuntu:~/[[ROOT]]/test$ ./test -% | cat -e
Invalid Option$
student@ubuntu:~/[[ROOT]]/test$

Loading…
Cancel
Save