diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg new file mode 100644 index 000000000..8fd6200b0 Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.png b/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.png deleted file mode 100644 index a806b9610..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 01.59.32.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg new file mode 100644 index 000000000..93ab51d41 Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.png deleted file mode 100644 index afcf3fe48..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.03.11.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg new file mode 100644 index 000000000..4e2f9f732 Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.png deleted file mode 100644 index 582be5c8f..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.05.46.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg new file mode 100644 index 000000000..b2ebee1da Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.png deleted file mode 100644 index 17b7788dd..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.20.18.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg new file mode 100644 index 000000000..28ee547e9 Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.png deleted file mode 100644 index 8e9a04494..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.22.30.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg new file mode 100644 index 000000000..4b658e5cf Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.png deleted file mode 100644 index 9dea5bf78..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.24.04.png and /dev/null differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg b/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg new file mode 100644 index 000000000..1ccd74a9c Binary files /dev/null and b/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.jpg differ diff --git a/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.png b/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.png deleted file mode 100644 index 795ad6cc0..000000000 Binary files a/docs/img/reviews/Screenshot 2019-10-17 at 02.43.31.png and /dev/null differ diff --git a/docs/reviews.md b/docs/reviews.md index 51a4047b0..08fee7f77 100644 --- a/docs/reviews.md +++ b/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. -Screenshot 2019-10-17 at 02.43.31 +Screenshot 2019-10-17 at 02.43.31 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 : -Screenshot 2019-10-17 at 01.59.32 +Screenshot 2019-10-17 at 01.59.32 Then, when a match with another student who also wants to review is found, you will be notified : -Screenshot 2019-10-17 at 02.03.11 +Screenshot 2019-10-17 at 02.03.11 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` : -Screenshot 2019-10-17 at 02.05.46 +Screenshot 2019-10-17 at 02.05.46 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` - Screenshot 2019-10-17 at 02.20.18 +- 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` + Screenshot 2019-10-17 at 02.20.18 -- 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 - Screenshot 2019-10-17 at 02.22.30 +- 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 + Screenshot 2019-10-17 at 02.22.30 In fact, a bet is succeeded if it is equal to the tester output : -Screenshot 2019-10-17 at 02.24.04 +Screenshot 2019-10-17 at 02.24.04 You can have those 4 cases : diff --git a/docs/ubuntu-installation.md b/docs/ubuntu-installation.md index f32e75098..ab4959bdb 100644 --- a/docs/ubuntu-installation.md +++ b/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. diff --git a/docs/ubuntu-persistent-installation.md b/docs/ubuntu-persistent-installation.md index 90ad35d7f..9dd467691 100644 --- a/docs/ubuntu-persistent-installation.md +++ b/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) : diff --git a/scripts/common_packages.txt b/scripts/common_packages.txt index 9b81b4043..9c78ba1f8 100644 --- a/scripts/common_packages.txt +++ b/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 diff --git a/scripts/install_client.sh b/scripts/configure_ubuntu.sh similarity index 54% rename from scripts/install_client.sh rename to scripts/configure_ubuntu.sh index d5567bf8a..d0209b350 100755 --- a/scripts/install_client.sh +++ b/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 diff --git a/scripts/go.sh b/scripts/go.sh index 85e840dad..aef473f49 100755 --- a/scripts/go.sh +++ b/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 diff --git a/scripts/kickstart.sh b/scripts/kickstart.sh deleted file mode 100755 index 20c48811c..000000000 --- a/scripts/kickstart.sh +++ /dev/null @@ -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 diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100755 index 000000000..ea52e8691 --- /dev/null +++ b/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 diff --git a/scripts/system/etc/systemd/system/mount-docker.service b/scripts/system/etc/systemd/system/mount-docker.service new file mode 100644 index 000000000..0ad039aff --- /dev/null +++ b/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 diff --git a/scripts/system/usr/local/bin/mount-docker.sh b/scripts/system/usr/local/bin/mount-docker.sh new file mode 100755 index 000000000..52fdeea78 --- /dev/null +++ b/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 diff --git a/scripts/ubuntu_tweaks.sh b/scripts/ubuntu_tweaks.sh deleted file mode 100755 index 5b92db378..000000000 --- a/scripts/ubuntu_tweaks.sh +++ /dev/null @@ -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 diff --git a/subjects/ascii-art-web/ascii-art-web.audit.en.md b/subjects/ascii-art-web/ascii-art-web.audit.en.md index a1bc115bf..058b06e69 100644 --- a/subjects/ascii-art-web/ascii-art-web.audit.en.md +++ b/subjects/ascii-art-web/ascii-art-web.audit.en.md @@ -4,7 +4,11 @@ ###### Does the project contain HTML files? -##### Try inputting `"{123}\n (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 ` (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? diff --git a/subjects/groupie-trackers/groupie-trackers-filters.audit.en.md b/subjects/groupie-trackers/groupie-trackers-filters.audit.en.md index 82fca9ab8..6d7ed187d 100644 --- a/subjects/groupie-trackers/groupie-trackers-filters.audit.en.md +++ b/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? \ No newline at end of file + +###### +Would you recommend/nominate this program as an example for the rest of the school? diff --git a/subjects/groupie-trackers/groupie-trackers-filters.en.md b/subjects/groupie-trackers/groupie-trackers-filters.en.md index 4fa23fa0e..b646c3cab 100644 --- a/subjects/groupie-trackers/groupie-trackers-filters.en.md +++ b/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 diff --git a/subjects/groupie-trackers/groupie-trackers-geolocation.audit.en.md b/subjects/groupie-trackers/groupie-trackers-geolocation.audit.en.md index b4ea91a3f..223e57896 100644 --- a/subjects/groupie-trackers/groupie-trackers-geolocation.audit.en.md +++ b/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? diff --git a/subjects/groupie-trackers/groupie-trackers-geolocation.en.md b/subjects/groupie-trackers/groupie-trackers-geolocation.en.md index 2c4495fa4..96ea38bd0 100644 --- a/subjects/groupie-trackers/groupie-trackers-geolocation.en.md +++ b/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. diff --git a/subjects/groupie-trackers/groupie-trackers-search-bar.audit.en.md b/subjects/groupie-trackers/groupie-trackers-search-bar.audit.en.md index faf4fc4a3..09199f1f4 100644 --- a/subjects/groupie-trackers/groupie-trackers-search-bar.audit.en.md +++ b/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? diff --git a/subjects/groupie-trackers/groupie-trackers-search-bar.en.md b/subjects/groupie-trackers/groupie-trackers-search-bar.en.md index bbdf59335..5a36ea60d 100644 --- a/subjects/groupie-trackers/groupie-trackers-search-bar.en.md +++ b/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 diff --git a/subjects/groupie-trackers/groupie-trackers.audit.en.md b/subjects/groupie-trackers/groupie-trackers.audit.en.md index 0e93727cd..71e331597 100644 --- a/subjects/groupie-trackers/groupie-trackers.audit.en.md +++ b/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? diff --git a/subjects/groupie-trackers/groupie-trackers.en.md b/subjects/groupie-trackers/groupie-trackers.en.md index 668563305..86d130aa1 100644 --- a/subjects/groupie-trackers/groupie-trackers.en.md +++ b/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/) diff --git a/subjects/lem-in/lem-in.audit.en.md b/subjects/lem-in/lem-in.audit.en.md index 0d7ea7bff..e2043995a 100644 --- a/subjects/lem-in/lem-in.audit.en.md +++ b/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? diff --git a/subjects/lem-in/lem-in.en.md b/subjects/lem-in/lem-in.en.md index 901ab31dc..f2fa4c18b 100644 --- a/subjects/lem-in/lem-in.en.md +++ b/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 : diff --git a/subjects/my-ls-1/my-ls-1.audit.en.md b/subjects/my-ls-1/my-ls-1.audit.en.md index 5bd5406f3..7733b49f6 100644 --- a/subjects/my-ls-1/my-ls-1.audit.en.md +++ b/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? diff --git a/subjects/my-ls-1/my-ls-1.en.md b/subjects/my-ls-1/my-ls-1.en.md index 9963191d0..044c4d57c 100644 --- a/subjects/my-ls-1/my-ls-1.en.md +++ b/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. diff --git a/subjects/options.en.md b/subjects/options.en.md index cafa3e6d2..dd6e38c75 100644 --- a/subjects/options.en.md +++ b/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$