Vreau sa construiesti o aplicatie web completa pentru managementul unei academii de tenis pentru copii, inspirata vizual din dashboard-ul din screenshot-ul atasat si functional din documentatia mea (dashboard notes + evaluation excel logic). Aplicatia trebuie sa fie dezvoltata cu:

- CodeIgniter 4
- PHP 8.2+
- MySQL
- Tailwind CSS
- Alpine.js
- chart library: ApexCharts sau Chart.js
- arhitectura MVC curata
- layout responsive, modern, aerisit, apropiat de screenshot-ul furnizat

IMPORTANT:
1. Respecta designul general din screenshot:
   - top navbar alb, minimalist
   - carduri KPI in partea de sus
   - grafice tip donut/bar
   - carduri cu liste pentru evaluari recente si alerte
   - spacing generos, borduri soft, umbre discrete
   - aspect profesional, clean, admin dashboard modern
2. Respecta logica din excel:
   - sistem de copii, evaluari, benchmarks, profile, dashboard
   - formulele trebuie transpuse in backend, nu doar simulate in frontend
3. Respecta informatiile si intrebarile din documentatia scrisa:
   - copil, antrenor, evaluare, quick check, prezenta, journey, rapoarte, roluri
4. Nu construi un demo fake. Construieste o baza reala, extensibila, cu migrari, seedere, modele, controllere, validari si UI functionale.
5. Foloseste dummy data initiala pentru seed, dar sistemul trebuie sa fie production-ready ca structura.

==================================================
1. SCOPUL APLICATIEI
==================================================

Aplicatia este pentru o academie de tenis pentru copii si trebuie sa ajute la:
- administrarea copiilor
- administrarea antrenorilor
- organizarea evaluarii progresului
- calculul automat al scorurilor si statusurilor
- urmarirea prezentei
- urmarirea parcursului (journey) in academie
- vizualizarea rapoartelor si alertelor
- eventuala interactiune cu parintii

Aplicatia trebuie sa aiba 3 roluri:
- Admin
- Antrenor
- Parinte

Pentru prima versiune, implementeaza complet Admin + Antrenor.
Rolul Parinte sa existe ca structura si acces limitat pentru viitoare extindere.

==================================================
2. MODULE PRINCIPALE
==================================================

Aplicatia trebuie sa contina urmatoarele module:

1. Dashboard
2. Copii
3. Profil copil
4. Antrenori
5. Evaluari
6. Quick Check
7. Prezenta
8. Journey
9. Rapoarte
10. Setari / configurare benchmarks / criterii / praguri

==================================================
3. LOGICA DE BUSINESS DIN EXCEL
==================================================

Trebuie transpusa in aplicatie logica unui evaluation system cu urmatoarele concepte:

A. Children Master
- baza principala a copiilor
- fiecare copil are ID unic
- toate celelalte module se leaga de copil

B. Evaluations Log
- fiecare evaluare este stocata separat
- un copil poate avea mai multe evaluari in timp
- fiecare evaluare are:
  - ID unic
  - child_id
  - evaluation_type
  - date
  - evaluator_id
  - level_at_time
  - criteria scores
  - final_score
  - final_status
  - notes

C. Child Profile
- profil individual copil
- afiseaza informatii generale
- scor mediu
- prezenta
- evolutia in timp
- ultima evaluare
- istoric quick checks
- journey events

D. Journey Benchmarks
- nivelele academiei:
  - Red 1
  - Red 2
  - Orange 1
  - Orange 2
  - Green
  - Yellow
- fiecare nivel are:
  - nume
  - ordine
  - descriere interna
  - descriere pentru parinte
  - benchmark minim
  - benchmark target
  - reguli de promovare

E. Lists / lookup data
- nivele
- statusuri
- tipuri evaluari
- criterii de evaluare
- roluri
- status copil

==================================================
4. LOGICA SCORING SI STATUS
==================================================

Foarte important: implementeaza “creierul” sistemului, nu doar interfata.

