Se face o singură dată. Conectezi contul GitHub la numele tău din lista de studenți.
- Deschide link-ul GitHub Classroom primit pe Teams.
- Autentifică-te cu contul GitHub.
- Selectează numele tău real din roster.
- Dacă nu găsești numele, oprește-te și anunță profesorul. Nu selecta altă persoană.
- Ești direcționat automat spre alegerea echipei.
student_01, student_02 etc.
Repository-ul apare automat după ce primul membru acceptă assignment-ul.
- Dacă ești team starter, creezi echipa cu numele exact:
team-1,team-2etc. - Dacă echipa există deja, alegi Join existing team.
- Nu crea o echipă nouă dacă echipa ta există.
- Nu schimba numele echipei.
Toți membrii echipei lucrează în același repository. Fiecare îl clonează pe calculatorul propriu.
- Intră în repository-ul echipei din GitHub Classroom.
- Apasă butonul verde Code și copiază link-ul HTTPS.
- Deschide terminalul în directorul unde ții proiectele.
NUME_REPOSITORY = directorul creat automat după clone
Nu toate directoarele sunt folosite din prima zi — proiectul se completează treptat.
| Director | Cine | Ce se pune |
|---|---|---|
| notebooks/student_XX/ | individual | notebook-urile de seminar completate |
| data/ | echipă | corpus, date curățate, JSONL |
| assets/roles/ | echipă | role cards pentru agenți |
| core/ | profesor | cod de bază — nu se modifică |
| app/ | echipă | aplicația finală |
| reports/ | echipă | raport, limitări, etică |
Se face o singură dată pe calculatorul tău. Mediul virtual .venv izolează bibliotecile proiectului.
Cheia API se păstrează local în .env. Nu se scrie în notebook și nu se urcă pe GitHub.
| Provider | Unde creezi cheia | Free tier |
|---|---|---|
| Gemini | aistudio.google.com | da — generous |
| DeepSeek | platform.deepseek.com | da — foarte ieftin |
| OpenRouter | openrouter.ai | da — modele gratuite |
| Groq | console.groq.com | da — rapid |
| Mistral | console.mistral.ai | da — trial |
Verifică că proiectul pornește. Erorile despre roluri sau vector store lipsă sunt normale la început.
Există două tipuri de muncă cu directoare diferite în repository.
Notebook-urile de seminar și exercițiile. Fiecare student lucrează în directorul său.
Role cards, corpus, aplicație, raport final.
Notebook-urile vin de pe Teams. Le descarci, le completezi și le pui în directorul tău.
- Descarcă notebook-ul de pe Teams.
- Copiază-l în
notebooks/student_XX/ - Completează celulele
TODOși rulează (Run All). - Salvează, fă commit și push.
student_01, student_02 etc.
La început de sesiune: pull. La final: commit + push. Fără excepții.
Pull descarcă schimbările colegilor. Notebook-urile noi vin de pe Teams.
Commit des. Push la finalul sesiunii. Munca ta nu e vizibilă colegilor până nu dai push.
"add role card agent anti_sistem""collect 500 comments video XYZ""complete C2 notebook student_02"
Issues sunt lista de taskuri a echipei. Se folosesc și pentru a cere ajutor profesorului.
Lucrul cu issues:
- Deschide tab-ul Issues din repository-ul echipei.
- Alege un task și notează în comentariu că lucrezi la el.
- Fă commit cu mesaj clar când termini.
- Închide issue-ul manual după ce echipa verifică.
closes #N în commit message pentru închidere automată — dar doar dacă ești sigur că taskul e complet.
Cum întrebi profesorul pe GitHub:
Deschide un Issue nou cu titlul clar și tag-ul question. Profesorul primește notificare și răspunde acolo — conversația rămâne vizibilă pentru toată echipa.
| Issue | Ce înseamnă | Livrabil |
|---|---|---|
| #1 Setup | repo, venv, .env | aplicația pornește |
| #2 Notebook C1 | primul apel LLM | notebooks/student_XX/c1... |
| #3 Role cards | roluri agenți | assets/roles/roles.yaml |
| #4 Corpus | colectare și curățare | data/raw/, data/cleaned/ |
| #5 RAG | căutare cu surse | rezultate documentate |
| #6 App | integrare aplicație | app/app.py funcțional |
| #7 Report | limitări și etică | reports/ completat |
| question Întrebare | ceri ajutor profesorului | răspuns în comentarii |
Comenzi de bază — folosite în fiecare sesiune:
| Comandă | Ce face |
|---|---|
| git status | arată ce fișiere s-au schimbat |
| git pull origin main | descarcă schimbările colegilor |
| git add . | pregătește toate fișierele modificate |
| git add FISIER | pregătește un singur fișier |
| git commit -m "mesaj" | salvează o versiune locală |
| git push | trimite commiturile pe GitHub |
Comenzi de inspecție — să înțelegi ce s-a întâmplat:
| Comandă | Ce face |
|---|---|
| git log --oneline | istoricul scurt al commiturilor |
| git log --oneline -10 | ultimele 10 commituri |
| git diff | ce linii s-au schimbat față de ultimul commit |
| git diff FISIER | schimbările dintr-un singur fișier |
| git show | detaliile ultimului commit |
| git blame FISIER | cine a modificat fiecare linie |
Comenzi de corecție — când ai greșit ceva:
| Comandă | Ce face |
|---|---|
| git restore FISIER | anulează modificările locale la un fișier |
| git restore . | anulează toate modificările locale |
| git commit --amend -m "mesaj" | corectează mesajul ultimului commit (înainte de push) |
| git reset HEAD~1 | anulează ultimul commit, păstrează modificările |
Comenzi utile diverse:
| Comandă | Ce face |
|---|---|
| git clone LINK | copiază un repository pe calculatorul tău |
| git remote -v | arată unde e conectat repository-ul |
| git branch | listează branch-urile locale |
| git stash | ascunde temporar modificările nesalvate |
| git stash pop | aduce înapoi modificările ascunse |
| git fetch | verifică ce e nou pe GitHub fără să descarce |
Un conflict apare când două persoane modifică aceeași parte din același fișier. Se evită lucrând fiecare în directorul său.
notebooks/student_XX/, fă pull înainte să începi, push la final. Pentru fișiere comune (roles.yaml, app.py) discutați în echipă cine modifică ce.
question și anunță profesorul.
- Nu urca niciodată
.envpe GitHub. - Nu scrie chei API direct în notebook-uri. Folosește
.env. - Nu pune nume reale în directoare sau fișiere. Folosește
student_01,student_02etc. - Lucrează în directorul tău:
notebooks/student_XX/ - Nu modifica directorul altui student.
- Nu modifica
core/decât dacă profesorul cere explicit. - Fă
git pullînainte să începi orice sesiune. - Fă
git pushla finalul fiecărei sesiuni. - Scrie mesaje de commit clare și descriptive.
- Nu folosi
git push --force. - Dacă nu știi ce face o comandă, deschide un Issue cu label
questionși întreabă.