Getting Started
Welcome to the automatic grading system! This guide explains how to get started quickly.
π§ 1. Receiving your account
π₯ View your account information
You will receive an email containing:
- Username:
firstname.lastname - Temporary password: To be changed on first login
- Gitea link: https://git.zohrabi.cloud
- Your group: CDOF1, CDOF2, etc.
π 2. First login
π Step 1: Access Gitea
- Open your browser
- Go to: https://git.zohrabi.cloud
- Click "Sign in" in the top right
π Step 2: Login
- Username: The one received by email
- Password: The temporary password
- Click "Sign in"
π Step 3: Change password
β οΈ Important: You will need to change your password on first login.
- Choose a strong password (min. 8 characters)
- Confirm the new password
- Validate
π 3. Access your repositories
π View your repository structure
After logging in, you will see one repository per workshop:
workshop1- Installing Docker and getting startedworkshop2- Simple Web Server with Dockerworkshop3- Docker Registryworkshop4- Networking in Dockerworkshop5- Volumesworkshop6- Docker Composeworkshop7- CI/CDworkshop8- SAST and CI
Each repository is already created and ready to receive your work.
π» 4. Clone a workshop repository
π Option A: HTTPS (Recommended for beginners)
# Replace with your username and desired workshop
git clone https://git.zohrabi.cloud/firstname.lastname/workshop1.git
cd workshop1
When cloning, Git will ask you for: - Username: your Gitea username - Password: your Gitea password
π Option B: SSH (Advanced)
Prerequisites: Have configured an SSH key in Gitea
-
Generate an SSH key (if you don't have one):
bash ssh-keygen -t ed25519 -C "your.email@example.com" -
Copy the public key:
bash cat ~/.ssh/id_ed25519.pub -
In Gitea: Settings > SSH/GPG Keys > Add Key
-
Clone with SSH:
bash git clone git@git.zohrabi.cloud:firstname.lastname/workshop1.git
ποΈ 5. Structure by Workshop
π Workshop 1: Docker Setup
For this workshop, you need to create a docker.txt file containing the output of the docker info command.
docker info > docker.txt
git add docker.txt
git commit -m "Workshop1: Docker info"
git push origin main
π Workshop 2: Simple Web Server with Nginx
Your repository must contain:
workshop2/
βββ Dockerfile # nginx image
βββ index.html # HTML page
βββ build.sh # Script to build the image
βββ run.sh # Script to run the container
Dockerfile:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
build.sh:
#!/bin/bash
docker build -t my-tiny-web-server .
run.sh:
#!/bin/bash
docker run --name webserver -p 8080:80 -d --rm my-tiny-web-server
π Workshops 3-8: Check the assignments
Each workshop has specific requirements. Check each workshop's assignment to know the required structure.
π€ 6. Submit your project
π Git: Add, Commit, Push
Once everything is ready:
# Add all files
git add .
# Commit with a descriptive message
git commit -m "Workshop2: Simple web server with Nginx"
# Push to Gitea
git push origin main
β 7. Automatic grading
β‘ Triggering
As soon as you do git push, automatic grading starts:
- Gitea Actions detects the push
- The grading system analyzes your repository
- Automatic tests according to workshop criteria
- Email sent with your grade and detailed report
π Follow grading in real-time
- Go to Gitea
- Open your repository
- Click on the "Actions" tab
- View the running workflow
You will see: - β Running: Grading in progress - β Success: Grading completed successfully - β Failure: Error detected
π View your grades
Grades Dashboard: https://grades.zohrabi.cloud
Log in with your Gitea credentials to see:
- π Your grades by workshop
- π Test details passed/failed
- π Correction logs
- π’ Remaining attempts
π 8. Iterate and improve
π Submit multiple times
You have 3 attempts per workshop (by default):
- The best grade is kept
- Each push triggers a new grading
- Check the logs to understand errors
# Modify your files
nano Dockerfile
# If OK, push again
git add .
git commit -m "Workshop2: Dockerfile fix"
git push origin main
β οΈ Note: Your instructor can add extra attempts if needed.
π Important points
β TO DO
- β Test locally before pushing (when applicable)
- β Use official images
- β Follow the required structure for each workshop
- β Document with a README.md (recommended)
- β Descriptive commit messages
β TO AVOID
- β Push without checking file names
- β Passwords in plain text
- β Unnecessary files (node_modules, etc.)
π Need help?
- π Dashboard: https://grades.zohrabi.cloud
- π Wiki: https://wiki.zohrabi.cloud
- π§ Contact: Reza@zohrabi.fr
Ready to start? Good luck! π