Browse Source

Merge branch 'master' into done-projects

pull/455/head
OGordoo 5 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. 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. 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. Making a review involves 2 students who are goning to review each other's exercise.
Each user has to : Each user has to :
- **check** the code of the other one on Github - **check** the code of the other one on Github
- **bet** if it is going to fail or succeed in the Review interface - **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 - **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 ## 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 : 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 : 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` : 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 : 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 - 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` - 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"> <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 - 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 - 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"> <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 : 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 : You can have those 4 cases :

7
docs/ubuntu-installation.md

@ -2,7 +2,7 @@
## OS Installation ## 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 : Follow the steps :
@ -41,8 +41,9 @@ Run a terminal and type these commands :
```shell ```shell
unset HISTFILE unset HISTFILE
sudo apt-get -y install curl sudo apt-get -y install git
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
``` ```
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. 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. 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 ## OS configuration
Run a terminal and type these commands : Run a terminal and type these commands :
```shell ```shell
unset HISTFILE unset HISTFILE
sudo apt-get -y install curl sudo apt-get -y install git
export PERSISTENT= 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) : After reboot you should install Virtual Box additions (and reboot again) :

6
scripts/common_packages.txt

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

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

@ -1,9 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Configure Z01 client # Configure Z01 Ubuntu
# Log stdout & stderr # 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)" script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd $script_dir cd $script_dir
@ -21,6 +21,8 @@ apt-get update
apt-get -y upgrade apt-get -y upgrade
apt-get -y autoremove --purge apt-get -y autoremove --purge
apt-get -y install curl
# Remove outdated kernels # Remove outdated kernels
# old_kernels=$(ls -1 /boot/config-* | sed '$d' | xargs -n1 basename | cut -d- -f2,3) # 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 . bash_tweaks.sh
. ssh.sh . ssh.sh
. firewall.sh . firewall.sh
. ubuntu_tweaks.sh
. grub.sh "$disk" . grub.sh "$disk"
. go.sh . go.sh
. nodejs.sh . nodejs.sh
@ -44,17 +45,117 @@ apt-get -yf install
. exam.sh . exam.sh
. docker.sh . docker.sh
# Install additional packages # Purge unused Ubuntu packages
pkgs=" 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 emacs
f2fs-tools f2fs-tools
firefox
gimp
gnome-calculator
gnome-system-monitor
gnome-tweaks
golang-mode golang-mode
i3lock
imagemagick
mpv
vim vim
virtualbox
xfsprogs xfsprogs
zenity
" "
apt-get -y install $pkgs 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 # Install additional drivers
ubuntu-drivers install ||: ubuntu-drivers install ||:
@ -116,6 +217,9 @@ if ! test -v PERSISTENT; then
# Disable user password # Disable user password
passwd -d student passwd -d student
# Enable docker relocation
systemctl enable mount-docker
# Remove tty # Remove tty
cat <<-EOF>> /etc/systemd/logind.conf cat <<-EOF>> /etc/systemd/logind.conf
NAutoVTs=0 NAutoVTs=0

6
scripts/go.sh