Scoring:
- fiecare evaluare are mai multe criterii
- fiecare criteriu are scor numeric (de ex 1-5 sau 1-10, configurabil)
- exista posibilitatea de a seta pondere per criteriu
- final_score = media ponderata a criteriilor

Formula:
- daca exista weight pe criterii, foloseste weighted average
- daca toate weight sunt egale, media simpla

Status final evaluare:
- HOLD
- ALMOST READY
- READY

Aceste statusuri trebuie calculate automat din scorul final si, optional, din reguli minime pe criterii.

Reguli implicite de implementat:
- READY: final_score >= ready_threshold si niciun criteriu critic sub minimum_critical_threshold
- ALMOST READY: final_score >= almost_ready_threshold, dar sub ready_threshold
- HOLD: sub almost_ready_threshold

Pragurile trebuie sa fie configurabile din admin:
- almost_ready_threshold
- ready_threshold
- minimum_critical_threshold

Exemplu configurare default:
- almost_ready_threshold = 3.5
- ready_threshold = 4.0
- minimum_critical_threshold = 3.0

IMPORTANT:
- Nu hardcoda pragurile in view
- Pastreaza-le in tabela settings sau evaluation_rules
- Creeaza service class dedicata:
  EvaluationEngineService
care:
  - calculeaza scorul final
  - calculeaza statusul
  - decide daca un copil e eligibil pentru avansare

==================================================
5. DIFERENTA QUICK CHECK vs FULL EVALUATION
==================================================

Implementeaza clar doua tipuri de evaluare:

A. Quick Check
- evaluare scurta
- foloseste mai putine criterii
- dureaza putin
- utila pentru monitorizare rapida
- nu schimba automat nivelul copilului
- poate genera doar status intern si alerta

B. Full Evaluation
- evaluare completa
- foloseste toate criteriile relevante
- poate sta la baza unei propuneri de avansare
- apare in istoric si in dashboard ca evaluare principala

Creeaza tabela evaluation_types si criterii asociate per tip.

==================================================
6. FLUX FUNCTIONAL COPIL
==================================================

Fluxul dorit:

1. Adminul adauga copil
2. Copilul este asignat la:
   - nivel curent
   - grupa
   - antrenor principal
3. Optional, la introducere se face evaluare initiala
4. Copilul participa la sedinte
5. Se marcheaza prezenta
6. Periodic se fac quick checks si full evaluations
7. Sistemul calculeaza:
   - scor
   - status
   - semnal de avansare
8. Se poate aproba avansarea la nivel superior
9. Tot istoricul ramane in journey

==================================================
7. DASHBOARD PRINCIPAL
==================================================

Dashboardul principal trebuie sa semene vizual cu screenshot-ul si sa contina:

A. KPI cards:
- Copii activi
- Evaluari luna aceasta
- Ready
- Aproape gata
- Rata prezenta

B. Charts:
1. Distributie pe nivele
   - donut chart
   - Red 1, Red 2, Orange 1, Orange 2, Green, Yellow
2. Copii per antrenor
   - bar chart

C. Liste:
1. Evaluari recente
   - nume copil
   - data
   - tip evaluare
   - scor final
   - status
2. Alerte & actiuni
   - copii ready pentru avansare
   - copii aproape gata
   - copii cu absente multe
   - copii fara evaluare in ultimele X zile

D. Filtre:
- perioada
- antrenor
- nivel
- status copil

Rata prezenta:
- calculeaz-o ca procent intre prezente si total sedinte planificate in perioada filtrata

==================================================
8. MODUL COPII
==================================================

Lista copii:
- tabel cu cautare si filtre
- coloane:
  - nume complet
  - data nasterii
  - gen
  - nivel
  - grupa
  - antrenor principal
  - status
  - scor mediu
  - prezenta
  - actiuni

Filtre:
- nivel
- antrenor
- status
- grupa
- cautare text