@ -6,9 +6,9 @@ script_dir="$(cd -P "$(dirname "$BASH_SOURCE")" && pwd)"
cd $script_dir cd $script_dir
. set.sh . set.sh
wget https://dl.google.com/go/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.6.linux-amd64.tar.gz tar -C /usr/local -xzf go1.13.7.linux-amd64.tar.gz
rm go1.13.6.linux-amd64.tar.gz rm go1.13.7.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
# Set-up all users # 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? ###### 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? ###### 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? ###### Does it display an understandable graphical representation of the result?
##### Try to navigate between all the available pages in the website. ##### 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)? ###### Are all the pages working? Does the project implement [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)?
###### 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) ##### 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? ###### 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 #### 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 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)? ###### 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 #### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)? ###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear? ###### +Are the instructions in the website clear?
#### Social #### Social
###### +Did you learn anything from this project? ###### +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. - You must handle website errors.
- The code must respect the [good practices](https://public.01-edu.org/subjects/good-practices.en) - 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**. - 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 #### 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? ###### 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. ##### Try to input `"Queen"` to see the concerts locations.
@ -93,11 +95,15 @@ gulf shores alabama usa
#### Basic #### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)? ###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear? ###### +Are the instructions in the website clear?
###### +Does the project run using an API? ###### +Does the project run using an API?
#### Social #### Social
###### +Did you learn anything from this project? ###### +Did you learn anything from this project?
###### +Can it be open-sourced or be used for other sources? ###### +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? ###### +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) - 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** - 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 ### 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. - 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 #### 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"`. ##### Start typing in the search bar `"Billie Joe"`.
###### Does it present as suggestions the member "Billie Joe Armstrong"? ###### Does it present as suggestions the member "Billie Joe Armstrong"?
@ -45,11 +47,15 @@
#### Basic #### Basic
###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)? ###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Are the instructions in the website clear? ###### +Are the instructions in the website clear?
###### +Does the project run using an API? ###### +Does the project run using an API?
#### Social #### Social
###### +Did you learn anything from this project? ###### +Did you learn anything from this project?
###### +Can it be open-sourced / be used for other sources? ###### +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? ###### +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 program must be written in **Go**.
- The code must respect the [**good practices**](https://public.01-edu.org/subjects/good-practices.en). - 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 #### 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 the data from the artists being used?
###### Is data from the relations being used? ###### Is data from the relations being used?
@ -50,27 +52,39 @@
###### Does the event responds as expected? ###### Does the event responds as expected?
###### Did the server crashed? ###### Did the server crashed?
###### Does the server use the right [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)? ###### 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? ###### Has the website runned without crashing at anytime?
###### Are all the pages working? (Absence of 404 page?) ###### 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 400](https://kinsta.com/knowledgebase/400-bad-request/#causes)?
###### Does the project avoid [HTTP status 500](https://www.restapitutorial.com/httpstatuscodes.html)? ###### Does the project avoid [HTTP status 500](https://www.restapitutorial.com/httpstatuscodes.html)?
###### Is the communication between server and client well established? ###### Is the communication between server and client well established?
###### Does the server present all the needed handlers and patterns for the http requests? ###### Does the server present all the needed handlers and patterns for the http requests?
#### General #### General
###### +Does the event system run as asynchronous? (usage of go routines and channels) ###### +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)? ###### +Is the site hosted or deployed? Can you access the website through a DNS (Domain Name System)?
#### Basic #### 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](https://public.01-edu.org/subjects/good-practices.en)? ###### +Does the code obey the [good practices](https://public.01-edu.org/subjects/good-practices.en)?
###### +Is there a test file for this code? ###### +Is there a test file for this code?
#### Social #### Social
###### +Did you learn anything from this project? ###### +Did you learn anything from this project?
###### +Can it be open-sourced / be used for other sources? ###### +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? ###### +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). - 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**. - 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 ### Usage
- You can see an example of a RESTful API [here](https://rickandmortyapi.com/) - 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 #### 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"`. ##### Try to run `"./lem-in example00.txt"`.
###### Is the program able to read the ant farm in this standard input? ###### 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 ### 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). - 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**. - 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 ### Usage
Example 1 : Example 1 :

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

@ -1,5 +1,7 @@
#### Functional #### 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. ##### 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? ###### 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. - We suggest that you consult the `ls` command manual.
### Allowed packages
- Only the [standard go](https://golang.org/pkg/) packages are allowed
### Usage ### Usage
You can see how the `ls` command works, by using it on your terminal. 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. - 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. - A wrong `option` must print `Invalid Option` followed by a newline.
## Usage ## Usage
@ -28,6 +30,16 @@ student@ubuntu:~/[[ROOT]]/test$ ./test -z | cat -e
00000010 00000000 00000000 00000000$ 00000010 00000000 00000000 00000000$
student@ubuntu:~/[[ROOT]]/test$ ./test -abc -hijk | cat -e student@ubuntu:~/[[ROOT]]/test$ ./test -abc -hijk | cat -e
options: abcdefghijklmnopqrstuvwxyz$ 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 student@ubuntu:~/[[ROOT]]/test$ ./test -% | cat -e
Invalid Option$ Invalid Option$
student@ubuntu:~/[[ROOT]]/test$ student@ubuntu:~/[[ROOT]]/test$

Loading…
Cancel
Save