Form adaugare/editare copil:
- prenume
- nume
- data nasterii
- gen
- nivel curent
- grupa
- antrenor principal
- data prima zi curs
- status (activ, pauza, plecat)
- nume parinte
- telefon parinte
- email parinte
- are frati/surori? da/nu
- observatii

Pregateste structura pentru:
- un copil poate avea mai multi antrenori in viitor
Dar in V1 implementeaza:
- un antrenor principal
- optional multi-antrenor prin tabela pivot child_coaches

==================================================
9. PROFIL COPIL
==================================================

Pagina profil copil trebuie sa aiba taburi:

1. Privire generala
- card info copil
- card info parinte
- widget scor mediu
- widget prezenta
- widget nr evaluari
- widget status
- grafic evolutie scor in timp
- profil criterii (radar chart sau bar chart)
- ultima evaluare

2. Evaluari
- lista tuturor evaluarilor
- filtru dupa tip
- vizualizare detaliata
- posibilitate adaugare evaluare noua

3. Quick Check
- lista quick checks
- formular quick check

4. Prezenta
- calendar / lista sedinte
- prezente / absente / recuperari

5. Journey
- timeline evenimente:
  - adaugare copil
  - schimbare antrenor
  - schimbare nivel
  - quick check
  - full evaluation
  - status schimbat
  - absente repetitive
  - recuperare sedinta

==================================================
10. MODUL ANTRENORI
==================================================

Lista antrenori:
- avatar
- nume
- rol
- telefon
- email
- copii activi
- evaluari efectuate
- scor mediu copii
- zile sesiune / program

Form antrenor:
- avatar
- nume complet
- rol (Head Coach, Coach, Assistant Coach - sau alte 3 tipuri configurabile)
- telefon
- email
- status activ/inactiv
- observatii

Adauga si un program simplu al antrenorului:
- zile disponibile
- interval orar

Trebuie sa existe si pagina individuala antrenor cu:
- copii asignati
- evaluari recente
- quick checks recente
- disponibilitate

==================================================
11. MODUL PREZENTA
==================================================

Prezenta trebuie sa poata fi operata de:
- Admin
- Antrenor

Concepte necesare:
- grupa
- sedinta programata
- copil inscris
- status prezenta:
  - prezent
  - absent motivat
  - absent nemotivat
  - recuperare

Functii:
- creare sedinte recurente pe grupe
- check-in rapid pe lista copii
- calcul procent prezenta per copil
- calcul procent prezenta per grupa
- calcul procent prezenta global

Trebuie sa existe si logica:
- ce se intampla cand antrenorul lipseste
- sedinta anulata
- sedinta recuperata

Pregateste structura pentru toate acestea.

==================================================
12. JOURNEY
==================================================

Journey nu trebuie tratat ca simplu text.
Trebuie implementat ca event log real.

Creeaza tabela journey_events cu:
- id
- child_id
- event_type
- title
- description
- metadata JSON
- created_by
- created_at

Evenimente generate automat la:
- child_created
- evaluation_added
- quick_check_added
- attendance_issue
- level_changed
- coach_changed
- status_changed
- recovery_session_added

Afiseaza timeline in profil copil.

==================================================
13. RAPOARTE
==================================================

Creeaza sectiune de rapoarte cu export CSV/PDF pentru:
- copii pe nivel
- copii pe antrenor
- copii ready pentru avansare
- copii aproape gata
- copii cu absente ridicate
- evaluari pe perioada
- progres pe copil

Adauga filtre de perioada si export.

==================================================
14. ADMIN SETTINGS / CONFIG
==================================================

Adminul trebuie sa poata configura:

1. Nivele academie
- Red 1
- Red 2
- Orange 1
- Orange 2
- Green
- Yellow

2. Criterii evaluare
- nume criteriu
- descriere
- activ/inactiv
- weight
- critic da/nu
- ordine

3. Tipuri evaluare
- Quick Check
- Full Evaluation

4. Reguli scoring
- ready_threshold
- almost_ready_threshold
- minimum_critical_threshold

5. Roluri antrenori

6. Statusuri copil

==================================================
15. BAZA DE DATE
==================================================

Genereaza migrari si seedere pentru urmatoarele tabele minimum:

users
roles
user_roles

parents
children
child_guardians
coaches
coach_availability
groups

academy_levels
evaluation_types
evaluation_criteria
evaluation_type_criteria
evaluation_rules

evaluations
evaluation_scores
evaluation_status_history

attendance_sessions
attendance_records

journey_events

notifications
settings

Explicatii:
- evaluations = cap evaluare
- evaluation_scores = scoruri pe criterii
- evaluation_status_history = istoric status rezultat
- child_guardians = pentru extensie frati/surori / mai multi tutori

==================================================
16. AUTH / PERMISIUNI
==================================================

Implementeaza autentificare si autorizare simpla:
- Admin: acces total
- Coach: acces doar la copiii/grupele lui, evaluari, prezenta
- Parent: scaffold / access limitat pentru viitor

Nu folosi un sistem prea complex, dar separa clar middleware / filters / permissions.

==================================================
17. UI / UX CERINTE
==================================================

UI trebuie sa urmeze screenshot-ul:
- dashboard modern, curat
- navbar superior
- carduri KPI cu iconite
- tabele curate
- badge-uri colorate pentru status:
  - READY = verde
  - ALMOST READY = galben/portocaliu
  - HOLD = rosu/roz deschis
- culori distincte pentru nivele
- responsive foarte bun pe desktop si tablet
- forms clare, spacing bun
- empty states elegante
- loading states simple
- design consistent peste tot

IMPORTANT:
- Nu aglomera pagina
- Pastreaza foarte aproape stilul din screenshot
- Foloseste componente reutilizabile:
  - stat card
  - chart card
  - table card
  - status badge
  - filter bar
  - tab nav
  - timeline item

==================================================
18. SEED DATA
==================================================

Genereaza dummy data coerenta:
- 6 nivele academie
- 3 antrenori
- 3 grupe
- 15 copii
- evaluari quick + full
- prezente
- cateva alerte
- journey events

Datele trebuie sa produca dashboard relevant din prima rulare.

==================================================
19. ARHITECTURA COD
==================================================

Vreau structura clara:
- Controllers
- Models
- Services
- Libraries daca este necesar
- View components / partials
- Form requests / validation rules
- Migrations
- Seeders

Creeaza servicii dedicate:
- DashboardService
- EvaluationEngineService
- AttendanceService
- JourneyService
- ReportService

Nu pune toata logica in controller.

==================================================
20. LIVRABILE
==================================================

Genereaza proiectul in etape, in ordinea asta:

FAZA 1
- setup CodeIgniter 4
- baza layout admin
- auth simplu
- migrari + seedere
- dashboard static pe date reale din DB

FAZA 2
- CRUD copii
- CRUD antrenori
- profile copil
- groups + academy levels

FAZA 3
- evaluari complete
- quick checks
- EvaluationEngineService
- status ready/almost/hold

FAZA 4
- prezenta
- journey
- alerte
- rapoarte

FAZA 5
- polish UI
- cleanup
- validari
- permisiuni
- export CSV/PDF

==================================================
21. OUTPUT DORIT DE LA TINE
==================================================

Vreau sa livrezi codul direct, nu doar explicatii.

Pentru fiecare faza:
1. genereaza fisierele necesare
2. explica scurt unde se pun
3. ofera cod complet
4. asigura-te ca totul e consistent intre fisiere
5. daca trebuie, incepe cu migrarile, apoi modelele, apoi controller-ele, apoi view-urile

Incepe acum cu FAZA 1:
- structura initiala proiect
- migrari
- seedere
- auth simplu
- layout admin
- dashboard conectat la DB
- foloseste date dummy seed pentru a popula KPI cards, chart levels, children per coach, recent evaluations si alerts