Aplicatie Pentru Gestiunea Procesului DE Admitere In Invatamantul Superior
Lucrare Licenta cu Prezentare Powerpoint CUPRINS
CUPRINS
=== l ===
CUPRINS
Capitolul 1. Introducere
1.1 Admitere-Contextul actual
Înscrierea, în cadrul unei universități, atât pentru participarea la concursul de admitere la forma de învățământ licență, cât și la master, este un proces complex și amplu atât din punctul de vedere al organizării, cât și din punctul de vedere al gestiunii dosarului fiecărui candidat. Particularizat, înscrierea în cadrul Universității Politehnica Timișoara, pentru licență, respectiv pentru master, reprezintă un ansamblu de acțiuni de organizare foarte bine pus la punct, dar și un consumator veritabil de timp pentru cadrele didactice ale universității.
Universitatea „Politehnica” din Timișoara organizează concurs de admitere la ciclul de studii LICENȚĂ , după cum urmează : Învățământ universitar cu durata de 4 ani pentru domeniile din domeniul fundamental “Științe Inginerești” ; Învățământ universitar cu durata de 6 ani pentru domeniul „Arhitectură”;Învățământ universitar cu durata de 3 ani pentru domeniile „Științe ale Comunicării” și „Științe Administrative” din domeniul fundamental „Științe sociale și politice”și domeniul „Informatică” din domeniul fundamental „Științe exacte”; Învățământ universitar cu durata de 4 ani în limba engleză – prioritar (și la alegere, într-una din limbile germană sau franceză), în domeniile de larg interes : Calculatoare și Tehnologia Informației, Inginerie Electronică și Telecomunicații, Inginerie Electrică, Inginerie Mecanică, Inginerie Civilă și Inginerie Chimică ; Învățământ universitar la distanță (ID) cu durata de 3 ani în domeniul „Informatică” și cu durata de 4 ani în domeniul „Inginerie Electronică și Telecomunicații”.
Se precizează că diploma de licență conferă absolventului aceleași drepturi (privind angajabilitatea, salarizarea, accesul la studiile de nivel master) indiferent de durata studiilor.
Admiterea în învățământul universitar, se organizează pe domenii. Un domeniu este definit conform Ordinului MEdC nr.3235/10.02.2005. Domeniul cuprinde una sau mai multe specializări universitare.
Concursul de admitere este, după caz, de dosare – adică: cu departajarea candidaților exclusiv în funcție de media la bacalaureat și de media multianuală la două discipline studiate în liceu sau cu probe de verificare a cunoștințelor / abilităților, având asociat examenul de bacalaureat. Rezultatele finale ale concursului se exprimă printr-o medie ponderată, numită “media de admitere”, calculată pe baza notelor la probele de verificare a cunoștințelor și a mediei la bacalaureat.
Probele de verificare a cunoștințelor la matematică sunt organizate în sistem “grilă”. În cadrul lor, aprecierea candidaților se face fără luarea în considerare a mersului rezolvărilor, ci exclusiv pe baza rezultatelor indicate drept răspunsuri la subiectele de concurs. La fiecare probă se acordă un punctaj ce poate lua valori în intervalul 0-100. În sistemul “grilă” al Universității “Politehnica” din Timișoara, enunțurile subiectelor, indiferent dacă ele sunt cu caracter teoretic sau aplicativ, se prezintă candidaților împreună cu un set de răspunsuri din care unul și numai unul este corect. Sarcina candidaților în cadrul probelor de concurs constă în determinarea răspunsurilor corecte și marcarea lor într-un formular special conceput. Doar acest formular va fi folosit pentru acordarea punctajului
La celelalte probe ( “non grilă”) de verificare a cunoștințelor, aprecierea candidaților se face punctând nu numai rezultatele finale, ci întreg conținutul lucrării pe care ei o au de elaborat.
Participarea candidaților la concursul de admitere este condiționată de înscrierea lor prealabilă la acest concurs. Înscrierea se face pe secțiuni. O secțiune reprezintă, în general, o grupare de domenii cu un anumit grad de înrudire; la limită, secțiunea poate cuprinde și doar un singur domeniu. Secțiunile sunt:
Secțiunea 1 – Facultatea de Arhitectură
cuprinzând:
domeniul Arhitectură : fără taxă (LA), cu taxă (TA)
Secțiunea 2 – Facultatea de Construcții
Facultatea de Hidrotehnică
cuprinzând:
domeniul Inginerie Civilă (învățământ în lb.română)_Facultatea de Construcții: fără taxă (LD), cu taxă (TD)
domeniul Inginerie Civilă (învățământ în lb.engleză)_Facultatea de Construcții: fără taxă (L5), cu taxă (T5)
domeniul Inginerie Civilă_Facultatea de Hidrotehnică: fără taxă (LG), cu taxă (TG)
domeniul Inginerie Geodezică: fără taxă (LE), cu taxă (TE)
domeniul Ingineria Instalațiilor: fără taxă (LF), cu taxă (TF)
Secțiunea 3 – Departamentul de Comunicare și Limbi Străine
cuprinzând:
domeniul Științe ale Comunicării: fără taxă (LP), cu taxă (TP)
domeniul Științe Administrative: fără taxă (LJ), cu taxă (TJ)
Secțiunea 4 – Facultatea de Chimie Industrială și Ingineria Mediului
cuprinzând:
domeniul Inginerie Chimică (învățământ în lb.română): fără taxă (LB), cu taxă (TB)
domeniul Inginerie Chimică (învățământ în lb.engleză): fără taxă (L6), cu taxă (T6)
domeniul Ingineria Mediului: fără taxă (LC), cu taxă (TC)
Secțiunea 5 – Facultatea de Electrotehnică și Electroenergetică
cuprinzând:
domeniul Inginerie Energetică: fără taxă (LL), cu taxă (TL)
Secțiunea 6 – Facultatea de Automatică și Calculatoare,
Facultatea de Electronică și Telecomunicații,
Facultatea de Electrotehnică și Electroenergetică
cuprinzând:
domeniul Inginerie Electrică (învățământ în lb.română): fără taxă (LI), cu taxă (TI)
domeniul Inginerie Electrică (învățământ în lb.engleză): fără taxă (L3), cu taxă (T3)
domeniul Inginerie Electronică și Telecomunicații (învățământ în lb.română):
fără taxă (LK), cu taxă (TK)
domeniul Inginerie Electronică și Telecomunicații (învățământ în lb.engleză):
fără taxă (L2), cu taxă (T2)
domeniul Inginerie Electronică și Telecomunicații (ID), cu taxă (DK)
domeniul Calculatoare și Tehnologia Informației (învățământ în lb.română): fără taxă (LM), cu taxă (TM)
domeniul Calculatoare și Tehnologia Informației (învățământ în lb.engleză): fără taxă (L7), cu taxă (T7)
domeniul Ingineria Sistemelor: fără taxă (LO), cu taxă(TO)
domeniul Informatică: fără taxă (LH), cu taxă (TH)
domeniul Informatică (ID), cu taxă (DH)
Secțiunea 7- Facultatea de Management în Producție și Transporturi
cuprinzând:
domeniul Inginerie și Management: fără taxă (LN), cu taxă (TN)
Secțiunea 8 – Facultatea de Mecanică
cuprinzând:
domeniul Inginerie Industrială: fără taxă (LQ), cu taxă (TQ)
domeniul Ingineria Transporturilor: fără taxă (LR),cu taxă (TR)
domeniul Inginerie Mecanică (învățământ în lb.română): fără taxă (LS), cu taxă (TS)
domeniul Inginerie Mecanică (învățământ în lb.engleză): fără taxă (L4), cu taxă (T4)
domeniul Mecatronică și Robotică: fără taxă (LT), cu taxă (TT)
domeniul Ingineria Materialelor: fără taxă (LU), cu taxă (TU)
domeniul Științe Inginerești Aplicate: fără taxă (LV), cu taxă (TV)
domeniul Ingineria Autovehiculelor: fără taxă (L8), cu taxă (T8)
Secțiunea 9 – Facultatea de Inginerie din Hunedoara
cuprinzând:
domeniul Inginerie Electrică: fără taxă (LW), cu taxă (TW)
domeniul Ingineria Materialelor: fără taxă (LY), cu taxă (TY)
domeniul Inginerie și Management Industrial: fără taxă (LZ), cu taxă (TZ)
domeniul Ingineria Autovehiculelor: fără taxă (LX), cu taxă (TX)
domeniul Științe Inginerești Aplicate: fără taxă (L0), cu taxă (T0)
Un candidat, se poate înscrie, în același timp, în concurs, la mai multe secțiuni. În cadrul unei secțiuni, un candidat poate concura pentru oricare și oricâte dintre domeniile pe care ea le insumează, pe locuri subvenționate de la buget sau pe locuri cu taxă, specificându-și opțiunile în cererea de înscriere în ordinea atenuării preferințelor (asta înseamnă că opțiunile pentru locuri cu taxă pot fi intercalate printre cele pentru locuri subvenționate, fără nici o restricție, sau pot fi grupate după opțiunile pentru locuri subvenționate desigur: cu consecințele de rigoare privind prioritatea cu care ele sunt luate în considerare, în fiecare dintre aceste două posibilități); candidatul va fi în competiție pentru obținerea unui loc – și doar al unuia! – din totalul pe care îl cumulează respectivele domenii (atenție: aceasta înseamnă că un candidat nu poate fi admis la mai mult de un domeniu în cadrul unei secțiuni, nici măcar în regim cu taxă!).
Admiterea candidaților se face în ordinea descrescătoare a mediei lor generale, conform opțiunilor notate în cererea de înscriere și în limita numărului de locuri planificate pentru fiecare domeniu. Dacă la ocuparea ultimului loc planificat pentru un domeniu concurează mai mulți candidați cu aceeași medie, atunci se vor folosi drept criterii de departajare, următoarele:
– pentru concursul cu probe de verificare a cunoștințelor, la Secțiunea 6, în ordine: nota la proba 1, media la examenul de bacalaureat, sau media multianuală la matematică;
– pentru concursul cu probe de verificare a cunoștințelor, la Secțiunea 1, în ordine: nota la proba 1, nota la proba 2, media la examenul de bacalaureat.
– pentru concursul de dosare, în ordine: media multianuală pe parcursul liceului la disciplina 1, după caz, media multianuală pe parcursul liceului la disciplina 2, după caz, media la examenul de bacalaureat.
Studenții admiși își păstrează statutul în regim cu taxă sau fără taxă, numai pe parcursul anului I universitar. Regimul financiar al studiilor pentru anii următori se stabilește anual în funcție de rezultatele la învățătură, în conformitate cu Hotărârea Senatului nr. 01/26.01.2006.
Absolvenții de liceu, cu diplomă de bacalaureat, care în cel puțin unul din ultimii 2 ani de studii liceale sau, în cazul disciplinelor studiate doar în clasele a IX-a și a X-a, în cel puțin unul din anii școlari, au obținut distincții la olimpiadele școlare naționale sau internaționale (locurile I, II, III sau echivalente ale acestora) pot fi admiși în UPT fără concurs, în cadrul numărului de locuri care face obiectul concursului, dacă disciplina la care au fost distinși se regăsește printre probele de concurs la domeniul pentru care ei optează sau este asimilabilă cel puțin uneia dintre acestea. Același regim îl au și candidații care au obținut premiul I, II sau III ori medalia de aur, argint sau bronz, la olimpiadele școlare internaționale în unul din ultimii 4 ani de studiu.
Studenții și foștii studenți cu studiile nefinalizate de la instituțiile de învățământ superior de stat, precum și studenții și foștii studenți de la instituțiile de învățământ particular autorizate să funcționeze provizoriu sau acreditate au dreptul de a se înscrie și participa la concursul de admitere, în condiții egale cu simplii bacalaureați. Ei vor putea beneficia de subvenții de la bugetul de stat evident, în ipoteza reușitei pe locurile fără taxă, doar la unul dintre domenii, și anume, la cel la care depun diploma de bacalaureat în original; nedepunerea diplomei de bacalaureat în original în termenele fixate implică tratarea lor conform articolului 48. Durata maximă a perioadei de subvenționare a acestor candidați este diferența dintre durata în semestre a studiilor la care au fost admiși și numărul de semestre cât ei au fost deja subvenționați. Înmatricularea acestei categorii de candidați se face cu recunoașterea și echivalarea studiilor deja avute, prin aplicarea reglementărilor în vigoare referitoare la acest subiect. Un student care a fost deja finanțat de la bugetul statului "n" semestre, va putea reobține finanțare doar o dată cu promovarea sa în semestrul "n+1" (evident: până la trecerea în semestrul "n+1", studentul în cauză va putea studia doar în regim cu taxă).
Absolvenții cu diplomă de licență pot fi admiși în UPT fără concurs, la orice domeniu care diferă de cel pe care îl au deja absolvit, în regim cu taxă. Admiterea lor se face în ordinea descrescătoare a mediei multianuale de pe parcursul studiilor care au condus la diploma de licență, pe locurile cu taxă neocupate de candidații fără studii superioare.
În cadrul Facultății de Arhitectură nu pot fi admiși absolvenți cu diplomă de licență fără concurs, nici chiar pe locurile cu taxă.
Absolvenții cu diplomă de absolvire pot fi admiși prin concurs la ciclul de studii Licență, în condiții egale cu simplii bacalaureați, dar cu posibilitatea accederii direct într-un an 2, pe baza recunoașterii și echivalării studiilor efectuate. În cazul reușitei pe locuri fără taxă, durata maximă cât ei vor beneficia de subvenție de la bugetul statului este diferența dintre durata în semestre a studiilor la care au fost admiși și numărul de semestre cât au fost deja subvenționați.
În vederea organizării și asigurării derulării concursului de admitere, Universitatea “Politehnica” din Timișoara își constituie o Comisie Centrală de Admitere și, pentru fiecare facultate/grup de facultăți, după caz, câte o Comisie de Admitere a Facultății/grupului de facultăți.
Concursul de admitere se desfășoară într-o dată bine stabilită pentru diferite secțiuni. Spre exemplu pentru anul 2007, concursul de admitere se desfășoară în ziua de 23 iulie 2007 pentru candidații înscriși la domeniile secțiunii 6 și 23 și 24 iulie 2007 pentru candidații înscriși la domeniul Arhitectură (secțiunea 1).
Înscrierea candidaților la concursul de admitere se face pe secțiuni, la facultăți, în locurile și după un orar ce vor fi anunțate în timp util de către Comisiile de Admitere ale Facultăților.
Perioada de înscriere se desfășoară de asemenea într-o perioadă prestabilită de timp si adusă la cunoștința candidaților în timp util. Spre exemplu, pentru admiterea 2007, perioada de înscriere este 16 iulie – 20 iulie 2007, pentru toate domeniile.
Se pot înscrie la concursul de admitere în Universitatea “Politehnica” din Timișoara cetățenii ROMÂNIEI care sunt absolvenți de liceu cu diplomă de bacalaureat sau absolvenți cu diplomă echivalentă cu cea de bacalaureat, ai altor școli similare liceului.
Pentru înscrierea la concurs, candidații vor completa o cerere tip, în care vor menționa sub semnătură și răspundere proprie, toate datele solicitate prin rubricile ei. În cererea de înscriere nu se admit modificări, adăugiri sau ștersături. Candidații din rândul minorităților naționale vor preciza în cererea de înscriere, disciplinele de concurs pe care le-au studiat în liceu în limba maternă și pentru care solicită probele în limba respectivă.
La cererea de înscriere se anexează următoarele acte:
diploma de bacalaureat sau diploma echivalentă, în original (provizoriu, se acceptă și adeverințe-substitut de diplomă și copii legalizate după acestea și după diplomă, dar, în etapa de confirmări programată imediat după afișarea rezultatelor, neprezentarea diplomei de bacalaureat în original conduce la descalificarea celor în cauză de la formele de învățământ fără taxă);
foaia matricolă, cu notele obținute pe parcursul liceului – elaborată conform legislației în vigoare (acest document se cere doar în cazul concursurilor de dosare)
certificatul de naștere, în copie legalizată;
adeverință medicală tip MS 18.1.1., eliberată, după caz de cabinetul medical școlar, de dispensarul teritorial sau de întreprinderea de care candidatul aparține, din care să rezulte aptitudinea medicală pentru domeniile la care se înscrie candidatul. Candidații cu afecțiuni cronice vor prezenta adeverințe medicale vizate de medicul de familie; în aceste adeverințe se va menționa, în mod expres, gradul deficiențelor, în funcție de localizarea acestora, pe baza diagnosticului stabilit de medicul specialist. Nedeclararea acestor afecțiuni atrage după sine consecințele instituționale în vigoare. Adeverințele medicale nu trebuie să fie vizate de către medicii Policlinicii Studențești din Timișoara.
trei fotografii color tip diplomă;
acte pentru scutirea de taxa de înscriere (copii legalizate după certificatele de deces ale părinților – în cazul candidaților orfani de ambii părinți; adeverințe de la casa de copii – în cazul candidaților care provin de la o casă de copii; copie legalizată a certificatului de deces al unui părinte – în cazul candidaților orfani de un părinte ca urmare a decesului acestuia ca erou – martir în Revoluția din Decembrie 1989; copie legalizată după certificatul medical sau un alt act cu valabilitate legală – în cazul candidaților ce ei înșiși au fost răniți în lupta pentru victoria Revoluției din Decembrie 1989; adeverință din care să rezulte că un părinte sau susținător legal al candidatului este angajat în sectorul învățământ bugetar; adeverință de angajat al UPT, în cazul candidaților ce ei înșiși sunt angajați ai UPT). Aceste acte doveditoare vor fi anexate cererii de înscriere doar de către candidații care solicită scutirea de taxa de înscriere ;
diploma de licență sau de absolvire, și foaia matricolă în copie legalizată -în cazul candidaților deja licențiați sau cu diplomă de absolvire;
adeverință de student și foaia matricolă parțială – în cazul candidaților deja studenți;
declarație pe proprie răspundere autentificată de un notariat privind nefinanțarea / finanțarea anterioară de la bugetul statului pentru urmarea de studii superioare, în cazul candidaților care au absolvit liceul înainte de 2007; candidații finanțați vor preciza în declarație și numărul semestrelor cât au fost finanțați.
Candidații la programele de studii în limba engleză vor anexa de asemenea :
certificat de competență în limba engleză agreat de UPT (CAE-Cambridge Certificate in Advanced English, IELTS – Internațional English Language Testing System, TOEFL-Test of English as a Foreign Language) sau au absolvit un liceu cu predare în această limbă, ori pot face dovada printr-o adeverință că au urmat în timpul învățământului preuniversitar (gimnaziu și liceu) disciplina limba engleză minim 5 ani de studii; de asemenea pot obține dreptul de participare și candidații care nu îndeplinesc această condiție, dar promovează un test de competență lingvistică, programat în data de 21.07.2007 la departamentul de Limbi Străine și Comunicare
Pentru respectarea prevederilor în vigoare privind regimul de studii în ROMÂNIA, toți candidații vor fi înscriși la concursul de admitere cu numele din certificatul de naștere inclusiv în cazurile în care, din anumite motive, ei și-au schimbat acest nume.
Comisiile de Admitere ale Facultăților organizează și efectuează înscrierea candidaților după un orar anunțat public. Candidaților înscriși la secțiuni cu probe de verificare a cunoștințelor / abilităților, li se vor elibera, cu ocazia înscrierii, legitimații de concurs cu fotografia lor. Pe parcursul derulării respectivelor probe, candidații vor avea asupra lor atât cartea de identitate, cât și legitimația de concurs. Legitimația de concurs este, de asemenea necesară la retragerea dosarului, înainte sau după concurs.
În perioada de înscriere, Comisiile de Admitere ale Facultăților vor afișa zilnic, pe secțiuni și domenii, cifrele de școlarizare aferente concursului și numărul candidaților înscriși. Pentru o corectă înțelegere a informațiilor afișate, în cazul secțiunilor care cuprind mai multe domenii, se va evidenția faptul că se concurează pe numărul total, cumulat, de locuri prevăzute pentru domeniile respective, concurența pe domenii indicând doar gradul de solicitare a acestora.
După încheierea perioadei de înscriere la concurs, comisiile de admitere vor afișa, prin tabele tip, listele nominale ale candidaților înscriși, cu toate datele relevante – opțiuni, etc.-, ordonați alfabetic, și, în cazul candidaților participanți la probe de verificare a cunoștințelor, repartizați pe săli.
Candidații au obligația de a verifica exactitatea datelor înscrise în liste și de a aduce la cunoștința comisiei de admitere a facultății în cauză eventualele neconcordanțe cu datele notate în cererea tip de înscriere sau față de actele depuse la dosar, în termen de 24 de ore de la data și ora afișării. După acest termen, nu se mai pot face modificări, de nici un fel și pentru nici un motiv, față de datele înscrise în listele afișate.
Comisiile de admitere ale facultăților vor afișa, o dată cu listele candidaților, și dispunerea sălilor de concurs în centrul universitar, indicând căile de acces spre aceste săli.
În vederea stabilirii rezultatelor concursului, Comisiile de Admitere ale Facultăților întocmesc câte un clasament la nivelul fiecărei secțiuni. Ordonarea în acest clasament se face în funcție de media de admitere.
Nota la probele de verificare a cunoștințelor se calculează cu formula:
nota = 0.08*punctajul obținut + 2
Candidații la concursul de admitere, care pe baza recunoașterii și echivalării unor studii superioare deja efectuate indiferent până la ce nivel , întrunesc condițiile pentru a fi admiși într-un an de studii ≥ 2, vor fi trecuți pe o listă separată și gestionați în paralel cu rundele de confirmări, păstrându-se opțiunile din fișa de înscriere, în ordinea descrescătoare a mediilor lor. Media minimă necesară pentru admiterea la un anumit domeniu, va fi identică cu a candidaților care sunt admiși în anul I de studii la același domeniu. Procedura, calendarul de confirmare și stabilire a rezultatelor finale pentru candidații admiși într-un an de studiu ≥ 2 vor fi identice cu cele pentru candidații admiși în anul I.
Având în vedere că orice candidat a avut posibilitatea de a concura în paralel la mai multe secțiuni ale UPT sau chiar la alte universități, candidații declarați admiși indiferent dacă au avut sau nu candidaturi multiple au obligația ca până la o dată prestabilită să confirme statutul de admis și, implicit, rămânerea în concurs la secțiunea în cauză, cu lista de opțiuni inițială (așadar: nu se confirmă admiterea pe locul curent, ci statutul de admis la secțiunea în cauză, locul urmând a fi cunoscut abia la finele procedurii de stabilire a rezultatelor, ca rezultat al listei de opțiuni inițiale și al poziției ocupate de candidat în clasamentul final). Confirmarea se face prin achitarea taxei de înmatriculare ca student al UPT și predarea chitanței la Comisia de Admitere a Facultății și, în plus, în cazul celor admiși în regim fără taxă, prin depunerea diplomei de bacalaureat în original la Comisia de Admitere a Facultății. Candidații care nu respectă multiobligația de mai sus, vor fi considerați retrași de la secțiunea în cauză, iar la o dată precizată, se vor afișa rezultatele concursului în noua situație. La o anumită perioada se specifică desfășurarea rundei de confirmări. Spre exemplu pentru anul 2007, perioada 24.07.2007, ora 10 – 25.07.2007, ora 16 reprezintă RUNDA 1 de confirmări.
Noii candidați admiși au obligația ca până la data de 27.07.2007, la ora 12, să confirme admiterea lor, în aceeași manieră ca mai sus. Eventualii candidați glisați față de runda precedentă de la statutul de admiși cu taxă, la statutul de admiși fără taxă, care nu au încă la dosarul de concurs diploma de bacalaureat în original, o vor depune, în același termen (27.07.2007, ora 12). Candidații care nu respectă obligația de mai sus, vor fi considerați retrași de la secțiunea în cauză. Rezultatele concursului obținute la finele acestor demersuri se vor afișa în data de 27.07.2007, la ora 16. Perioada 26.07.2007, ora 10 – 27.07.2007, ora 12 reprezintă RUNDA 2 de confirmări.
În intervalul 27.07.2007, ora 16 si ora 20, se va desfășura RUNDA 3 de confirmări, în cadrul căreia noii candidați admiși, respectiv candidații glisați față de runda precedentă de la statutul de admiși cu taxă, la statutul de admiși fără taxă, au obligația să confirme admiterea lor, în aceeași manieră ca mai sus. Candidații care nu respectă obligațiile de confirmare, vor fi considerați retrași de la secțiunea în cauză, iar în data de 27.07.2007, la ora 22, se vor afișa rezultatele concursului în noua situație, cu locurile care ar fi revenit candidaților care nu au confirmat rămase libere și, cu această ocazie, concursul se închide.
Rezultatele afișate în data de 27.07.2007, la ora 22 au statut de rezultate finale ale sesiunii iulie. În cazul în care în rezultatele finale încă există locuri libere sau dacă după închiderea concursului unii candidați admiși se vor retrage, UPT va organiza o a doua sesiune de admitere în ultima decadă a lunii septembrie 2007, pe baza aceleiași metodologii.
Subliniem faptul că pe toată desfășurarea concursului, candidații sunt tratați pe baza listei lor inițiale de opțiuni, orice modificare a acesteia sau adăugire fiind absolut interzise (așadar: inclusiv în situația că în final o parte din locuri vor rămâne neocupate!).
Candidații declarați respinși își pot ridica dosarele de concurs, pe bază de cerere, de la decanatul facultății de care aparține echipa de înscriere al cărei număr de ordine este marcat pe legitimația lor de concurs.
Eventualele contestații cu privire la modul de desfășurare a concursului sau la rezultatele acestuia se vor depune, în termen de 24 ore de la afișarea rezultatelor, la Comisia de Admitere a Facultății sau la Comisia Centrală de Admitere a Universității “Politehnica” din Timișoara, care au sarcina de a asigura analiza și rezolvarea lor și de a le răspunde prin afișarea rezoluției adoptate. Termenul de rezolvare a contestațiilor este de 24 ore de la depunerea lor.
Pentru lucrările cu subiecte tip grilă, punctajul atribuit, cu acceptul dat prin semnătură de candidați, în urma asistării la corectură, nu poate fi contestat.
În cazul lucrărilor scrise cu subiecte non-grilă, se acceptă modificarea punctajului atribuit inițial dacă în urma recorectării se propun note care conduc la o medie generală mai mare cu cel puțin un punct decât cea inițială sau dacă media inițială este mai mare de 9.
Cel mai înalt for la care pot fi depuse contestațiile este Comisia Centrală de Admitere a Universității “Politehnica” din Timișoara, Ministerul Educației Naționale declinându-și competența în acest subiect.
În ceea ce privește înscrierea la forma de învățământ master, etapele sunt similare cu cele de la înscrierea pentru licență. Candidatul adună actele necesare într-un dosar, cu care se prezintă la universitate, unde trebuie să completeze un formular cu opțiunile alese de acesta. Trebuie menționat că pentru master opțiunile se numesc specializări, și pot face parte din cadrul unei singure facultăți.Ulterior înscrierii, candidații vor susține probele de examen, iar apoi vor fi distribuiți în funcție de specializarea pentru care au optat.
Aplicația ce constituie tema proiectului de față are menirea de a implementa într-o formă informatizată stadiile înscrierii pentru forma de învățământ master, respectiv pentru forma de învățământ licență.
Aplicatia conține trei nivele de acces: 1 – student, 2 – membru comisie admitere, 3 – administrator.
Administratorul configurează aplicația introducând toate secțiunile din universitate, apoi facultățile de la fiecare secțiune și domeniile acelor facultăti. La admiterea la forma de învățământ licență, avem domenii; la admiterea la forma de învățământ master avem specializări. La licență o secțiune cuprinde domenii de la mai multe facultăți. La master o secțiune cuprinde o singură facultate. În documentație se utilizează termenul de domeniu, în cadrul introducerii elementelor referitoare la licență, iar pentru master se folosește termenul de specializari. Din punct de vedere al programului în același câmp se vor scrie atât denumirile de domeniu cât și cele de specializări, se va ști dacă în acel câmp este un domeniu sau o specializare în funcție de forma de învățământ (master sau licență).
Din punct de vedere detaliat, aplicația cuprinde:
O pagină în care se stabilește tipul concursului ce urmează să se desfășoare: concurs la forma de învățământ licență sau concurs la forma de învățământ master. De asemenea, în această pagină se salvează perioada de înscriere, perioada de desfășurare a examenelor și perioada de confirmări ulterioară.
Se implementează o pagina ce conține configurarea facultăților, în care se pot introduce facultati, asupra cărora se pot efectua operațiile de modificate sau ștergere.
O altă pagină este cea pentru configurarea domeniilor (sau specializări în funcție de tipul admiterii: master sau licență) în care să poată fi introduse domeniile sau specializările pentru fiecare facultate. Se selecteaza o facultate după care se introduce un domeniu (sau specializare), respectiv forma de învățământ pentru care se introduce respectivul domeniu/specializare. Dacă un domeniu a fost introdus greșit, el poate fi modificat sau șters. Pentru aceasta se pleacă de la facultăți, se selectează o facultate, apar domeniile de la acea facultate, se selectează un domeniu și se dă comanda ștergere sau modificare; Dacă s-a ales comanda modificare, apar în casete de text denumirea și codul domeniului, care pot fi editate, apoi se da comanda modificare.
alta parte componentă a aplcației este pagina de configurare secțiuni, prin intermediul căreia sunt introduse secțiunile aferente formei de învățământ licență, respectiv, master. Această pagină conține selectarea formei de concurs pentru admitere: concurs de verificare a cunoștințelor sau concurs de dosare, respectiv probele de desfășurare a concursului. În cazul concursului de dosare, se completează disciplinele de interes. La master o secțiune este formată din specializarile de la o singură facultate; deci în acest caz administratorul va introduce la numele secțiunii numele facultății. Și în cadrul acestei pagini avem posibilitatea de a salva datele introduse. Este posibil ca administratorul să greșească la introducere, fapt pentru care trebuie să se poată șterge o secțiune sau să se modifice parametrii ei. În acest sens, se implementează lângă numele secțiunii un buton de căutare; Administratorul introduce numele unei secțiuni și dă comanda căutare; dacă secțiunea nu este gasită se afișează un mesaj. Și această pagină este dotată cu comenyi de ștergere respectiv modificare a datelor introduse, putând totodată furniza vizualizarea datelor deja introduse.
După ce s-au introdus sectiunile se detaliază facultățile și domeniile (sau specializările la master) de la fiecare sectiune. În acest sens, s-a implementat o pagină de configurare domenii/specializări: apăre un buton de selecție; administratorul alege o secțiune și apoi se dă comanda validare; la această comandă apare lista de facultăți, se alege o facultate, după care se dă comanda validare (daca este vorba despre master trebuie să se aleagă facultatea care are același nume cu secțiunea); în funcție de facultatea aleasă apar domeniile (specializările) de la acea facultate; se selectează un domeniu (specializare) și se dă comanda salvare. Din acestă pagină se face trimitere către o altă pagină, în care se pot vizualiza informațiile introduse, respectiv tot aici se pot efectua operatii de modificare si stergerea a informațiilor introduse cu posibile erori.
În ceea ce privește configurarea comisiei (se introduc, caută, șterg informații despre membrii comisiei de admitere: nume, prenume, facultatea – se selecteaza din lista de facultati, departamentul – se seleteaza din lista de departamente, funcția didactică, funcția în comisie (membru sau președinte), utilizator, parola.
Candidatul se înscrie, urmând să dea admiterea. La înscriere, el se prezinta cu dosarul de concurs care cuprinde acte specificate mai sus în lucrarea de față. La loginare candidatul va putea vedea numărul de locuri care sunt la fiecare dintre specializările din secțiunea la care s-a înscris, (și câți candidați sunt inscriși pană în prezent la secțiunea la care s-a înscris). Fișa de înscriere se regăsește în program, organizată pe mai multe pagini: cu datele personale, cu datele școlare și respectiv cu alegerea opțiunilorPentru fiecare etapă de introduceri, datele pot fi vizualizate sub formă tabelară spre verificarea corectitudinii datelor introduse.
Comisia verifică informațiile completate de fiecare student, pentru aceasta membrii comisiei se pot logina la aplicatie, membrii comisiei pot vizualiza doar informațiile din secțiunea din care fac parte, însă dacă au ca și arie de responsabilitate toate secțiunile, accesul este permis spre vizualizarea tuturor informațiilor. Operatorii pe calculator din cadrul comisiei au datoria de a introduce pentru fiecare student notele de la admitere, respectiv calculul mediei, respectiv distribuirea în funcție de opțiuni, dar și confirmarea candidaților. Aplicația furnizează diverse statistici, utile în categorisirea candidaților.
1.2 Obiectivele lucrării
În prezent, admiterea la master și licență este un proces amplu și consumator de timp. La momentul actual, studenții, când doresc să se înscrie, trebuie să completeze un formular, care conține datele personale, respectiv cele școlare, formular care se atașează la dosar alături de celelalte acte solicitate la înscriere. Cadrele didactice, care fac parte din comisia aferenta procesului de admitere, trebuie să verifice datele completate de candidați, respectiv să le introducă în bazele de date aferente înscrierii, ceea ce devine o activitate care necesită foarte mult timp. Ulterior, după susținerea examenelor, notele obținute de participanți trebuie din nou introduse pentru a se genera diverse statistici și grafice necesare procesului de învățământ superior sau solicitate chiar de Ministerul Învățământului. Aplicația este concepută astfel încât ea deține trei nivele de acces, unul aferent administratorului, unul aferent candidatului și respectiv membrilor comisiei. Candidatul când depune dosarul de înscriere primește un user și repectiv o parola. Cu ajutorul acestora se loginează la aplicație, și prima pagină care i se deschide conține informații despre secțiunea pentru care a optat, dar și numărul candidaților înscriși și termenul limită al perioadei de înscriere. Apoi acesta are acces la o pagină a aplicației, care îi solicită completarea datelor personale, care se regăsesc și în cadrul formularelor care trebuie completate în prezent, urmând ca apoi să continue prin completarea informațiilor școlare referitoare la forma de învățământ anterioară. În perioada desfășurării examenelor, candidatul nu are acces la program, însă în perioada confirmărilor acesta poate vizualiza candidații care au reușit la examen, dar și domeniul la care au fost admiși. Ca urmare aplicația încearcă să confere confortul candidaților pentru completarea datelor atât printr-o interfață prietenoasă, cât și prin mediul în care programul poate fi accesat, nemaifiind necesară completarea formularelor, care se face de obicei în holurile universității, precum și vizualizarea ulterioară a informațiilor despre situația candidaților admiși sau respinși.
Totodată, comisia poate accesa aplicația, prin intermediul căreia se pot vizualiza datele introduse de studenți, dar se pot și lista pentru verificare. Se conferă și posibilitatea de a introduce notele candidaților, dar și confirmările acestora. Această aplicație este concepută în scopul ca în momentul în care participantul vine să-și confirme locul, datele referitoare la confirmare să poată fi introduse automat în aplicație. În felul acesta se economisește foarte mult timp, putându-se astfel vizualiza în orice moment situația candidaților care au confirmat poziția pe care sunt admiși. Respectiv, aplicația pune la dispoziția utilizatorului vizualizarea candidaților admiși înainte și după confirmări, dar și posibilitatea creării contului participanților. Cadrele didactice pot vedea statistici sub formă de grafice, care pot fi necesare activității sau solicitărilor de statistici ulterioare procesului de admitere.
Obiectivele elaborării acestei aplicații sunt în primul rând facilitarea activității cadrelor didactice din cadrul comisiei prin intermediul economiei de timp, necesar pentru introducerea datelor, dar și prin modernizarea sistemului de înscrieri foarte bine pus la punct, care funcționează la momentul actual. Însă în momentul de față, procesul de admitere și înscriere durează foarte mult, datorită centralizării datelor, care impune foarte mult timp dar și foarte multă putere de concentrare în ceea ce privește corectitudinea introducerii datelor. Totodată în cazul în care s-a efectuat o eroare în cadrul introducerii, aceasta poate scăpa neobservată, fapt care nu este permis de aplicația dezvoltată. În cadrul sistemului actual, statisticile referitoare la datele introduse pot fi furnizate după introducerea tuturor datelor, programul poate detalia statistici sau vizualizări ale datelor introduse în orice moment.
Din punctul de vedere al candidaților, programul are menirea de a pune la dispoziția utilizatorilor facilitatea introducerii datelor, dar și posibilitatea de a avea acces la informații o perioadă limitată de timp, fapt ce diferă față de situația existentă la momentul actual, când participanții nu au acces la informații decât în momentul afișării rezultatelor.
Ca urmare aplicația are menirea de a moderniza sistemul existent la ora actuală, de a-l îmbunătăți din punctul de vedere al furnizării informațiilor prin promptitudinea sa, axânduse în primul rând pe atingerea obiectivului principal economia de timp.
Ca o propunere în ceea ce privește punerea în aplicare a acestui program o soluție ar fi utilizarea ambelor sisteme concomitent pentru a evita riscul pierderii de informații, situație des întâlnită în cazul implementării unui nou sistem în orice domeniu și instituție. De asemenea este imperios necesară și promovarea din timp a noului sistem, pentru ca participanții să aibă timpul necesar documentării aferente noului sistem. Promovarea noului sistem se poate face atât pe site-ul universității, cât și pe eventualele materiale promoționale utilizate de universitate pentru promovarea multiplelor posibilități de studiu pe care viitorii studenți le pot avea la momentul actual, prin intermediul varietății de domenii pentru care ei pot opta.
1.3 Specificațiile de proiectare
Din punctul de vedere al specificațiilor de proiectare, aplicația trebuie să dețină trei nivele de acces cu trei tipuri de utilizatori: candidatul, membru comisie de admitere și administrator.
Administratorul configurează aplicația introducând toate secțiunile din universitate, apoi facultățile, ce aparțin fiecărei secțiuni și domeniile aferente acelor facultăți. La admiterea pentru forma de învățământ licență, există domenii, iar la admiterea la forma de învățământ master există specializări. La licență o secțiune cuprinde domenii de la mai multe facultăți, spre deosebire de master, unde o secțiune cuprinde o singură facultate. În documentația de față se utilizează termenul de domeniu, pentru cazul licenței, iar când se face referire la master se folosește termenul de specializări. Din punct de vedere al programului în același câmp se vor scrie atât denumirile de domeniu cât și cele de specializări, ca urmare se va cunoaște faptul că în acel câmp se găsește un domeniu sau o specializare în funcție de forma de învățământ (master sau licență). Dintr-un punct de vedere mai detaliat programul trebuie să conțină: o pagină în care se stabilește tipul concursului ce urmează să se desfășoare, concurs la forma de învățământ licență sau concurs la forma de învățământ master. De asemenea, în această pagină se salvează perioada de înscriere, perioada de desfășurare a examenelor și perioada de confirmări ulterioară. Trebuie implementată o pagină de configurare facultăți, în care să poata fi introduse facultăți, respectiv să permită efectuarea operațiilor de modificare sau ștergere a celor deja introduse. Câmpurile unei facultăți sunt cod și denumire. Totodată se impune implementarea unei pagini de configurare a domeniilor (sau specializărilor în funcție de tipul admiterii:master sau licență) care să permită introducerea Domeniilor/Specializărilor pentru fiecare facultate. Modul de desfășurare al utilizării acestei pagini trebuie să respecte următorul șir de acțiuni: se selectează o facultate după care se introduce un domeniu(sau specializare) (Cod, Denumire și Forma de învățământ; dacă admiterea este la master se va ști că este vorba de o specializare, iar pentru licență de un domeniu). Dacă un domeniu a fost introdus greșit el poate fi modificat sau șters, iar pentru aceasta se pleacă de la facultăți, se selectează o facultate, iar apoi apar domeniile de la acea facultate, se optează pentru un domeniu și se dă comanda ștergere sau modificare. O altă necesitate ce trebuie deținută de aplicație este aceea a implementării unei pagini care este denumită Configurare secțiuni, care trebuie să conțină următoarele informații: numele secțiunii, forma de admitere ( buton select cu valorile concurs de dosare sau examen de verificare a cunostintelor), proba 1 sau proba 2 ( în cazul în care este necesară introducerea a două probe de concurs ) și repectiv apartenența secțiunii introduse( master sau licență). În cazul în care este situația pentru concurs de dosare administratorul va completa denumirea disciplinelor de interes, iar dacă este examen cu verificarea cunoștintelor utilizatorul va introduce denumirea probelor de examen. Dacă se selectează pentru secțiunea introdusă apartenența la master, va apărea posibilitatea de introducere a unei singure probe în care se va introduce “Interviu”. La master o secțiune este formată din specializările de la o singură facultate, ca urmare în acest caz administratorul va introduce la numele secțiunii numele facultății. Pagina trebuie să dețină un buton Salvare ( care realizează operația de salvare în baza de date a informațiilor introduse). Este posibil ca utilizatorul efectueze erori la introducere, fapt pentru care acesta trebuie să poată beneficia de facilitatea de a șterge o secțiune sau de a modifica parametrii acesteia. În acest sens, se optează pentru adăugarea lângă numele secțiunii a unui buton de căutare. Astfel, administratorul introduce numele unei secțiuni și acșionează comanda căutare, iar în cazul în care secțiunea nu este gasită se afișează un mesaj, iar dacă aceasta a fost gasită se încarcă casetele de date din cadrul paginii cu informații din baza de date. Pentru securitatea introducerii datelor, aplicația trebuie să solicite căutarea secțiunii introduse, iar când aceasta s-a găsit, vor apărea butoanele: Salvare (pentru memorarea informațiilor în baza de date), Modificare (în vederea realizării ulterioarelor modificări), Ștergere (ștergerea secțiunii curente). De asemenea, se afișează sub forma unui tabel informații despre toate secțiunile introduse. Ulterior, urmează să se detalieze facultățile și domeniile (sau specializările la master) de la fiecare secțiune (la master, o facultate poate avea domenii care fac parte din secțiuni diferite). În acest sens este imperios necesar să existe o pagină de configurare Domenii/Specializări, unde trebuie să se implementeze un buton de selectie pentru ca administratorul să poată alege o secțiune și apoi să acționeze butonul de validare, apoiva apărea ca efect al acestei acțiuni lista de facultăți, de unde se alege o facultate, dupa care se dă comanda Domenii (dacă este vorba despre master trebuie să se aleagă facultatea care are același nume cu secțiunea). în funcție de facultatea aleasă, apar domeniile(specializările) de la acea facultate, iar apoi se selectează un domeniu(specializare) și se da comanda salvare. În altă pagină ( către care există un link pe această pagină de introducere va fi afișat un tabel cu secțiunile, facultățile și domeniile(specializările) aferente fiecărei secțiuni. Aplicația trebuie să permită utilizatorului să șteargă (din cadrul unei secțiuni) o facultate sau un domeniu, introdus gresit; pentru acesta se va implementa o astfel de optiune. Ștergerea trebuie să decurgă în felul următor: se selectează o secțiune, apoi vor apărea facultățile de la acea secțiune, putându-se alege și sterge o facultate, sau se poate trece la domenii, apărând domeniile de la acea facultate și se poate șterge un domeniu. Dacă după ce a definit lista de secțiuni, administratorul șterge din lista de facultăți o facultate (Configurare Facultăți), apare o problemă in lista de secțiuni deja definită; caz în care trebuie prevăzută soluția ca la ștergerea unei facultăți, aceasta trebuie ștearsă și din lista de secțiuni, deja definite. Dacă se modifică codul unei facultăți, acea modificare trebuie să se regăsească și în lista de secțiuni (în mod similar se tratează și cazul domeniilor). Se impune implementarea unei pagini de configurare comisie, în care se introduc, caută, se șterg informații despre membrii comisieri de admitere: nume, prenume, facultatea – se selectează din lista de facultăți, departamentul – se seletează din lista de departamente, funcția didactică, funcția în comisie, utilizator, parola.
La înscriere, candidatul se prezintă cu dosarul de concurs, specificând adresa de e-mail pe care va primi în decurs de 24 de ore contul creat (utilizator și parolă). La loginare candidatul va putea vizualiza domeniile aferente secțiunii pentru care a optat, dar și numărul de locuri, care sunt disponibile la fiecare dintre domeniile aferente secțiunii, punându-i-se la dispoziție și posibilitatea de a vedea numărul candidaților înscriși la secțiunea respectivă. Introducerea informațiilor aferente candidatului se organizează astfel, se completează fișa de înscriere online, care are are mai multe pagini:
Pagina 1 – date personale
Nume
Prenume
Cnp (câmpurile de sus până aici se completează în momentul în care se crează contul, deci vor fi automat completate)
Numele_tatălui
Prenumele_tatălui
Numele_mamei
Prenumele Mamei
Data_nașterii
Judet_naștere- județele se încarcă din tabela de județe
Localitate – apar doar localitățile din județul selectat
Sexul (valori posibile M sau F)
Starea civilă (căsătorit,necăsătorit, divorțat)
Nationalitatea (Nationalitățile se încarcă din tabela țări)
Originea_etnică
Cod de origine etnic (după mamă, după tată, după ambii părinți)
Judet_domiciliu
Localitate_domiciliu
Cod postal
Strada
Nr
Bloc
Scara
Etaj
Apartament
Telefon Fix
Telefon Mobil
Pagina 2 – Informații despre situația școlară:
Județ – în tabelă se salvează codul județului
Localitate – apar localitățile aferente judetului selectat, iar în tabelă se salvează nr_localitate
Liceul – apare o listă cu liceele din localitatea selectată din care se alege un liceu; – în tabela se salvează numărul liceului
Absolvire_fac: dacă a absolvit o facultate de stat fără taxă (DA-forma scurtă sau DA-forma lungă, NU); în tabelă se memorează codul S,L sau N
Semestre_bugetate: dacă este sau a fost student bugetat de stat fără a absolvi (se completează numărul de semestre)
Câmpurile cod_judet, nr_localitate, Nr_liceu, absolvire_fac și semestre bugetate prezintă interes doar în cazul admiterii la licență. Programul va verifica dacă examenul care se desfășoară este de admitere la master sau la licență (informație aflată pein interogarea tabelei tip concurs). Daca este concurs de licență nu se afișează câmpurile de mai sus (de la i până la v).
Universitate – se afișează din lista de universități
Facultate – apar toate facultățile de la universitatea selectată.
Câmpurile: vi și vii prezintă interes doar la admitere la master; altfel nu se afișează
Anul absolvirii (valabil și la licenta și la master)
Medie_examen_finalizare (se trece media de la bacalaureat pentru licență, media de licență pentru master)
Media_multianuală (la licență se trece media anilor de liceu, respectiv media anilor de facultate în cazul admiterii la master)
Media multianuală la disciplina de concurs 1
Media multianuală la disciplina de concurs 2
Media multianuală la disciplinele de concurs prezintă interes la admiterea la licență și dacă este concurs de dosare și dacă sunt examene. La admiterea prin examen, aceasta servește la deprtajare. La master nu prezintă interes aceste două câmpuri și ca urmare acestea nu vor fi afișate.
Pagina 3 – domeniile/specializările la care se înscrie candidatul în ordinea priorităților. Se face distincție clară între cele cu taxă și cele fără taxă. Vor aparea atâtea casete de selecție câte domenii/ specializări cu taxă și fără taxă sunt. Se va verifica dacă studentul nu a completat de mai multe ori același domeniu. În cazul în care se întâmplă o astfel situație, va apărea un mesaj de avertizare, atunci când acesta alege comanda salvare. Totodată, candidatul poate vizualiza sub formă tabelară informațiile introduse. În situația introducerii eronate a datelor, candidatul poate modifica informațiile introduse. Modificările se pot face până la o dată stabilită de comisie, care va începe să verifice dacă informațiile completate coincid cu cele de pe actele depuse de student la înscriere. Studentului îi i se va furniza data limită, până la care se va putea logina la aplicație pentru a face modificări.
Comisia verifică informațiile completate de fiecare candidat, pentru aceasta membrii comisiei se pot logina la aplicație și pot genera un document pdf cu informațiile completate de toți candidații la admitere de la toate secțiunile). Comisia introduce pentru fiecare student notele de la admitere, aplicația punându-i la dispoziție opțiunea de căutare a unui candidat și respectiv introducerea notelor acestuia, dar și calculul mediei de adimitere. Totodată participanții la concurs pot fi vizualizați paginat, câte trei înregistrări pe pagină. Aplicația distribuie candidații în funcție de opțiuni și rezultate, respectiv furnizarea de listinguri cu studentii admiși / respinși alfabetic, descrescător după medie, care vor fi puse la dispoziția studenților când se vor logina, împreună cu necesitatea confirmări, informații care vor fi accesibile acestora în perioada aferentă confirmărilor.
În perioada de confirmări, zilnic după încheierea programului dedicat confirmărilor o persoană din comisie va introduce faptul că un student a achitat taxa de confirmare prin intermediul introducerii seriei și numărului chitanței.
După confirmări studenții vor fi redistribuiți.
Aplicația permite, de asemenea, generarea de diverse statistici (sub fomă grafică).
Pe parcursul întregului program se vor face verificări ale corectitudinii informațiilor introduse (numele nu are voie sa conțină cifre, câmpurile de note sau medii nu au voie să conțină litere).
Denumirile câmpurilor sau a tabelelor din acest document se pot modifica. Se pot adăuga sau elimina câmpuri sau tabele în functie de necesitățile care apar pe parcursul dezvoltării programului. Indiferent de modificările făcute la implementare trebuie respectat principiul tabelelor relaționate, și evitatată situația memorării acelorași informații în locuri multiple, întrucât se risipește spațiu și modificările ulterioare sunt mai dificil de efectuat.
1.4 Structura lucrării
Din punctul de vedere al structurii, lucrarea de față se desfășoară pe parcursul a cinci capitole, fiecare dintre acestea fiind organizate in subcapitole, care conțin abordarea detaliată a temei relevată de fiecare dintre acestea.
Primul capitol, Introducerea, surprinde mai întâi contextul actual în care se desfășoară înscrierea în cadrul Universității Politehnice Timișoara, care se bazează pe cumularea mai multor acte de către fiecare candidat într-un dosar, care trebuie să conțină și un formular, în care candidatul trebuie să completeze datele personale, datele școlare aferente formei de învățământ anterioare absolvite, dar și domeniile pentru care optează din cadrul secțiunii la care se înscrie în ordinea preferințelor și care se depune la sediul universității. Aceste dosare sunt analizate de către comisie, pentru a se verifica corectitudinea informațiilor, urmând ca apoi să se centralizeze datele furnizate de procesul de înscriere. De asemenea, în acest capitol se detaliază obiectivele care se doresc să se atingă cu implementarea acestei aplicații, unul dintre aceste targete fiind economia de timp pentru cadrele didactice, dar și facilitarea centralizării datelor furnizate de participanți, precum și furnizarea statisticilor, în orice moment. De asemenea, se detaliază în cadrul acestui capitol și specificațiile de proiectare, unde se relevă modul în care se solicită să se implementeze aplicația, făcându-se referire atât la aspectul interfeței cu utilizatorul, cât și la modalitatea de implementare, respectiv la modul de utilizare al programului. Totodată, în această parte a lucrării, este suprinsă și arhitectura acesteia, din punctul de vedere al structurării pe capitole.
Al doilea capitol, Fundamentarea teoretică, surprinde elementele utilizate pe parcursul implementării programului, dar din punct de vedere teoretic. Se detaliază aspecte legate de limbajul HTML, cu relevarea principalelor sintagme folosite, câteva puncte elocvente din cadrul implementării și utilizării CSS-urilor. Un alt punct dezvoltat în cadrul acestei părți a lucrării este detalierea câtorva probleme teoretice, legate de utilizarea în implementare a limbajului de programare PHP, sintagme, operatori, instructiuni, și alte aspecte de bază în cadrul folosirii PHP. Alături de această prezentare se adaugă, relevarea, pe scurt a utilizării Mysql, întrucât întreaga aplicație este implementată pe baza lucrului cu baze de date, respectiv cu tabele interrelaționate.
În cadrul celui de-al treilea capitol, aplicația este detaliată din punctul de vedere al arhitecturii programului, pe baza detalierii unor scheme bloc de funcționare a acestuia în funcție de tipul de utilizatori ce pot accesa aplicația. De asemenea, este surpins și sistemul de organizare a tabelelor bazei de date și respectiv modul în care programul accesează și efectuează operații asupra lor(salvare, căutare, ștergere, modificare). Din punctul de vedere, al implementării sunt relevate și detaliate câteva funcții, care se impun ca și dificultate de funcționare, fiind exemplificate prin intermediul unor porțiuni de cod.
În continuare, capitolul patru, relevă partea de utilizare a aplicației surprinsă din punctul de vedere a celor trei tipuri de utilizatori administrator, candidat și membru comisie. Detalierea aspectelor legate de folosirea aplicației este surprinsă în amănunt, astfel încât acest capitol poate fi utilizat ca și un manual de utilizare a aplicației, făcându-se referire la introducerea, salvarea, modificarea, ștergerea, verificarea corectitudinii și respectiv la modalitatea de vizualizare a datelor operate.
În ultimul capitol al acestei lucrări sunt surprinse aspecte legate de atingerea obiectivelor propuse în debutul acestei prezentă, dar și eventualele direcții de dezvoltare ale aplicației.
Capitolul 2. Fundamentare teoretică
Aplicația este realizată cu ajutorul mediului de programare PHP, HTML(CSS) și bazată pe lucrul cu baze de date Mysql. În continuare, se vor detalia câteva concepte ale limbajului HTML(CSS), PHP și Mysql, care stau la baza implementării acestei aplicații.
2.1 HTML
HTML este prescurtarea de la Hyper Text Mark-up Language și este codul care stă la baza paginilor web. HTML este prescurtarea de la Hyper Text Mark-up Language și este codul care stă la baza paginilor web. Paginile HTML sunt formate din etichete sau tag-uri și au extensia .html sau .htm. În marea lor majoritate aceste etichete sunt pereche, una de deschidere <eticheta> și alta de închidere </eticheta>. Browserul interpretează aceste etichete afișând rezultatul pe ecran. HTML-ul nu este un limbaj case sensitiv (nu face deosebirea între litere mici și mari). Pagina principală a unui domeniu este fișierul index.html. Această pagină este setată a fi afișată automat la vizitarea unui domeniu[3]. De exemplu la vizitarea domeniului www.nume.ro este afișată pagina www.nume.ro/index.html. Unele etichete permit utilizarea de atribute care pot avea anumite valori: <eticheta atribut="valoare"> … </eticheta>.
Componența unui document HTML este: versiunea HTML a documentului, zona head cu etichetele <head> </head>, zona body cu etichetele <body> </body> sau <frameset> </frameset>.
Toate paginile HTML încep și se termină cu etichetele <html> și </html>. În interiorul acestor etichete găsim perechile <head>, </head> și <body>, </body>. head conține titlul paginii între etichetele <title> și </title>, descrieri de tip <meta>, stiluri pentru formatarea textului, scripturi și linkuri către fișiere externe (de exemplu scripturi, fișiere de tip CSS sau favicon). Etichetele de tip meta conțin cuvinte cheie, descrierea paginii, date despre autor, informații utile motoarelor de căutare și au următorul format: <META NAME="nume" CONTENT="continut">, body găzduiește practic toate etichetele afișate de browser pe ecran. Și în HTML poate fi introdus un comentariu, care bineînțeles nu va fi afișat de browser: <!– Acesta este un comentariu in HTML –>
Formatare text
În HTML trecerea la un rând nou se face doar prin introducerea etichetei <br> iar pentru paragraf nou cu eticheta <p>. <hr> introduce o linie linie orizontală și trecerea la un rând nou. Folosind etichete adecvate textul poate fi formatat. Spre exemplu fonturilor li se poate modifica: mărimea, culoarea, forma (normal, bold, italic), familia (Arial, Verdana, etc.), textul poate fi aliniat pe orizontală sau verticală, iar titlurile (header), de la 1 la 6, sunt diferite ca mărime (1 cel mai mare iar 6 cel mai mic)[ 3]. Etichetele <div> și </div> delimitează un bloc text în vederea formatării. Unul din atributele blocului div este align care poate lua valorile: center aliniere pe centru left aliniere la stânga, right aliniere la dreapta. În situația în care se dorește ca textul introdus să fie afișat exact așa cum a fost introdus (text preformatat) în fișierul sursă vom folosi pereche de etichete <pre> și </pre>.
Liste
Listele sunt un mod simplu de organizare a informației și pot fi neordonate, ordonate și de definitii.
a) Liste neordonate
Aceste liste sunt delimitate de etichetele <ul> și </ul>, iar elementele de <li> și </li>. Elementele listei pot fi particularizate folosind atributul type care poate lua valorile square, circle și disc.
Exemplu
b) Liste ordonate
Aceste liste sunt delimitate de etichetele <ol> și </ol>, iar elementele de <li> și </li> nu lipsesc.
Exemplu
Elementele listei pot fi particularizate folosind atributul type care poate lua valorile A (litere mari), a (litere mici), I (cifre romane mari), i (cifre romane mici), 1 (optiunea default).
c) Liste de definiții
Aceste liste sunt delimitate de etichetele <dl> și </dl>. Termenii listei sunt delimitați de etichetele <dt> și </dt>, iar definitiile termenilor de <dd> și </dd>.
Exemplu
Legături
Legătura (link-ul) este o etichetă foarte importantă în HTML, deoarece conferă utilizatorului posibilitatea navigării de la o pagină la alta. Deobicei link-ul este subliniat iar atunci când suntem deasupra lui cursorul își schimbă forma[3]. Link-ul este definit cu etichetele <a> și </a> și are atributele: href – adresa fisierului destinație, target – în ce fereastră se va deschide fișierul destinație, title – mică descriere asociată legăturii afișata în momentul în care mouse-ul se afla deasupra legăturii. Adresa fișierului destinație poate fi exprimată astfel: nume fișier dacă se află în același folder cu pagina curentă, adresa relativă dacă se află pe același server sau disc, indicându-se calea, adresa URL fiind adresa completa a paginii (de exemplu: http://www.proba.ro/pagina.html) Atributul target poate lua valorile: _blank pagina va fi încărcată într-o nouă fereastră, _parent pagina va fi încărcată în fereastra părinte, _top pagina va fi încărcată în fereastra top a cadrului, _self pagina va fi încărcată în aceeași fereastră.Putem insera un link către o adresă de e-mail putând asocia si un subiect prestabilit
Culoarea linkurilor poate fi modificată introducând în eticheta body următoarele atribute: LINK legătura nevizitată (default albastru) VLINK legătura vizitată (default roșu)
ALINK legătura activă (nu prea se folosește – default portocaliu)
Imagini
Folosind imagini pagina capată un plus de atractivitate, dar se poate plăti prețul unei încărcări greoaie dacă dimensiunile imaginii sunt mari. Câteva din formatele de imagini utilizate în paginile web sunt: JPEG (*.jpg sau *.jpeg), GIF (*.gif), BMP (*.bmp), PNG (*.png). Formatul gif este recomadat pentru realizarea butoanelor și a icoanelor, iar jpg pentru fotografii. Eticheta folosită pentru inserarea unei imagini în pagină este <img> și are următoarele atribute: src = sursa, locul unde se află imaginea width = lățimea imaginii, height = înălțimea imaginii, alt = numele care înlocuiește imaginea până aceasta se încarcă sau când nu a fost găsită, border = chenar (0 = lipsă bordură)[6]. Dimensiunea imaginii afișate de browser este stabilită de argumentele width și height, care pot fi diferite de dimensiunile imaginii originale, caz în care imaginea va fi redimensionată automat de către browser. Pentru a micșora timpul încărcării complete a paginii există programe care optimizează imaginile. Optimizarea constă în: 1. reducerea dimensiunii imaginii fără degradarea majoră a calității 2. eliminarea informațiilor tip metadata asociate imaginii. Aceste date (EXIF/IPTC) sunt asociate automat de programele de grafică (de ex. Adobe Photoshop) sau de aparatele de fotografiat digitale[6].
Tabele
Aceste etichete au o mare utilizare, deoarece tabele constituie structura care stă la baza organizãrii marii majorități a paginilor web (inclusiv cea din lucrarea de față). Tabelul este format din linii și coloane împărțind zona în celule. Fiecare celulă păstrează informația care va fi afișată. Pentru o afișare corectă a tabelului fiecare rând va avea același număr de celule. Dacă dorim ca o celulă să fie goală vom introduce un spațiu gol (space) sau codul echivalent . Pentru inserarea unui tabel este folosită perechea de etichete <table> și </table>, pentru un rând <tr> și </tr>, iar pentru o celula <td> și </td>. Tabele pot fi imbricate, adică în interior pot conține unul sau mai multe tabele. Atributele etichetei table sunt: border = bordura (0 = lipsa bordura), width = lățimea tabelului, height = înălțimea tabelului bgcolor = culoarea de fundal, background = imaginea de fundal, cellspacing = distanța între cellule, cellpaddind = distanța dintre marginea celului și conținut. Atributele etichetei td sunt: align = aliniere pe orizontală a conținutului (left=stânga, right=dreapta, center=centru), valign = aliniere pe verticală a conținutului (top=sus, bottom=jos, middle=mijloc), width = lățimea celulei height = înălțimea celulei, bgcolor = culoarea de fundal, background = imaginea de fundal colspan = unește celula cu cea din dreapta ei, rowspan = unește celula cu cea de sub ea. Dacă se dorește să se evidențieze conținutul primului rând (capul de tabel) putem folosi perechea de etichete <th> și </th> în locul etichetelor <td> și </td>. Astfel conținutul celulei va fi afișat îngroșat și aliniat pe mijloc. Eticheta caption va adauga o linie text deasupra tabelului, centrată pe mijloc, deobicei folosită ca fiind un titlu al tabelului. caption se plasează obligatoriu imediat după tag-ul table, dar inainte de prima eticheta tr. [3]
Formulare
Folosind formularele se pot colecta diverse informații de la vizitatori. Cele mai importante atribute ale etichetei <form> sunt action și method. action meționează adresa scriptului (aflat pe server) care va interpreta formularul. Aceste scripturi pot fi scrise în limbajele PHP. method indică metoda folosită de browser pentru transmiterea formularului. Poate lua valorile get și post. get – datele sunt trimise prin adăugarea la adresa indicată de action. Permite trimiterea unor mici cantități de date. post – datele sunt trimise separat și sunt permise cantități mari de date.
Eticheta <input> poate avea atributele: type – indică tipul datelor care vor fi introduse (text=text, submit=trimite, reset=sterge, password=parola, hidden=nu este vizibil, checkbox=caseta de validare, button=buton, radio=selectarea unui singur element dintr-un grup, file=fisier pentru upload), name – numele asociat câmpului respectiv. Este folosit la prelucrarea datelor de catre scriptul mentionat in action size – numărul de caractere vizibile din camp maxlenght – numărul maxim de caractere introduse în câmp readonly – datele prezente în câmp nu pot fi modificate.Construcția select introduce un meniu derulant (lista de selecție) la care valorile sunt declarate prin option.
2.2 CSS
Noțiuni de bază
CSS, prescurtarea de la Cascading Style Sheets, sunt etichete folosite pentru formatarea paginilor web (de exemplu formatare text, background sau aranjare în pagină, etc.). Beneficiile sintaxei CSS sunt: formatarea este introdusa într-un singur loc pentru tot documentul, editarea rapidă a etichetelor, datorită introducerii într-un singur loc a etichetelor se obține o micșorare a codului paginii, implicit încărcarea mai rapidă a acesteia. Sintaxa CSS este structurată pe trei nivele: nivelul 1 fiind proprietățile etichetelor din documentul HTML, tip inline, nivelul 2 este informația introdusă în blocul HEAD, tip embedded, nivelul 3 este reprezentat de comenzile aflate îin pagini separate, tip externe. Cea mai mare importanță (suprascrie orice alt parametru) o are sintaxa de nivelul 1, iar cea mai mica importanță o are cea de nivelul 3. Folosirea unui fișier extern sau nivel 3 care să conțină comenzi CSS este foarte practic deoarece poate fi utilizat în mai multe situații (mai multe fișiere HTML pot folosi același fisier extern CSS) eliminând timpul necesar introducerii codului corespunzător în fiecare pagina și totodată editarea lor într-un singur loc pentru mai multe fișiere[1]. Extensia acestor fișiere este .css. Legătura paginilor HTML cu fișierele extene CSS se face prin introducerea următoarei linii: <link rel="stylesheet" type="text/css" href="fisier_css.css"> . Atributele indica urmatoarele:rel – fișierul este tip stylesheet, type – tip text ce conține comenzi CSS, href – fișierul sau adresa fisierului CSS. Comenzile de nivel 2 sau embedded sunt cele găzduite oriunde între perechea de etichete <head> și </head> conform sintaxei:
<style type="text/css">
<!–
… comenzi CSS …
–>
</style>
Unde style -specifică unde începe și unde se termină blocul CSS, iar type este folosit pentru a ascunde de browser-ele vechi, care nu cunosc sintaxa CSS, conținutul blocului style. Comenzile CSS de nivel 1 sau inline sunt cele mai folosite, ele suprascriind orice alte comenzi CSS. Sunt amplasate în interiorul etichetelor HTML aflate în zona BODY și au sintaxa:
<eticheta style="codul CSS dorit">
…textul sau obiectul asupra caruia este aplicat codul CSS…
</eticheta>
Elementele id si class
id și class sunt comenzi care dau unei formatãri CSS un nume. Se folosesc atunci când se dorește aplicarea unui style de formatare unei anume zone. Pentru compatibilitate cu versiunile anterioare de browsere numele asociate zonelor nu vor conține caracterul _. Elementul id se aplică unui style de format o singură dată sau la o singură etichetă HTML, plasându-se un nume acelui style. Acest element necesită existența comezilor CSS în zona HEAD sau într-un fișier extern. Elementul class este similar cu id, dar spre deosebire de acesta poate fi folosit de mai multe ori sau pentru zone mai mari. Ca și la id necesită existența comezilor CSS în zona HEAD sau într-un fișier extern[1].
Stiluri pentru fonturi
Aceste elemente specifică argumentul fontului care se asociază unui element HTML fiind incluse ori în zona HEAD ori în interiorul etichetei dorite. În cazul de față se remarcă asemănarea cu eticheta font din HTML care acceptă argumentele type, style, size și weight. Font-family
font-family este de fapt o listă de fonturi din care browserul va folosi în ordinea în care le recunoaște (primul folosit va fi primul din listă, dacă nu este recunoscut îl folosește pe al doilea și tot asa mai departe). Este recomandat ca ultima poziție din listă sa fie un font generic (de exemplu serif, sans-serif sau monospace). În situația în care numele fontului este format din două cuvinte se încadrează între ghilimele duble pentru ca browserul să le interpreteze împreună.
Font-size
Este parametrul prin care se stabilește dimesiunea fontului, exprimat în pixeli (px), puncte (pt), keywords sau procente. Are o funcționare asemănătoare cu eticheta <font>.
Font-style
font-style este folosit pentru a adăuga caracteristica italică fontului. Poate lua valorile normal și italic.
Font-weight
font-weight este paramerul care stabilește grosimea caracterului putând lua valorile numerice de la 100 la 900 sau BOLD, BOLDER, LIGHTER.
Compunerea stilurilor
Stilurile prezentate anterior pot fi folosite simultan în interiorul aceeași etichete fiind despărțite de caracterul ; (punct și virgulă).
Stiluri pentru text
Aliniere
text-align pozitionează pe orizontală obiecte (de exemplu text sau imagini) și admite valorile left, right și center ca și eticheta align din HTML.
vertical-align este folosit pentru alinierea pe verticală a obiectelor dintr-un tabel și poate lua valorile: top, middle și bottom.
float este folosit pentru alinierea textului cu imaginile și poate avea valorile: left și right. În funcție de valoarea aleasă imaginea va fi aliniată în partea opusă a paginii.
Tabulare
text-indent este folosit pentru alinierea textului în interior având valori exprimate în inch (in), centimetri (cm) sau pixeli (px).
Decorare
text-decoration adaugă sublinierea sau tăierea blocului text asociat și poate avea valorile underline, line-through sau none.
Culoare
color definește culoarea textului dintr-o zonă sau întreaga pagină.
Stiluri pentru legături
În HTML culoarea legăturilor poate fi stabilită prin atributele LINK, ALINK și VLINK declarate în interiorul etichetei BODY. Același lucru și chiar mai mult poate fi realizat folosind sintaxa CSS: a definește stilul general pentru legătură, a:link definește stilul legăturii nevizitate, a:visited definește stilul legăturii vizitate, a:active definește stilul legăturii active (nu prea se folosește), a:hover definește stilul când mouse-ul este deasupra legăturii[1].
Stiluri pentru background
Background culoare sau imagine poate fi definită pentru întreaga pagină, o celulă a tabelului sau pentru text.
Culoare de fond: background-color definește culoarea de fond și poate fi asociat oricărei etichete HTML.
Imagine de fond: imaginile pot fi folosite ca fundal în spatele întregii pagini, a unui obiect sau a textului. background-image asociază o imagine ca fundal unui obiect.
Repetare
Funcție de dimensiunile obiectului căruia ii sunt asociate imaginile de fond se repetă pe orizontală și verticală. Repetarea poate fi controlată prin parametrul background-repeat care poate lua valorile: repeat-x imaginea se repetă pe orizontală, repeat-y imaginea se repetă pe verticală, no-repeat imaginea nu se repetă.
Poziția
În mod normal imaginea de fundal începe din colțul stânga sus al obiectului asociat, dar acest lucru poate fi controlat prin comanda CSS background-position. Sunt acceptate două valori:
în prima poziție poate fi: top, center, bottom, percentage sau pixel, în a doua poziție poate fi: right, center, left, percentage sau pixel .
Stiluri pentru liste
list-style-type
Folosind eticheta ol din HTML se creează liste ordonate sau numerotate. Adăugând comenzi CSS în zona HEAD se pot adăuga pe lângă numere și cifre sau alte simboluri. Browserul Netscape nu permite asocierea comenzilor CSS decât pentru eticheta li.[1]
valoarea poate fi:
list-style-image
În afara simbolurilor de marcaj prestabilite cunoscute de browser pot fi folosite și imagini prin comanda CSS list-style-image. Imaginile sunt introduse prin adresa url().
2.3 Limbajul PHP
2.3.1 Ce este PHP ?
PHP este un limbaj de programare ce ruleaza server, proiectat special pentru WEB. Intr-o pagina HTML se poate îngloba cod PHP care va fi executat la fiecare vizitare a paginii. Codul PHP este interpretat pe serverul WEB și generează un cod HTML care va fi vãzut de uilizator (clientului (browserului) fiindu-i transmis numai cod interpretat ca și HTML)[5].
PHP a fost conceput în anul 1994 și a fost inițial munca unui singur om, Rasmus Lerdorf.
A fost adoptat de alți oameni talentați și a trecut prin trei rescrieri importante pentru a ajunge la produsul clar și matur de astăzi. În octombrie 2002, era în uz de mai mult de nouă milioane de domenii din lumea intreagă, iar acest număr este într-o continuă creștere. Numărul actual al acestora se poate vedea la adresa http://www.php.net/usage.php
PHP este un produs Open Source, cu acces la codul sursă. Se poate folosi, modifica și redistribui, toate acestea în mod gratuit.
Inițial, PHP era acronimul de la Personal Home Page, dar a fost modificat pentru a se alinia la conversia de numire recursiva GNU (GNU = Gnu`s Not Unix) și acum este acronimul pentru PHP Hypertext Preprocessor.
Versiunea actuala a PHP este 5.1 (RC 1)
Pagina de baza pentru PHP este: http://www.php.net
2.3.2 Ce este MySQL ?
Mysql este un sistem de gestiune a bazelor de date, foarte rapid și robust.
O bază de date permite sa stocarea, căutarea, sortarea și regăsirea datelelor în mod eficient.
Serverul MySQL controlează accesul la date pentru a garanta că mai mulți utilizatori pot lucra simultan cu acestea.
Deci, MySQL este un server multi-user (mai mulți utilizatori) și multi-thread (mai multe fire de execuție).
Utilizează SQL (Structured Query Language), limbajul standard de interogare a bazelor de date din întreaga lume.
MySQL este disponibil în mod public din 1996, dar istoria dezvoltării sale începe în 1979. A câștigat de mai multe ori Linux Journal Readers` Choice Award (Premiul cititorilor).
MySQL este disponibil sub o licență Open Source, dar dacă este nevoie sunt disponibile și licențe comerciale[5].
Versiunea actuală a MySQL este 5.0.11 (beta).
Pagina de bază pentru MySQL este: http://www.mysql.com
2.3.3 Crearea unui script PHP
Întotdeauna codul php este delimitat cu etichetele <? și respectiv ?> sau <?php și respectiv?>
Se creează o nouă pagină cu numele: primul_script.php, însă cu mare grijă ca nu cumva sa fie extensiile ascunse. S-a creat fișierul primul_script.php și pentru a-l accesa se deschide un browser (Internet Explorer sau Mozilla Firefox) și se tastează adresa: http://localhost/primul_script.php
După cum se observă, textul este afișat în pagină cu ajutorul constructiei echo, care este delimitată de ghilimelele magice ‘. Acestea pot fi și duble “ însă în nici un caz una simplă și cea de închidere dublă: ‘ și “ sau “ și ‘. Este bine de știut că în scriptul PHP puteți îngloba și HTML și anume:
<?php
echo 'Acesta este un script ce contine si <b>HTML</b> <br>
<a href="pagina_mea.php">Legatura catre pagina mea</a>';
?>
Se realizează un fișier cu numele php_cu_html.php, se pune codul înăuntru, și se salvează și se accesează în browser http://localhost/php_cu_html.php.
Trebuie să se știe că atunci când se greșește vreo sintaxă, PHP-ul va arată o eroare care va indica unde s-a greșit. Această eroare apare numai în cazul în care în php.ini (fișierul de configurare a php-ului) are setat display_errors = On și error_reporting = E_ALL.
Dacă se pune acest cod într-un fișier numit script_cu_eroare.php, se accesează scriptul: http://localhost/script_cu_eroare.php, se observă de ce este bine și recomandat să folosească un editor PHP cum este PHP Edit, deoarece linia de închidere nu mai este roșie, ci este albastră, fapt care indică faptul ceva nu este în regulă, și determină o mai mare atenție la liniile din preajma ei. În construcția echo se poate pune orice fel de text însă trebuie avut în vedere faptul că pot fi cazuri în care să existe conflicte cu ghilimelele magice și anume:
<?php
echo 'Conflict cu ghilimelele magice <br>
<a href='pagina_mea.php'>Legatura catre pagina mea</a>';
?>
Se pune codul într-un fișier conflict.php, se salvează și apoi se vizualizazează în browser accesând http://localhost/conflict.php . După cum se observă, eroarea sugerează ce este greșit în construcție, și anume se obesrvă că există conflict între gilimelele magice ‘ sau “ cu ghilimele normale din interiorul construcției echo. Ghilimelele din <a href=’pagina_mea.php’>Legatura catre pagina mea</a> fac conflict cu ghilimelele magice din delimitarea constucției echo: echo ‘’; În acest caz, există două posibilități de rezolvare a problemei și anume:
1) Se pot înlocui ghilimelele din interiorul legăturii a href cu ghilimele duble “ “ și asa se scapă de conflictul cu ghilimelele magice simple din PHP. (Ghilimelele standard din interiorul unui cod HTML sunt ghilimele duble “ însă se pot ivi cazuri în care să fie și ‘ însă asta mai rar).
<?php
echo 'Conflict cu ghilimelele magice <br>
<a href="pagina_mea.php">Legatura catre pagina mea</a>';
?>
2) Se pot anula folosind o linie inversă \ aplicată în fața ghilimelelor din interiorul legăturii a href (aceasta anulând practic acele ghilimele) și anume:
<?php
echo 'Conflict cu ghilimelele magice <br>
<a href=\'pagina_mea.php\'>Legatura catre pagina mea</a>';
?>
Aceste conflicte dintre ghilimelele simple magice și ghilimele simple din cod HTML sunt întâlnite mai rar în HTML însă mare atenție trebuie acordată atunci când se introduce în scripturi PHP un cod JavaScript deoarece aici se folosesc mai des ghilimele simple.
<?php
echo '<html>
<head><title>PHP cu JavaScript</title>
<script language="JavaScript">
function alertare () {
alert('Acesta este un test PHP ce contine JavaScript')
}
</script>
</head>
<body onLoad="alertare()">
<p>Un script PHP ce contine JavaScript</p>
</body>
</html>';
?>
Se pune codul într-un fișier php_cu_javascript.php, se salvează și apoi se vizualizazează în browser accesând http://localhost/php_cu_javascript.php. Se observă aceeași eroare ca cea surprinsă mai sus, iar după efectuarea modificărilor, și anume din linia alert('Acesta este un test PHP ce contine JavaScript') se schimbă în alert(\'Acesta este un test PHP ce contine JavaScript\') sau alert(“Acesta este un test PHP ce contine JavaScript”), iar după testarea în browser se observă faptul că eroarea a disparut, iar codul JavaScript a fost executat.
2.3.4 Variabile
O variabilă este o zonă de memorie căruia i se dă un nume pentru a putea fi recunoscută ulterior și pentru a se putea face referiri mai târziu la ea. Pentru a avea o variabilă trebuie ca acesteia să i se atribuie o valoare:
<?php
$autor = 'Anca Pavel';
echo 'Acesta proiect este realizat de '.$autor.' ';
?>
Se observă faptul că o variabilă este construită dintr-un $ care se pune în fața ei, un = și ghilimele magice ‘ ‘ sau “ “ în interiorul cărora se află valoarea variabilei și apoi construcția este închisă cu ; [5]
Această construcție poate să difere în funcție de ghilimelele magice ale construcției echo și anume:
1) Dacă construția echo este delimitată de ghilimele magice simple, adăugarea variabilei se face cu ‘..’ și anume ‘.$autor.’
2) Dacă construcția echo este delimitată de ghilimele magice duble, adăugarea variabilei se face cu “..” și anume “.$autor.”
Aceeași modalitate de adăugare o să se folosească și pentru $_SESSION , $_POST , $_GET și alte variabile predefinite. Într-o variabilă se poate avea mai multe variabile cu conținut diferit iar “lipirea” variabilelor se face cu .’ si respectiv ‘. și anume dacă sunt două variabile, acestea se vor astfel $variabila1.’ ‘.$variabila2
2.3.5 Constante
O constantă stochează o valoare, cum este și o variabilă, dar aceasta valoare, după ce a fost stabilită, nu mai poate fi modificată în script. Pentru a defini o constantă, se poate utiliza funcția define(); iar numele constantelor este scris cu MAJUSCULE, această opțiune nu este obligatorie, însă va face codul mai frumos și mai lizibil.
O diferență importantă între constante și variabile, este faptul că o constantă nu are în fața ei semnul $.
2.3.6 Variabile predefinite
$GLOBALS = pot fi accesate toate variabilele globale care sunt accesibile script-ului PHP curent
$_SERVER = conține o serie de variabile ale căror valori sunt setate de server-ul web; majoritatea valorilor variabilelor din acest vector depind de mediul de execuție al script-ului curent.[5]
$_GET și $_POST conțin variabile primite de script prin intermediul unor transferuri care folosesc metodele HTTP get, respectiv post. De exemplu, prin intermediul acestor vectori, pot fi accesate valorile câmpurilor dintr-un formular care a fost completat și transmis folosind una dintre cele două metode.
$_COOKIE conține valorile variabilelor care cuprind informații referitoare la cookie-urile păstrate pe calculatorul utilizatorului ce accesează pagina web.
$_FILES conține variabile primite de script prin intermediul încărcărilor de fișiere prin metoda post.
$_ENV conține variabile disponibile prin intermediul mediului în care este executat.
$_REQUEST conține variabile disponibile prin intermediul oricărui tip de mecanism cu ajutorul căruia utilizatorul poate introduce date.
$_SESSION conține variabile care corespund sesiunii curente a script-ului[5].
2.3.7 Tipuri de variabile
Tipul unei variabile se referă la genul de date care sunt introduse în ea.
Variabilele pot fi de mai multe tipuri, nu doar numere. PHP are opt tipuri de variabile. Patru dintre acestea sunt tipuri scalare (boolean, integer, float si string), două sunt tipuri compuse (array si object), iar alte două sunt tipuri speciale (resource și null). De asemenea, din motive de lizibilitate, au fost introduse trei pseudotipuri: mixed, number și callback. Mai există și tipul double, dar semnificația acestuia este aceeași cu cea a tipului float. Cele două denumiri coexistă doar din motive "istorice". În PHP, de obicei, tipul unei variabile nu este specificat de către programator, ci este stabilit în timpul execuției în funcție de contextul în care este folosită variabila[2].
Tipul boolean:
Variabilele de acest tip pot avea doar două valori: ADEVARAT sau FALS.
Aceste valori pot fi indicate prin cuvintele cheie TRUE sau FALSE (pentru ambele nu se face distincție între literele mari și literele mici). Există posibilitatea de a converti o variabilă de orice tip la tipul boolean. În momentul efectuării unei conversii, sunt convertite la valoarea FALSE următoarele valori: numărul întreg 0;numărul real 0.0; șirul vid; șirul "0"; un vector fără nici un element; un obiect fără nici o variabilă membru; o variabilă de tipul NULL; o variabilă nedefinită. Orice altă valoare este convertita la valoarea TRUE (inclusiv resursele). Acest tip se poate folosi de exemplu pentru verificarea logării într-o pagină de administrare. După ce se fac verificările, dacă utilizatorul este logat ca administrator, funcția noastră va returna o valoare de adevăr: TRUE dacă este logat sau FALSE dacă nu este, și astfel se știe se acordă sau nu acces în secțiunea de administrare.
Tipul integer:
O variabilă de tip integer reprezintă o valoare din mulțimea numerelor întregi.
Aceste numere pot fi specificate în baza 10, în baza 16 sau în baza 8, convențiile fiind aceleași ca și în limbajele C/C++ sau Java. Modul de reprezentare depinde de platforma utilizată; de obicei se folosește reprezentarea pe 32 de biți. Interpretorul PHP nu oferă suport pentru numerele întregi fără semn. Trebuie remarcat faptul ca în PHP nu există nici un operator pentru efectuarea de împărțiri întregi.
Și pentru numerele întregi există posibilitatea efectuării de conversii: valoarea logică TRUE este convertită la valoarea întreagă 1; valoarea logică FALSE este convertită la valoarea întreagă 0; un număr real este convertit prin "rotunjire înspre 0"; așadar, valoarea reală 2.5 va fi convertită la valoarea întreaga 2, în timp ce valoarea reală -2.5 va fi convertită la valoarea întreagă -2; un șir de caractere este convertit luând în considerare doar primele caractere care conțin informații numerice; așadar șirul "10" va fi convertit la valoarea întreagă 10; de asemenea șirul "10 ani" va fi convertit tot la valoarea 10; dacă primele caractere nu conțin informatii numerice, rezultatul conversiei va fi valoarea 0.
Tipul float:
O variabilă de tip float poate fi specificată folosind fie forma zecimală, fie cea științifică (cu exponent). La fel ca și în cazul tipului integer, precizia variabilelor de tipul float este dependentă de platforma utilizată. De obicei se folosește standardul IEEE 64. Există posibilitatea de a converti o variabilă de orice tip la tipul float. Pentru numerele reale se pot efectua următoarele conversii: un șir de caractere este convertit luând în considerare doar primele caractere care conțin informații numerice; așadar sirul "10.2" va fi convertit la valoarea reală 10.2; șirul "1.23E1 ani" va fi convertit la valoarea 12.3; în toate celelalte cazuri se realizează conversii la numere întregi care apoi sunt convertite la valorile reale corespunzătoare.
Tipul string:
O variabilă de tip string reprezintă un șir de caractere. Un caracter se reprezintă pe un octet, deci sunt 256 de caractere distincte. Acest lucru implică faptul că interpretorul PHP nu oferă suport nativ pentru setul de caractere Unicode. Lungimea variabilelor de tip string nu este limitată de către interpretor. Literalii de tip șir de caractere pot fi specificați în trei moduri diferite: prin folosirea ghilimelelor simple (exemplu $a='acesta este un sir de caractere'). Pentru a avea în cadrul șirului simbolul "`", atunci înaintea acestuia trebuie scris caracterul "\", iar pentru a putea specifica simbolul "\" acesta trebuie dublat; prin folosirea ghilimelelor duble. Folosind această notație, pot fi specificate mai multe caractere speciale, pe lângă caracterele de la varianta anterioară, printre care: sfârșit de linie ("\r"), rând nou ("\n"), tab orizontal ("\t"), semnul dolar ("\$"), ghilimelele duble ("\""), secvențe de caractere pentru specificarea faptului că o expresie regulară este în notație octală ("\[0-7]{1,3}") și secvențele de caractere pentru specificarea faptului că o expresie regulară este în notație hexazecimală ("\x[0-9A-Fa-f]{1,2}"). Cel mai important lucru este acela că, folosind acest mod de specificare a literalilor de acest tip, numerele de variabile care apar în interior vor fi transformate în valoarea lor. De exemplu, dacă $a este o variabila de tipul integer și are valoarea 2, atunci șirul de caractere "Variabila a are valoarea $a." va fi transformat în șirul "Variabila a are valoarea 2"; notația heredoc-acest tip de notație a fost introdus la versiunea 4 a interpretorului PHP ; pentru a specifica un șir de caractere folosind această notație, trebuie utilizat operatorul "<<<" urmat de un identificator ales de utilizator. Toate caracterele care se află între operatorul "<<<", urmat de un identificator pe o singură linie, și același identificator pe o altă linie, vor constitui valoarea șirului de caractere[2]. De exemplu, instrucțiunea: $str=<<<SF. Acesta este un exemplu de utilizare a sintaxei heredoc SF; va avea ca rezultat un șir de caractere format din trei linii de text. Pentru a accesa un anumit caracter din șirul de caractere, se folosește, după numele variabilei de tip string, indicile caracterului care trebuie accesat scris între acolade. De exemplu, $str{0} returnează primul caracter din sirul de caractere $str. În cazul în care se dorește concatenarea a două șiruri de caractere, se va folosi operatorul "." Folosirea operatorului "+" nu va concatena cele două șiruri. Există posibilitatea de a converti o variabilă de orice tip la tipul string. Pentru șirurile de caractere, se pot efectua urmatoarele conversii: valoarea logică TRUE va fi convertită la șirul "1", iar valoarea logică FALSE va fi convertită la șirul vid (""); un număr intreg va fi convertit la un șir de caractere care reprezintă valoarea numărului în baza 10; un număr real va fi convertit la un șir de caractere care reprezintă notația științifică a acestuia; obiectele sunt întotdeauna convertite la șirul "Object"; variabilele de tipul resource sunt convertite la șirul "Resource id #n", unde n reprezintă un număr unic atașat resursei respective de către interpretorul PHP; valoarea NULL este convertită la șirul vid ("").
Tipul array:
Vectorii în PHP sunt niște mulțimi formate din chei. Fiecărei chei din vector i se atașează o valoare. Acest tip de date este optimizat astfel încât să poată fi folosit în locul următoarelor structuri de date: liste, tabele de dispersie, dicționare, colecții, stive, cozi și altele. Datorită faptului că o valoare poate fi reprezentată de un alt vector, se pot simula foarte ușor arborii n-dimensionali sau tablourile n-dimensionale. Valoarea unei variabile de tip vector se poate specifica folosind construcția array (cheie => valoare, cheie => valoare,…) De exemplu, următoarea instrucțiune PHP va construi un vector cu două elemente, dintre care unul este de tip string, iar celălalt de tip boolean:
$a = array('ch' => 'string', 12 => TRUE);
Variabila $a reprezintă un vector, $a["ch"] are valoarea string, iar $a[12] are valoarea TRUE. În cazul în care nu se specifică o cheie pentru o valoare, atunci acea valoare va fi atașată unei chei care va fi cheia maximă de tip integer folosită anterior, la care se adaugă valoarea 1. Cheile pot avea și valori negative. Dacă nu există chei de tip integer, atunci valoarea va fi atașata cheii 0. De exemplu, următoarele două instrucțiuni sunt echivalente:
array(5 => 43, 32, 56, 'b' => 12);
array(5 => 43, 6 => 32, 7 => 56, 'b' => 12);
Dacă se folosește valoarea logică TRUE ca și cheie, atunci aceasta va fi convertită la cheia de tip întreg 1, iar valoarea FALSE va fi convertită la numărul întreg 0. Nu se pot folosi pentru chei variabile de tipul array sau object. O variabilă de tip array se poate modifica prin setarea explicită de valori. De exemplu instructiunea $a["x"] = 42; adaugă în vectorul $a valoarea 42 atașată cheii "x". Dacă se folosește un vector care nu a fost definit anterior, atunci acesta este creat automat. Așadar printr-o instrucțiune de forma $a[5] = 42, în cazul în care vectorul $a nu există, atunci se va crea un vector cu un singur element. Cheia acestuia va fi numărul întreg 5, iar valoarea sa va fi 42. De asemenea, există posibilitatea de a crea un element nou fără a-i preciza cheia. Sintaxa are forma $vector[] = valoare; această instrucțiune are ca efect adăugarea unui element a cărui cheie este un număr întreg mai mare cu 1 decât cel mai mare număr întreg care este cheie a unui alt element al vectorului. Dacă nu există nici o astfel de cheie, atunci noul element va avea cheia 0. De exemplu, următoarele două secvențe sunt echivalente:
$a[5] = 1; ………………………. $a[5] = 1;
$a[6] = 2; ………………………. $a[] = 2;
Prin conversia la un vector a unei variabile de tip scalar (boolean, integer, float, string) sau resource se creează un vector cu un singur element; cheia acestui element este numărul intreg 0, iar valoarea este cea a variabilei convertite. Dacă se convertește un obiect (variabilă de tip object), atunci vectorul rezultat va conține câte un element pentru fiecare variabilă membru a obiectului. Cheile elementelor vor fi date de denumirile proprietăților obiectului (variabilele membru ale obiectului), iar valorile elementelor vor fi valorile proprietăților obiectului. Dacă realizăm o conversie a unei variabile de tip NULL, atunci rezultatul va fi un vector vid (care nu conține nici un element)[5].
Tipul object:
Pentru a defini un obiect care poate fi folosit pentru afișarea mesajului “Salutare lume!”, se scrie următoarea secvență:
<?php
class Salutare {
function ArataSalutare() {
echo 'Salutare lume!';
}
}
$a = new Salutare;
echo $a -> ArataSalutare();
?>
Pentru a utiliza o variabilă de tip obiect, se realizează o instanțiere prin intermediul instrucțiunii new. Sintaxa este:
$a = new Salutare;
Astfel, variabila $a devine un obiect ale cărui metode pot fi utilizate. Pentru afișarea propriu-zisă a mesajului va trebui sa se execute metoda Displaysalutare() printr-o instrucțiune de tipul $a -> Displaysalutare(); Orice variabilă de un anumit tip poate fi convertită într-un obiect. Dacă variabila respectivă este un obiect, atunci ea nu va fi modificată. În caz contrar, efectul conversiei este crearea unei noi instanțe a clasei stdClass. Dacă variabila are tipul NULL, atunci noua instanță va fi vidă. În toate celelalte cazuri, instanța va conține o variabilă membru numită scalar a cărei valoare va fi cea a variabilei convertite. Pentru conversii vom folosi instrucțiuni de tipul $obiect = (object) "Salutare lume!". După realizarea conversiei, se va putea tipări mesajul “Salutare lume!” folosind instrucțiunea echo $obiect->scalar;
Tipul resource:
Variabilele de tip resource sunt folosite pentru păstrarea unor referințe către anumite resurse externe cum ar fi conexiuni la baze de date, fisiere, etc. Resursele sunt create și utilizate de anumite funcții speciale. Datorită specificului acestui tip de date, valoarea nici unei variabile de alt tip nu poate fi convertită la tipul resource[5].
Tipul NULL:
Valoarea specială NULL este atribuiă oricărei variabile care nu a fost inițializată. Această valoare este singura pe care o pot avea variabilele de tip NULL. Se consideră că o variabilă are tipul NULL dacă: i s-a atribuit constanta NULL; nu a fost inițializată; a fost dezinițializată (prin intermediul funcției unset () ).
2.3.7 Șiruri și caractere speciale
Spre deosebire de întregi și de numere duble, care conțin cu precădere cifre, șirurile pot conține orice caracter. Ca atare, șirurile sunt utile pentru stocarea datelor care nu pot fi calculate, precum nume și adrese. De asemenea, șirurile pot fi utilizate pentru stocarea datelor numerice. Pentru a specifica un șir în PHP, caracterele care alcătuiesc șirul sunt incluse NUMAI între ghilimele duble “ și “.
PHP facilitează includerea în șiruri a unor caractere speciale, precum caracterele de salt la linie nouă: \n – salt la linie nouă ; \r – retur de car ;\t – caracter de tabulare pe orizontală ;\\ – backslash ;\$ – simbolul dolarului; \" – ghilimele duble.
Există apoi o multitudine de funcții care se aplică stringurilor.
Multe din aceste funcții au variante pentru stringuri case-sensitive sau nu (diferența între litere mici/mari sau nu). Exemplu: str_ireplace() similar cu str_replace doar ca e case-insensitive, stripos() este case insensitive strpos(), stristr() case-insensitive strstr(), s.a.m.d[5].
2.3.8 Clase si obiecte
Ce este o clasă ?
O clasă este o colecție de variabile și funcții care operează asupra variabilelor respective. Sintaxa folosită pentru declararea unei clase în PHP este:
<?php
class nume_clasa {
// date membre
var nume_variabila_1
// …
var nume_variabila_m*
// metode
function nume_functie_1 (parametri) {
// definitia functiei
}
// …
function nume_functie_n (parametri) {
// definirea functiei
}
}
?>
Pentru numele unei clase poate fi utilizat orice identificator permis în PHP cu o singură excepție: sdtclass. Acest identificator este folosit de PHP în scopuri interne. În PHP funcțiile ale cãror identificatori încep cu '_' sunt considerate funcții magice și utilizarea acestora nu este recomandată. În PHP, datele membre nu pot fi inițializate decât cu valori constante. Pentru a inițializa variabilele cu valori care nu sunt constante trebuie folosit un constructor.
Obiectele
În PHP clasele sunt considerate a fi tipuri de date; ele pot fi privite ca fiind "amprentele" variabilelor propriu-zise[5]. Pentru a crea o variabilă al carei tip este o clasă, trebuie utilizat operatorul new.
Extinderea claselor
Deseori este necesară definirea unor clase cu proprietăți (date membre) și metode asemănătoare. Pentru a ușura definirea unor astfel de clase, a fost introdus conceptul de extindere (derivare) a claselor. O clasă derivată va pãstra toate proprietățile și metodele clasei pe care o extinde și poate conține diferite proprietăți și metode noi. Nu există nici o posibilitate de a elimina din clasa derivată anumite proprietăți sau metode ale clasei de bază. O anumită clasă poate avea o singură clasă parinte; așadar, în PHP nu este permisă moștenirea multiplă. Pentru a extinde o anumită clasă se utilizează cuvântul cheie extends. În PHP clasele trebuie definite înaintea utilizării lor; așadar clasa părinte va fi definită intotdeauna înaintea clasei fiu. Relația dintr-o clasî derivată și clasa pe care o extinde poartă denumirea de relație părinte-fiu.
Constructori
Un constructor este o metodă (funcție) a unei clase care este apelată automat în momentul în care este creată, o nouă instanță a clasei (cu ajutorul operatorului new).
În PHP, considerată ca fiind un constructor, orice funcție care are același nume cu clasa în interiorul căreia este definită. Constructorii pot fi folosiți pentru inițializarea datelor membre cu valori care nu sunt constante. Ei pot avea argumente, iar acestea pot fi opționale. Pentru a putea utiliza clasa fără a specifica nici un parametru în momentul creării unui obiect, se recomandă stabilirea unor valori implicite pentru toate argumentele constructorului. În cazul în care nu este definit un constructor pentru o anumită clasă, se utilizează constructorul clasei de bază, dacă aceasta există.
În PHP apelul constructorului clasei de bază, trebuie să fie explicit dacă este necesară executarea operațiilor corespunzătoare. În majoritatea limbajelor de programare exista funcții speciale numite destructori care sunt apelate automat în momentul "distrugerii" unui obiect. În PHP nu există destructori.
Operatorul ::
Uneori este utilă folosirea unor metode sau variabile ale clasei de bază sau ale unei clase care nu a fost instanțiată încă. În acest scop, a fost introdus operatorul ::.
Putem avea funcții ale claselor, dar nu putem avea variabile ale claselor. De fapt, în momentul unui astfel de apel, nu se creează nici un obiect care este instanță a clasei respective. Ca urmare, o funcție a unei clase nu poate opera asupra unor proprietăți ale clasei, dar poate utiliza variabile locale sau globale. În plus, o astfel de funcție nu poate utiliza pseudo-variabila $this.
Referința $this
În cadrul unei metode a unui obiect, $this este întotdeauna o referință spre obiectul care utilizează funcția (obiectul curent).
2.3.9 Luarea deciziilor prin structuri conditionale
Instructiunea IF
Această instrucțiune trebuie să dețină o condiție pe care să o folosească, iar dacă acea condiție este adevãrată, va fi executat blocul de cod de după ea. Condițiile din instrucțiunea if trebuie să fie trecute între paranteze rotunde ( ).
Instructiunea ELSE
De multe ori, pe lângă decizia de a executa o acțiune, atunci când condiția este adevărată, dar se dorește o altă acțiune în caz contrar (în cazul în care condiția nu este adevărată) să returneze un alt bloc de cod.
Instructiunea ELSEIF
Această instrucțiune este o combinație dintre instrucțiunea if și cea else.
Aceasta poate verifica fiecare condiție până în momentul în care una dintre condițiile găsite returnează o valoare adevărata.
Instructiunea SWITCH
Această instrucțiune funcționează asemănător cu cea if, însă permite condițiilor să aibe mai mult de 2 valori. Într-o instrucțiune if, condiția poate fi adevărată sau falsă, însă într-o instrucțiune switch condiția poate lua orice număr de valori diferite.
Aceasta instrucțiune trebuie să conțină o instrucțiune case care să manevreze fiecare valoare.
Bucla WHILE
Cel mai simplu tip de buclă PHP este while. Asemenea instrucțiunii if, ea se bazează pe o acțiune. Diferența dintre if și while este aceea că instrucțiunea if, dacă găsește adevărată condiția, afișează o singură dată bucata de cod din ea, însă în condiția while, dacă rezultatul este adevărat, bucata de cod din ea se va repeta atâta timp cât condiția este adevărată.
Structura FOR
O alternativă cu o funcționalitate mai ridicată pentru utilizarea buclelor este structura repetitivă for. Sintaxa este foarte asemănătoare cu cea din limbajele C/C++ și Java și anume:
for(expresie1; conditie; expresie2) {
//instructiune
}
Prima expresie este evaluată o singură dată, înainte de începerea execuției ciclului. Expresia condiție este testată înaintea fiecărei repetări a buclei. Dacă expresia returnează fals, repetarea se oprește. Expresia 2 este executată la sfârșitul fiecărei repetări.
Instrucțiunea se execută la fiecare repetare a buclei.
Oricare dintre cele trei expresii poate lipsi; în cazul în care o expresie lipsește, se consideră că ea are valoarea true. Bucla WHILE și FOR sunt identice din puct de vedere funcțional însă bucla FOR este puțin mai complexă.
Structura FOREACH
Aceasta structură poate fi folosită pentru a realiza o repetare printre toate elementele unui vector. Așadar, ea nu poate fi folosită decât împreună cu vectorii; utilizarea sa asupra unei variabile de alt tip duce la apariția de erori.
Exista două sintaxe acceptate pentru aceasta structura și anume:
foreach(expresie_vectoriala as $valoare) {
//instructiune
}
foreach(expresie_vectoriala as $cheie => $valoare) {
//instructiune
}
Dacă se utilizează prima variantă, atunci la fiecare iterație valoarea elementului curent este atribuită variabilei $valoare, și apoi se trece la elementul următor (a cărui valoare va fi atribuită variabilei la următoarea iterație).
Execuția ciclului se încheie în momentul în care nu mai există alte elemente în vector. Singura diferenta care apare în cazul utilizării celei de-a doua variante este faptul că la fiecare iterație valoarea cheii elementului curent este atribuită variabilei $cheie.
Instructiunea BREACK
Această instrucțiune poate fi folosită pentru a intrerupe forțat execuția unui ciclu sau a secvenței de instrucțiuni corespunzătoare unei structuri switch.
Instrucțiunea poate fi urmată de un argument care indică numărul de structuri imbricate a căror execuție se încheie. Valoarea implicită este 1, deci se întrerupe execuția unei singure structuri. Următoarea secvență de cod PHP realizează parcurgerea elementelor unui vector de numere întregi, până în momentul în care se întâlnește un număr negativ.
foreach ($a as $v)
if($v < 0)
break;
Un alt exemplu este cazul, în care este întreruptă execuția mai multor cicluri; se consideră parcuregerea elementelor unei matrici pătratice cu n elemente și n coloane până în momentul în care se întâlnește o valoare nulă.
for($i = 0; $i < $n; $i++)
for($j = 0; $j < $n; $j++)
if(!$a[$i][$j])
break 2;
Instrucțiunea break poate fi utilizată pentru întreruperea execuției secvențelor de instrucțiuni corespunzătoare structurilor for, foreach, while, do – while și switch.
Instructiunea CONTINUE
Această instrucțiune este folosită pentru a întrerupe execuția secvenței de instrucțiuni din interiorul unui ciclu și trecerea la următoarea iterație.
În cazul instrucțiunii for, înainte de următoarea iterație se evaluează (execută) expresia de incrementare (expresia #3 din sintaxa generală). La fel ca și în cazul instrucțiunii break, poate apărea un argument care indică numărul structurilor imbricate asupra cărora are efect.
Alte structuri PHP
Există mai multe alte structuri PHP care pot fi utilizate în anumite scopuri.
Structurile include, require, include_once și require_once pot fi utilizate pentru a "insera" anumite instrucțiuni care sunt păstrate într-un alt fișier (document). Interpretorul PHP consideră că secvența din fisierul inserat se află în fișierul din care s-a "comandat" inserarea în poziția în care apare structura de inserare.
O alta structură este declare care permite crearea unor directive în execuție.
Funcțiile PHP trebuie sa utilizeze instrucțiunea return pentru a furniza un rezultat.
2.3.10 Formulare
Un formular este delimitat de elementul FORM care conține alte câteva elemente numite “controale”, care au o varietate de metode de a aduna informații. Fiecare element din formular are un nume cât și o valoare, astfel încât datele transferate pentru procesare să fie sub forma unor perechi nume/valoare.
Elementul FORM
<form [action=url] [method=get/post] [enctype=MIMEType] [onsubmit=script] [onreset=script] [acceptcharset=set_caractere] [core] [international] [events]>
Elementele formularului
</form>
Elementul INPUT
<input [type=text|password|checkbox|radio|submit|image|reset|button|hidden|file] [name=nume] [value=valoare] [checked] [disabled] [readonly] [size=latime] [maxlength=cuvinte_maxime] [src=url] [alt=altText] [usemap=url] [align=left|center|right|justify] [tabindex=numar] [accesskey=keyCombo] [onfocus=script] [onblur=script] [onselect=script] [onchange=script] [accept=set_caractere] [core] [international] [events]>
Acest element input este cel mai important în utilizarea formularelor.
Explicarea valorilor Type ale elementului INPUT
button Butoane personale Exemplu: <input type=”submit” name=”Buton” value=”Buton”>
checkbox Casete de validare Exemplu: <input type=”checkbox” name=”nume” value=”valoare”>
file Fișiere incluse Exemplu: <input type=”file” name=”nume” value=”valoare”>
hidden Elemente ascunse Exemplu: <input type=”hidden” name=”nume” value=”valoare”>
image Imagini Exemplu: <input type=”image” name=”Buton” src=”poza_buton.gif”>
password Casete de introducere a parolei <input type=”password” name=”nume” value=”valoare”>
radio Butoane radio Exemplu: <input type=”radio” name=”nume” value=”valoare”>
reset Buton reset Exemplu: <input type=”reset” name=”Reseteaza” value=”Reseteaza”>
submit Buton trimite Exemplu: <input type=”button” name=”Trimite” value=”Trimite”>
text Caseta text Exemplu: <input type=”text” name=”nume” value=”valoare”>
Elementul SELECT
Acest element este folosit pentru crearea unei liste de opțiuni, fie ca un meniu care se desfașoara, fie ca o casetă cu listă. Fiecare din opțiunile din listă reprezintă un element OPTION.
<select [name=nume] [size=latime] [multiple] [disabled] [tabindex=numar] [onfocus=script] [onblur=script] [onchange=script] [core] [international] [events]>
Elementele din select
</select>
<option [selected] [disabled] [value=valoare] [core] [international] [events]>Nume</option>
Exemplu select:
<select name=”test”>
<option value=”optiune 1”>Optiune 1</option>
<option value=”optiune 2”>Optiune 2</option>
<option value=”optiune 3”>Optiune 3</option>
<option value=”optiune 4”>Optiune 4</option>
</select>
<select name=”test” multiple size=”3”>
<option value=”optiune 1”>Optiune 1</option>
<option value=”optiune 2”>Optiune 2</option>
<option value=”optiune 3”>Optiune 3</option>
<option value=”optiune 4”>Optiune 4</option>
<option value=”optiune 5”>Optiune 5</option>
<option value=”optiune 6”>Optiune 6</option>
</select>
Prelucrarea datelor din formular
În interiorul etichetei <form> este elementul action și method (care poate fi POST sau GET). În elementul action se pune calea către scriptul PHP care prelucrează datele, iar în method se pune metoda prin care se vor prelucra datele atunci când butonul “Trimite” este apăsat.
POST
Această metoda face ca datele trimise prin formular să nu fie vizibile utilizatorului, sa fie trimise în spatele paginii web.
GET
Prin această metoda, datele trimise prin formular sunt vizibile în URL (URL este adresa ce este afișata în browser)
2.3.11 Funcții
Următorul pas în lucrul cu PHP sunt funcțiile. Până acum am dat exemplu de multe functii implementate de limbaj. Însă deseori sunt folosite funcții create de programator care primesc sau nu diverși parametri, fac niște operațiuni și returnează sau nu un rezultat.
O funcșie are un nume, poate avea sau nu parametri și poate întoarce sau nu un rezultat. Poate arăta așa:
function foo ($arg_1, $arg_2, /* …, */ $arg_n)
{
echo "Exemplu de functie.\n";
return $retval;
}
Unde:
– foo este numele funcției;
– $arg_1, $arg_2, …, $arg_n sunt parametri;
– $retval este valoarea returnată
Apoi se poate folosi ca foo(1,2,3);
Dacă funcția pur și simplu nu are parametri se scrie function foo() { … } Dacă nu returnează nimic se șterge linia cu ‘return’. Așa ca în final funcție minimală poate fi:
function foo ()
{
echo "Exemplu de functie.\n";
}
La apelul ei cu foo() va afișa stringul din echo și se va termina. Un alt exemplu:
function foo($n) {
echo $n;
$n=10;
}
$i=5;
foo($i);
echo " – ".$i;
Aceasta va afișa: 5 – 5. Pașii care se execută sunt următorii: se declară variabila $i inițializată cu 5 care este folosită în apelul funcției. Parametrul $n va primi valoarea lui $i care este afișat, după care se modifică (=10). Apoi funcția se termină și controlul e dat codului apelant unde e afișată valoarea veche a lui $i. După cum se vede, valoarea schimbată în funcție nu s-a transferat în afara funcției. În acest caz se spune că transmiterea parametrilor funcției s-a facut prin valoare, modul standard de transmitere în PHP[2]. Există însa și o altă soluție: transmiterea prin referință când valoarea schimbată în corpul funcției este transmis în codul apelant.
function foo(&$n) {
echo $n;
$n=10;
}
$i=5;
foo($i);
echo " – ".$i;
Va afișa: 5 – 10. Singura schimbare este “&” adăugat înaintea parametrului $n care specifică transferul prin referința a parametrilor. Un alt lucru posibil pentru parametrii funcției este inițializarea lor la declararea funcției:
function foo($n=5) {
echo $n;
}
foo();
Asta va afișa: 5 chiar dacă funcția este apelată fără parametri curenți. Singura restricție atunci când există parametri de funcție initalizați este ca aceștia trebuie să fie grupați ca ultimii parametri dați, nu la începutul listei de parametri.
De exemplu:
function foo($n=5, $m) { … }
nu este valid. Trebuie rescris ca:
function foo($m, $n=5) { … }
De exemplu:
function foo($m,$n=5) {
echo $m+$n;
}
foo(3);
echo " – ";
foo(3,6);
Va afișa: 8 – 9. Prima dată este inițializat doar $m cu valoarea 3, iar $n va avea valoarea default (=5). Apoi se va apela cu valoarea 3 pentru $m și 6 pentru $n. Valoarea returnată de o funcție este dată cu ‘return’:
function foo($n) { return $n+1; }
2.3.12 Lucruri mai avansate cu PHP
A. Sesiuni
Există variabila predefinită $_SESSION care se ocupă de sesiuni. Însa ce sunt sesiunile? De obicei paginile web sunt ‘stateless’, adică fiecare cerere este tratată ca o cerere noup fără să se știe de cererile anterioare. În acest fel ar fi greu de accesat un site după o identificare prealabila cu un nume de utilizator și parolă pentru că valorile introduse s-ar pierde. Pentru evitarea acestor probleme serverele web au modalități de a ține minte vizitele ulterioare ale altor pagini, totul fiind tratat ca o singură sesiune de lucru[2]. Aceste sesiuni pot fi identificate (să ai acces abia după logare) și trebuie să poată menține diverse variabile pe toată durata lor (exemplu: nume de utilizator, un id, parole ,etc.). Aceste valori sunt ținute $_SESSION și sunt păstrate pe toată durata vizitei unui site, chiar dacă se încarcă pagini diferite. Modalitatea tehnică de menținere a sesiunilor se face prin cookie sau parametri ascunși sau vizibili în adresa paginii cu un id unic, pasat înainte și înapoi la fiecare cerere .Atât timp cât id-ul e același e vorba de aceeași sesiune. Acest identificator este păstrat pe server și expiră după un anumit timp. Este generat aleator astfel încât să nu poata fi ghicit și se folosesc și al alte limbaje server-side (ASP), nu doar PHP. O sesiune trebuie deschisă, se poate închide și există alte funcții de manipulare a lor:
– session_start() – inițializează o sesiune
– session_register() – înregistrează un nume de variabilă ca facând parte din sesiune
– session_unregister() – dez-înregistrează un nume de variabilă dintr-o sesiune
– session_unset() – eliberează toate datele ținute în sesiune
Un exemplu concret de folosire a sesiunilor și _$SESSION:
<?php
// testsession1.php
session_start();
echo 'Pagina #1';
$_SESSION['time'] = time();
echo '<br /><a href="testsession2.php?' . SID . '">pagina 2
cu sesiune</a>';
?>
Apoi urmatoarea pagina testsession2.php:
<?php
// testsession2.php
session_start();
echo 'Pagina #2<br />Tipul actual: '.date('Y m d H:i:s').'<br />Timpul initial (din sesiune): '.
date('Y m d H:i:s', $_SESSION['time']);
?>
Se poate reîncărca de câteva ori testsession2.php (F5) și se poate vedea că timpul inițial rămâne același, fiind cel pastrat în variabila sesiune. SID este un identificator de lucru pentru sesiuni care adaugă automat identificatorul sesiunii dacă este necesar. În acest caz se putea renunța la el. PHP determină în mod inteligent cum se face păstrarea sesiunii cu identificatorul unic de pasat în fiecare pagină. De cele mai mutle ori nu trebuie făcut nimic pentru că o sa fie administrat automat. Un lucru de recomandat pentru sesiuni este să se țină cât mai puține informații în sesiune. De multe ori este sufiecient un identificator. Toate informațiile sunt păstrate pe server, iar pentru un site cu mii de vizitatori poate ocupa suficientă memorie. De multe ori se văd link-uri gen: pagina.php?PHPSESSID=46207c992915148c965f877f430336f5. În aceste cazuri PHPSESID nu este altceva decât identificatorul sesiunii. Este posibil ca numele parametrului să fie schimbat.
B. Redirectări
De multe ori este necesară redirectarea de la o pagină la alta, în funcție de unele condiții. Pentru diverse există diverse soluții: se poate face redirectarea direct de pe server sau folosind browserul client. Cea mai directă cale este folosind funcția header(). Aceasta trimite parametri în antetul paginii HTML trimisă în browser cu specificarea încărcării altei pagini: header(“Location: pagina_noua.php”);
header(“Location: http://alt_server.com/pagina_noua.php”);
Există situații când se obține eroare la acestă redirectare pentru că este permisă doar în partea de început a paginii, înainte sa fie trimis corpul răspunsului care browser (doar în antetul răspunsului). Trebuie folosită la începutul paginii, nu în mijlocul ei. O altă metodă de redirectare poate fi făcută folosing browserul client:
echo ‘<META HTTP-EQUIV=Refresh CONTENT="0;
URL=http://www.server.com/pagina.php">’
Aceasta va reîncărca pagina dată după numărul de secunde dat (0 în acest caz), automat, fără intervenția userului. Sau se poate folosi JavaScript:
echo “<script language=JavaScript>
document.location.href=’pagina_noua.php’;
</script>\n”;
Metoda folosind header() este utilă când totul se vrea să se facă transparent pentru vizitator, fără ca acesta să-și dea seama că a fost redirectată către altă pagină[2]. Metodele cu META Refresh sau JavaScript pot fi utile când se dorește afișarea unui mesaj scurt de redirectare, gen ‘asteptați puțin până se reincarcă pagina’. Încărcarea noii pagini poate dura câteva secunde timp cât va fi vizibil textul inițial.
2.5 MySQL
Deseori, pentru păstrarea și apoi regăsirea informațiilor se folosesc baze de date. MySQL este un server de baze de date simplu și eficient, care lucrează foarte bine cu PHP. Foarte multe site-uri au în spate combinația PHP + MySQL[4]. De cele mai multe ori MySQL este gestionat chiar din browser cu ajutorul phpMyAdmin un script PHP pentru administrarea MySQL. Dar există și alte soluții sau chiar operațiuni din linia de comandă pe server. Se pot crea baze de date, care au tabele cu câmpuri, și eventual indecși. SQL este un limbaj simplu de interogare, modificare sau ștergere a datelor, dar și de manipulare a structurii bazei de date. Exemple simple:
SELECT * FROM Tabela -Selectează tot conținutul tabelei Tabela
INSERT INTO Tabela(cimp1,cimp2) VALUES(1,’string’) -Inserează o nouă înregistrare în tabelă
UPDATE Tabela SET counter=counter+1 WHERE id=1 -Incrementează câmpul counter pentru id=1
DELETE FROM Tabela WHERE Nume LIKE ‘A%’ -șterge înregistrările pentru care câmpul Nume începe cu ‘A’
Pentru crearea sau modificarea structurii datelor se poate scrie:
CREATE TABLE users (
id int(11) NOT NULL auto_increment,
Nume varchar(30) default NULL,
DataInregistrarii date,
PRIMARY KEY (id)
)
ALTER TABLE users ADD Email varchar(50);-adaugă un câmp nou la o tabelă existentă
ALTER TABLE users DROP DataInregistrarii; – șterge un câmp existent
CREATE INDEX IDX_Nume ON users(Nume); -crează un index.
DROP TABLE users;-șterge tabela users
Tipurile de date disponibile în MySQL, cele mai frecvent folosite sunt:
– int – valoare intreagă (32 biti)
– tinyint – valoare întreagă mică (16 biti)
– varchar() – string cu lungime maximă dată
– text – string de orice lungime, de obicei pentru texte mari
– float – valoare cu zecimale
– date – data calendaristică
Toate acestea se pot executa și cu ajutorul comenzilor PHP, care are funcții speciale pentru lucrul cu MySQL[4]. Pașii care se execută deseori sunt: conectarea la baza de date folosind un user name și parolă, deschiderea unei baze de date (pot fi mai multe), interogarea SQL, eliberarea elementelor extrase din tabele, închiderea conexiunii:
<?php
/* Conectarea si selectarea bazei de date */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password") or die("Conectarea a esuat : " . mysql_error());
echo "Conectare cu succes";
mysql_select_db("my_database") or die("Nu se poate selecta baza de date");
/* Executa comanda SQL */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Interogare esuata : " . mysql_error());
echo “Au fost returnate “.
mysql_num_rows($result).” inregistrari\n”;
/* Executa prelucrarea – aici afiseaza ca o tabela HTML */
echo "<table>\n";
while ($line = mysql_fetch_assoc($result)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
/* Elibereaza inregistrarile */
mysql_free_result($result);
/* Inchide conexiunea */
mysql_close($link);
?>
Pentru acest caz se înlocuiesc parametrii care reprezintă numele serverului (de obicei “localhost”), numele și parola de acces, iar apoi numele bazei de date. Dacă se returnează erorare la una din funcțiile de mai sus se afișează eroarea și se oprește execuția cu die(). Eroarea se obține cu mysql_error().
Dupa cum se poate vedea funcțiile folosite sunt:
– mysql_connect() – conectarea la baza de date
– mysql_select_db() – selectează o bază de date din mai multe posibile
– mysql_query() – execută o comandă SQL
– mysql_num_rows() – obține numărul înregistrărilor returnate
– mysql_fetch_assoc() sau mysql_fetch_array() – returnează o linie ca șir asociativ (cu cheii de tip string) sau șir normal (indici numerici)
– mysql_free_result() – eliberează înregistrările returnate
– mysql_close() – închide conexiunea
Pentru a obține valoarea unui câmp doar se poate scrie:
$line = mysql_fetch_assoc($result);
echo $line[‘nume_cimp1’];
sau
$line = mysql_fetch_array($result);
echo $line[0];
Se poate lucra cu conexiuni permanente folosind mysql_pconnect(). Aceasta e asemănătoare cu mysql_connect doar ca întâi se verifică dacă nu cumva există o conexiune deja deschisă nefolosită, iar la final conexiunea nu este închisă, ci este pastrată pentru alte posibile conexiuni ulterioare. Numărul conexiunilor este totuși limitat și asta poate îngreuna accesul la baza de date. În special pentru site-urile cu trafic mai mare e bine de făcut teste care din acestea lucrează mai bine[4].
Alte funcții utile care pot fi folosite destul de des:
– mysql_result() – returnează valoarea unui câmp pe baza unei linii sau linii + coloane
– mysql_fetch_object() – returnează o linie ca obiect. Exemplu de folosire:
$row = mysql_fetch_object($result);
echo $row->nume_camp;
– mysql_fetch_row() – obține o linie ca un șir
– mysql_unbuffered_query() — execută mai rapid comenzi SQL atunci când acestea nu returnează înregistrări (UPDATE, DELETE, INSERT INTO, etc.)
Capitolul 3 Documentația tehnică a aplicației
3.1 Arhitectura programului
În cadrul acestui capitol se detaliză modul în care aplicația interacționează cu utilizatorii, respectiv sistemele cu care programul intră în contact și modul în care sunt relaționate tabelele bazei de date.
Aplicația are rolul de a facilita și informatiza înscrierea în cadrul învațământului superior și postuniversitar. În acest scop aplicația implementată vine în sprijinul organizatorilor atât ca modalitate de înscriere, de stocare a datelor candidaților, cât și ca distribuție a acestora pe opțiunile alese și respectiv câștigate pe baza concursului de admitere, care poate fi pe bază de dosar sau prin verificare a cunoștințelor.
Utilizatorii programului pot fi candidații, membrii comisiei concursului și respectiv administratorul care gestionează datele introduse de primele două categorii de utilizatori. În acest scop fiecare utilizator poate accesa programul prin intermediul unui user și a unei parole, ulterior acestei acțiuni deschizâdu-se practic ușa aplicațiilor ce pot fi executate de fiecare dintre utilizatori. Interfața este simplă, ușor de utilizat, existând posibiliatatea de a vizualiza, modifica, șterge sau salva datele prelucrate la fiecare moment de timp.
Modul de stocare a informațiilor se realizează într-o bază de date, cu tabele interrelaționate, create astfel încât duplicarea informației este inexistentă. Baza de date denumită ‘licenta’ are în structura sa 25 de tabele (Error: Reference source not found) cu care aplicația interacționează pe parcursul desfășurării sale. Modul de realizare și desfășurarea acestora vor fi detaliate în cadrul unui subcapitol al lucrării de față.
Figura 3-1
Figura 1
3.2 Arhitectura aplicației. Schema-bloc a sistemului. Scurtă descriere a aplicației
Paragraful este destinat prezentării schemei bloc pe baza căruia este conceput și rulează programul.
Figura 3-2 Schema bloc a programului
Aplicația deține trei categorii de utilizatori: administrator, candidat și membrii comisiei. În continuare se va detalia pentru fiecare utilizator, modul în care acesta accesează aplicația.
a)Administratorul
Figura 3-3 Schema bloc funcțională pentru utilizatorul-administrator
Administratorul se loginează la program cu ajutorul unui user și a unei parole. După loginare intră în mod automat pe pagina de stabilire a datelor aferente perioadelor de înscriere pentru concursurile de master și licență, respectiv pentru desfășurarea propriu-zisă a acestor concursuri, dar și pentru perioada de confirmări a locurilor candidaților, în momentul în care aceștia au reușit să intre la una dintre opțiunile alese. După stabilirea acestor perioade, programul îi conferă posibilitatea de a configura facultățile existente la momentul respectiv în cadrul univeristății, prin intermediul adăugării, ștergerii și modificării datelor introduse. Acesta are la dispoziție și posibilitatea introducerii informațiilor deținute despre secțiuni, respectiv domenii sau specializări în funcție de concursul asupra căruia operează datele(master sau licență). Programul permite de asemenea administratorului introducerea datelor despre membrii comisiei. Pentru toate aceste acțiuni aferente mai multor pagini php, există posibilitatea vizualizării informațiilor introduse, asigurându-se utilizatorul în acest fel de corectitudinea datelor introduse. În acestă manieră, administratorul are acces la datele existente în baza de date, poate le poate modifica și respectiv vizualiza (Figura 3-3).
După cum se observă, în figura 3-3 sunt surprinse modulele de program cu care interacționează administratorul încă de la loginare. Astfel, mai întâi accesează pagina de selectare și memorare a perioadelor de concurs, înscriere și confirmări, modulul de setare tip concurs. Aici, acesta poate să selecteze tipul de concurs, master sau licență și perioadele de desfășurare, date care sunt stocate în tabela tip_concurs. De asemenea, acestea pot fi extrase pentru a fi afișate sub formă tabelară în cadrul aplicației.
b) Candidatul
Următorul modul este cel de configurare domenii prin care administratorul are posiblitatea de a gestiona informațiile despre domeniile sau specializările din cadrul universității. Datele, care se introduc, sunt stocate în tabela specializări, efectuându-se operații de modificare, salvare și ștergere. Această tabelă este interrelaționată cu cea a facultăților prin intermediul câmpului cod_facultate. De asemenea aplicația oferă facilitatea de a configura facultățile din cadrul universității, modulul configurare facultăți, iar pentru aceasta programul utilizează tabela facultăți, pentru efectuarea operațiilor. Toate aceste acțiuni se pot vizualiza prin intermediul tabelului furnizat de această pagină.
Pentru a salva datele în tabelă, se verifică dacă sunt completate câmpurile ce dețin denumirea nouă, precum și codul aferent acesteia, efectuând în prealabil validarea acestora, prin furnizarea de mesaje de eroare. De asemenea, nu se acceptă înregistrarea informațiilor vide în cadrul bazei de date, doar în aceste condiții fiind posibilă inserarea datelor. Bineînțeles un alt aspect important este acela de prevenire al salvării informațiilor duplicate, de aceea acest modul tratează și această problemă.
Administratorul are posibilitatea de a prelucra informațiile despre secțiuni, prin intermediul operațiilor de modificare, salvare și ștergere, care se realizează în strânsă legătură cu tabela secțiuni, în care se stochează denumirea, forma de învățământ, probele de concurs, dar și tipul examenului se desfășoară pentru secțiunea introdusă.
Modulul de configurare domenii sau specializări, permite utilizatorului să adauge pentru fiecare secțiune, facultățile și domeniile sau specializările aferente acesteia. Pentru aceasta aplicația interacționează cu tabelele specializări, secțiuni și facultăți. Informațiile se stochează în tabela domenii_specializări codificat, relaționarea tabelelor realizându-se prin intermediul câmpurilor nr_facultate, nr_sectiune, cod_dom_spec.
Pentru salvarea informațiilor, se determină mai întâi numărul secțiunii, alese pentru configurare, din cadrul tabelei secțiuni, apoi, din tabela specializări se extrag codul facultății și codul domeniului sau specializării. Pe baza acestor informații se verifică dacă înregistrarea există în baza de date, pentru a se evita duplicarea datelor. De asemenea se furnizează mesaje de eroare în cazul în care se constată că se încearcă introducerea unei înregistrări vide sau dacă se introduc aceleași date în mod repetat.
Prin intermediul modulului de configurare comisie, sunt introduse în cadrul aplicației informații despre membrii comisiei, inclusiv user și parolă, parola memorându-se în mod criptat. Pentru aceasta, se utilizează tabela comisie, în vederea stocării, modificării, căutării sau ștergerii datelor.
b) Candidat
Figura 3-4 Schema bloc funcțională pentru utilizatorul-candidat
Candidații se pot logina la aplicație pe baza unui user și a unei parole primite în prealabil pe mail de la operatorul pe calculator, membru al comisiei în momentul în care acesta îi creează contul. După ce utilizatorul își introduce datele pentru a se certifica accesul său la aplicație, acesta are posibilitatea de a vizualiza specializările pentru secțiunea la care s-a înscris, câte locuri sunt distribuite pentru fiecare dintre acestea, respectiv câți candidați sunt înscriși până la momentul loginării la secțiunea respectivă, dar și data limită până la care se poate înscrie, toate aceste acțiuni putându-se realiza doar dacă perioada de desfățurare la momentul respectiv este aferenta înscrierii. Pentru a continua înscrierea, acesta trebuie să-ți introducă datele datele personale și respectiv cele școlare. Candidatul poate verifica datele introduse sub formă tabelară, pentru fiecare categorie de informații. După acestea candidatul are posibilitatea de a introduce opțiunile sale în ordinea priorităților sale.
Pe întreaga perioada de înscrieri acesta se poate logina la aplicație și poate modifca date. Însă dacă se loginează la program în perioada de desfășurare a admiterii atât la master cât și la licență, candidatul nu are acces la nici o informație.
În cadrul intervalului de timp aferent perioadei de confirmări, candidatul poate vizualiza sub fomă tabelară candidații care au reușit sau nu la examenul de licență, respectiv master. Astfel, candidații pot introduce date, repectiv vizualiza informații(Figura 3-4).
În figura 3-4, se poate observa faptul că pentru utilizatorul candidat s-au implementat trei module de program. Modulul pentru introducerea datelor personale interacționează cu tabelele candidat, în care se introduc datele candidatului, localit, și judete din care se extrag pentru salvare codurile localității și județului în care utilizatorul s-a născut sau are domiciliul stabil. De asemenea și în acest caz, salvarea informațiilor este permisă doar după validarea informațiilor introduse și respectiv după verificarea faptului că în tabele nu există datele care se doresc a se înregistra. În cazul în care se întâmpină una dintre aceste situații, aplicația generează mesaje de eroare.
Al doilea modul de program are rolul de a asigura înregistrarea datelor despre forma de învățământ absolvită. Informațiile se memorează în cadrul tabelei candidat1, dar se interacționează și cu tabelele licee, localit și județe pentru a se stoca doar codurile acestora în cadrul candidat1, reprezentând locul unde s-au efectuat studiile. De asemenea salvarea nu este permisă fără realizarea validărilor necesare prevenirii introducerii de informații duplicate sau vide.
Un alt aspect important pentru înscrierea utilizatorului este alegerea opțiunilor, fapt pentru care s-a implementat modulul de configurare opțiuni, prin intermediul căreia acesta alege în ordinea priorității dorite domeniile sau specializările pentru care dorește să se înscrie. Aplicația asigură validarea acestora în sensul că nu este permisă salvarea aceleași opțiuni în mod repetat. Pentru această operație se utilizează tabela optiuni, în care se stochează codul fiecărui domeniu ales, dar și id-ul utilizatorului.
c) Comisie
Figura 3-5 Funcționare aplicație pentru utilizatorul-membru comisie
Pentru membrii comisiei, aplicația permite distingerea a trei categorii de utilizatori: membru comisie aferent unei secțiuni, membru comisie aferent tuturor secțiunilor și operator calculator.
Atât membrii comisiei aferenți tuturor secțiunilor cât și operatorul pe calculator pot vedea date despre studenții înscriși în aplicație pentru examenul de master și pentru examenul de licență, beneficiind totodată de posibilitatea de a vizualiza sub format pdf formularele de înscriere ale candidaților înscriși. Aceștia au posibilitatea de introduce notele dobândite de candidați la examen, respectiv calcularea mediei obținute de aceștia. Totodată se pot studia listele candidaților admiși respectiv respinși. Utilizatorii din cadrul acestei categorii pot introduce și confirmările locurilor dobândite prin examen a participanților. Un alt rol important al acestora este crearea contului participanților și trimiterea acestor informații pe mai candidaților.
În cazul membrilor comisiei, aferenți unei secțiuni, programul le conferă posibilitatea de a vedea candidații înscriși la secțiunea din care fac parte și a datelor despre aceștia. De asemenea se pot studia participanții admiși după examenul de admitere la master, repectiv licență, dar și cei care și-au confirmat locul. Totodată aceștia pot sa creeze conturile pentru candidații care au optat pentru secțiunea din care fac parte.
Ca urmare, operatorii pe calculator și membrii aferenți tuturor secțiunilor sau doar a secțiuni pot să efectueze operații de introducere date și vizualizare. (Figura 3-5).
Din figura 3-5, se observă faptul că membrii comisiei interacționează cu programul prin intermediul mai multor module. După loginare, pe baza unui user și a unei parole, utilizatorul accesează modulul pentru vizualidarea datelor despre candidații înscriși. În cadrul acestei pagini se afișează sub formă tabelară numele, prenumele și cnp-ul candidaților.
Pentru aceasta, se realizează interogări asupra tabelei candidat din care se extrag numele, prenumele și cnp-ul candidaților, și se transmite către pagina destinată detalierii informațiilor participanților id-ul fiecăruia dintre aceștia, unde sunt expuse toate datele acestora. Pentru aceasta se interacționează cu tabela candidat și candidat1. O altă atribuție care este responsabilitatea membrilor comisie este aceea de a crea contul viitorilor studeți, acțiune pentru care se accesează tabela candidat, pentru memorarea primelor informații primite despre aceștia. Bineînțeles parola se stochează criptat pentru a se asigura securitatea informației. Introducerea notelor se realizează prin intermediul altui modul de program, prin accesarea tabelei candidat1. Aceasta permite vizualizarea tabelară a tuturor candidaților, paginat, cu afișarea a trei înregistrări per pagină. Este implementată o opțiune de căutare, care permite identificarea persoanei pentru care se introduc notele, câmpurile ce trebuie completate cu aceste informații apărând doar după ce se accesează căutare.
În ceea ce privește distribuirea după medii a candidaților, aceasta este implementată prin intermediul unui modul de program, care interacționează cu tabelele distribuție, temp și opțiuni. Detalierea acestei funcții este realizată în subcapitolul 3.3 al lucrării de față. Într-o manieră similară este efectuată și distribuția candidaților după perioadele de confirmări.
Pentru introducerea confirmărilor, s-a implementat o pagină, care este dotată cu o metodă de căutare a candidaților după nume și cnp, pentru a se putea introduce seria și numărul chitanței pe baza căreia s-a efectuat plata confirmării. De asemenea s-a implementat o opțiune de căutare, care doar după ce este accesată permite introducerea datelor menționate. Pentru aceasta se accesează, tabela confirmări, unde se vor stoca aceste date. Totodată este implementată posibilitatea de salvare și modificare, dar și cea de vizualizare a informațiilor introduse. Un alt modul reprezentat în figura 3-5, este cel care asigură furnizarea de statistici. Pentru aceasta s-a realizat o opțiune de căutare a secțiunilor, și domeniilor aferente acesteia pentru care se furnizează graficul evidenței notelor obținute de candidații care su ales acest domeniu. Se interacționează cu tabelele secțiuni, domenii_specializări, candidat1 și opțiuni.
3.2 Arhitectura bazelor de date
În ceea ce privește stocarea informațiilor introduse prin intermediul aplicației, aceasta se realizează prin intermediul tabelelor bazei de date, care sunt astfel concepute încât să fie interrelaționate. Fiecare fișier php corespondează cu aceste tabele prin intermediul operațiilor de salvare, modificare, ștergere.
Figura 3-6 Detalierea structurii bazei de date
Detaliere tabele
Tabel facultăți:
Cod_facultate (identifica unic o facultate – 2 caractere)
Denumire
Tabel specializări:
Cod Facultate (câmp de legătura cu tabelul facultățsi)
Cod_dom_spec (identifică unic un domeniu sau o specializare)
Denumire
Forma de învățământ (valori posibile LI, sau MA (LI=Licență, MA=Master)) – în funcție de această formă de învățământ se știe dacă avem un domeniu sau o specializare
Tabel județe
Cod_judet (unic)
Denumire
Localități:
Cod_judet
Nr_localitate(identificator unic)
Denumire
Tabel Licee:
Nr_localitate (câmp de legătură cu localitatea)
Nr_liceu (identificator unic)
Denumire liceu
Universitati
Nr_universitate(identificator unic)
Denumire
Facultati_tara
Nr_universitate(câmp de legătură)
Nr_facultate (Unic)
Tari:
Cod_tara(unic)
Denumirea
Tip_concurs
Tip –valori posibile MA=MASTER, LI=LICENTA
Data1_ inscriere
Data2_inscriere
Data1_admitere
Data2_admitere
Data1_confirmari
Data2_confirmari
Tipuri de evaluari
Nr_unic
Denumire
Sectiuni (în acest tabel se păstrează secțiunile definite de administrator)
Numar sectiune(unic)
Denumire
Metoda de evaluare (1= examen scris sau 2=concurs de dosare ; câmp de legătură cu câmpul nr_unic din tipuri de evaluări)
Proba 1
Proba 2
Domenii_specializări ( utilizat pentru a păstra domeniile/specializările de la fiecare secțiune )
Numar_sectiune (câmp de legătură cu tabela secțiuni)
Cod_facultate (câmp de legătură cu tabela facultăți)
Cod_dom_spec (câmp de legătură cu tabela domenii / specializări )
Tabel cu rolul de a păstra informațiile din prima pagină completată de candidat (candidat):
Nr_candidat (unic)
Nume
Prenume
Cnp
Utilizator
Parola (câmpurile menționate mai sus se completează de către membrul comisiei când crează contul candidatului)
Numele_tatalui
Prenumele_tatalui
Numele_mamei
Prenumele Mamei
Data_nasterii
Judet_nastere (câmp de legatură cu câmpul cod_judet din tabela județe)
Nr_localitate (câmp de legatură cu câmpul nr_localitate din tabela localități)
Sexul (valori posibile M sau F)
Starea civila (1- căsătorit, 2-necăsătorit, 3 —divorțat)
Nationalitatea (câmp de legatură cu tabela țări, câmpul cod_tari)
Originea_etnica (câmp de legatură cu tabela țări, câmpul cod_tari)
Cod de origine etnic (1=după mama, 2=după tata, 3=după ambii părinți)
Judet_domiciliu(câmp de legatură cu câmpul cod_judet din tabela județe)
Localitate_domiciliu (câmp de legatură cu câmpul nr_localitate din tabela localități)
Cod postal
Strada
Nr
Bloc
Scara
Etaj
Ap
Tel Fix
Tel Mobil
Figura 3-7 Evidențierea câmpurilor tabelei candidat
Tabel cu rolul de a pastra informațiile completate în pagina 2 de către candidat(candidat1):
Nr_candidat(câmp de legătură cu tabela candidat)
Cod_judet (câmp de legatură cu câmpul cod_judet din tabela județe)
Nr_localitate (câmp de legatură cu câmpul nr_localitate din tabela localități)
Nr_liceu (câmp de legătură cu tabelul licee, nr_liceu)
Absolvire_fac : Dacă a absolvit o facultate de stat fără taxă (S=forma scurtă sau L=forma lungă, N- daca nu a absolvit)
Semestre_bugetate : Dacă este sau a fost student bugetat de stat fără a absolvi (se completează numărul de semestre)
Obs : câmpurile cod_judet, nr_localitate, Nr_liceu, absolvire_fac și semestre bugetate prezintă interes doar în cazul admiterii la licență.
Nr_universitate (câmp de legătură cu tabela universități)
Nr_facultate (câmp de legătură cu tabela facultați _tara)
Obs. Câmpurile: nr_universitate și nr_facultate prezintă interes doar la admiterea la master.
Anul absolvirii (valabil și la licenă și la master)
Medie_examen_finalizare (stochează media de bacalaureat pentru licență, media de licență pentru master)
Media_multianuala (la licență reține media anilor de liceu, respectiv media anilor de facultate în cazul admiterii la master)
Media multianuala la disciplina de concurs 1
Media multianuala la disciplina de concurs 2
Obs: Media multianuală la disciplinele de concurs prezintă interes la admiterea la licență și dacă este concurs de dosare și dacă este concurs cu verificarea cunoștințelor. La admiterea prin examen servește la departajare. La master nu prezintă interes aceste două câmpuri decât dacă este concurs de dosare.
Nota proba 1 (completata de comisie după examen)
Nota proba 2 (completata de comisie după examen)
Media admitere (completată de comisie dupa examen)
Tabel cu rolul de a păstra informațiile completate de candidat în pagina 3:
nr_candidat (câmp de legătură cu tabela candidat și candidat1)
cod domeniul / specializarea 1
cod domeniul / specializarea 2
…..
Tabelul comisie(are rolul de a reține informațiile despre membrii comisiei):
Id_comisie(identificator unic)
Nume
Prenume
Facultate
Departament
Functie didactică
Functie comisie
User
Parolă
Secțiune
Tabelul confirmări
Nr_candidat(câmp de legătură cu tabela candidat și candidat1)
Optiunea( câmp de legătură cu tabela specializări)
Respins(câmp care semnifică faptul că dacă are valoarea 1 candidatul este admin, altfel este respins)
Tabelul distribuție
Nr_candidat(câmp de legătură cu tabela candidat și candidat1)
Optiunea( câmp de legătură cu tabela specializări)
Respins(câmp care semnifică faptul că dacă are valoarea 1 candidatul este admin, altfel este respins)
Figura 3-8 Evidențierea câmpurilor tabelei comisie
Tabelul departamente
Cod_facultate(câmp de legătură cu tabela facultăți)
Departament
Tabelul titulatură(are rolul de a deține informațiile despre funcțiile membrilor comisie)
Nr_functie
Denumire
Tabelul înscriere(are rolul de a stoca informațiile legate de plata confirmării)
Nr_candidat( câmp de legătură cu tabela candidat sau candidat1)
Serie_chitanta
Numar_chitanta
Tabelul temp(are rol fundamental în distribuția candidaților pe opțiuni)
Optiunea(câmp de legătură cu tabela specializări și opțiuni)
Nr_locuri_ocupate(numărul locurilor ocupate)
Nr_locuri_maxim(numărul locurilor disponibile)
Tabelul admin(are rolul de a stoca informațiile despre administrator)
Id
Administrator
Parola
3.3 Funcții (subrutine)
Principalele funcții
Implementarea programului se realizează în PHP. Din punctul de vedere al liniilor de cod, principalele funcții care se impun ca și dificultate și este important să fie numite, sunt cea prin care se face distribuția pe opțiuni, și respectiv cea prin care se realizează paginarea în cazul introducerii notelor de către comisie.
Secțiunea de cod care realizează împărțirea în funcție de preferințele candidaților în ceea ce privește opțiunile este implementată astfel:
$cer1=”select nr_candidat, nota_proba1, nota_proba2,medie_admitere from candidat1 order by medie_admitere desc”;
$que1=mysql_query($cer1);
$rz1=mysql_fetch_row($que1);
while($rz1[0]!=NULL){
$cauta=”select nr_candidat from distributie where nr_candidat=’”.$rz1[0].”’”;
$gas=mysql_query($cauta);
$ras=mysql_fetch_row($gas);
if($ras[0]!=NULL){$rz1=mysql_fetch_row($que1);}
else{
$cerere=”select * from optiuni where nr_candidat=’”.$rz1[0].”’”;
$query=mysql_query($cerere);
$rezultat=mysql_fetch_row($query);
if($rezultat[1]!=”—„){$sir[0]=$rezultat[1];}
if($rezultat[2]!=”—„){$sir[1]=$rezultat[2];}
if($rezultat[3]!=”—„){$sir[2]=$rezultat[3];}
if($rezultat[4]!=”—„){$sir[3]=$rezultat[4];}
if($rezultat[5]!=”—„){$sir[4]=$rezultat[5];}
if($rezultat[6]!=”—„){$sir[5]=$rezultat[6];}
if($rezultat[8]!=”—„){$sir[7]=$rezultat[8];}
if($rezultat[9]!=”—„){$sir[8]=$rezultat[9];}
if($rezultat[10]!=”—„){$sir[9]=$rezultat[10];}
if($rezultat[11]!=”—„){$sir[10]=$rezultat[11];}
if($rezultat[12]!=”—„){$sir[11]=$rezultat[12];}
if($rezultat[13]!=”—„){$sir[12]=$rezultat[13];}
if($rezultat[14]!=”—„){$sir[13]=$rezultat[14];}
if($rezultat[15]!=”—„){$sir[14]=$rezultat[15];}
if($rezultat[16]!=”—„){$sir[15]=$rezultat[16];}
if($rezultat[17]!=”—„){$sir[16]=$rezultat[17];}
if($rezultat[18]!=”—„){$sir[17]=$rezultat[18];}
if($rezultat[19]!=”—„){$sir[18]=$rezultat[19];}
if($rezultat[20]!=”—„){$sir[19]=$rezultat[20];}
$n=count($sir);
for($i=0;$i<$n;$i++){
$sql=”select * from temp where optiunea=’”.$sir[$i].”’”;
$q=mysql_query($sql);
$rez=mysql_fetch_row($q);
$nr=$rez[1];
if((($rez[2]-$nr)>0)&&($rz1[3]>5)){
$nr++;
$update=”update temp set nr_locuri_ocupate=’”.$nr.”’ Where optiunea=’”.$sir[$i].”’”;
mysql_query($update);
$insert=”insert into distributie(nr_candidat, optiunea,respins) values(‚”.$rz1[0].”’,’”.$sir[$i].”’,’1’)”;
mysql_query($insert);
$i=$n+1;
}else{
$inserare=”insert into distributie(nr_candidat, optiunea,respins) values(‚”.$rz1[0].”’,’—‚,’0’)”;
mysql_query($inserare);
}
}//for
$rz1=mysql_fetch_row($que1);
}//else exista deja
}//parcurgere studenti
Această porțiune de cod funcționează astfel: se ordonează candidații în ordinea mediilor după susținerea examenului de admitere, se stochează opțiunile acestuia într-un șir, se verifică dacă sunt locuri disponibile la prima secțiune aleasă de acesta și dacă media opținută este mai mare decât 5, dacă da, se consideră studentul admis, dacă nu se verifică pentru următoarea opțiune. În cazul în care acesta nu se încadrează la nici una din secțiunile pentru care a optat, candidatul este respins. Algoritmul nu este foarte complicat, însă eficient în cazul distribuției candidaților în funcție de opțiunile pentru care aceștia au optat.
O altă secțiune de cod, care trebuie menționată este cea care efectuează paginarea studenților în vederea introducerii notelor.
Pentru implementarea paginării în fișierul care are ca și rol realizarea introducerii notelor candidaților, se utilizează clasa PS_Pagination, care are ca și variabile ce vor fi folosite $php_self, care are rolul de a chema fișierul curent, $rows_per_page, numărul înregistrărilor din cadrul unei pagini, $total_rows, numărul total de linii returnate de interogarea SQL, $links_per_page, numărul de linkuri către celelate pagini afișate in cadrul unei pagini, $sql, interogarea sql utilizată, $debug, exitența unei erori, $conn, conexiunea cu baza de date, $page, numărul paginii în care se află utilizatorul în momentul curent, $max_pages, numărul maxim de pagini care se pot obține prin paginare. În cadrul constructorului clasei, se atribuie valori acestor atribute. Funcția paginate() verifică existența conexiunii cu baza de date, dacă aceasta nu se efectuează dă un mesaj de eroare, verifică corectitudinea interogării sql, apoi se gasește numărul de linii, care trebuiesc paginate și de asemenea câte vor fi afișate pe fiecare pagină. Dacă numărul paginii curente este mai mare decât numărul total de pagini sau este mai mic decât 1 se încarcă prima pagină. Interogarea SQL este limitată la numărul de inregistrări afișate pe pagină. Funcțiile renderFirst() și renderLast(), fac legătura către prima și ultima pagină, iar funcțiile renderNext() și renderPrevious() realizează transmiterea către pagina următoare sau anterioară, dar funcția renderNav() implementeză baleerea propriu-zisă între pagini. RendeFullNav() returnează stringul, care reprezintă afișarea link-urilor către pagini. SetDebug(), setează o variabilă în momentul în care se găsește o eroare și se afișează un mesaj de eroare.
Capitolul 4. Utilizarea aplicației
Acest capitol prezintă modul în care utilizatorul interacționează cu aplicația, prezentarea detaliată a interfeței. Punctul de plecare în cadrul acestei descrieri constă în relevarea loginării la aplicație. După cum se observă în cadrul Figurii 3, aplicația are ca pagină de start o interfață prietenoasă, care are în partea superioară o imagine ce conține sigla Universității Politehnice Timișoara, prin accesarea căreia se poate intra pe site-ul universității. În centrul paginii sunt prezente casuțe de text unde se pot introduce user-ul și parola utilizatorului. În cazul in care datele introduse nu există în baza de date, acest lucru este semnalat prin intermediul unui mesaj de culoare roșie :’Reîncercați!!! Loginare incorectă!!!’ (Figura 4-2). După cum se observă în Figurile 2, respectiv 3, culoarea de fond este schimbată, întrucât aceasta este setată din cadrul programului ca pe durata în care aceasta se încarcă în browser să manifeste o translatare a culorii de la albastru închis spre mov deschis. S-a optat pentru aceasta schimbare doar pentru ca interfața să se impună ca și aspect pentru utilizator.
Figura 4-1 Pagină login
Figura 3-2 Pagina de login cu eroare la loginare
Și în cadrul acestui subcapitol se va descrie interfața cu utilizatorul din perspectiva celor trei categorii de utilizatori: administrator, candidat și membru comisie.
4.1 Login ca administrator
Din punctul de vedere al acestui utilizator, după ce se certifică loginarea, pagina care se încarcă este cea a stabilirii perioadelor de desfășurare a înscrierii candidaților, desfășurarea concursului, respectiv introducerea duratei perioadei de confirmări.
Figura 4-3 Stabilirea perioadelor de desfășurare a admiterii, înscrierii și confirmării
În cadrul figurii 5, se regăsește pagina implementată pentru introducerea acestor perioade, enunțate mai sus. În partea stângă a paginii se găsesc linkuri către celelalte pagini către care administratorul are acces. Central, se găsește posibilitatea de a alege forma de învățământ pentru care se introduc aceste perioade. Prin intermediul unui calendar implementat se aleg datele de pornire respectiv de încetare aferente fiecărei perioade mai sus menționate, astfel obținându-se fiecare interval de timp. Aceste date se pot salva în cadrul unei tabele ce va fi detaliată ulterior, dar și vizualizate tabelar, tabel în care se regăsesc numărul înregistrării din tabelă, tipul formei de învățământ, dar și datele introduse. Informațiile se pot modifica, respectiv șterge în cazul introducerii incorecte; pentru aceste operații se introduce numărul înregistrării, pentru a se cunoaște asupra cărei înregistrări se lucrează. În continuare, administratorul poate trece la configurarea facultăților, accesând link-ul “Continuati”.
Figura 4-4 Configurare facultăți
În cadrul acestei părți a programului se pot vizualiza, în partea stângă, link-uri către celelalte pagini în care utilizatorul poate naviga. Aici se pot introduce facultățile din cadrul universității, însoțite de codul acestora, dar de asemenea se pot modifica sau șterge infomațiile selectate dintr-o listă introdusă într-un element select html. La modifcare sau ștergere se cere confirmarea utiizatorului pentru aceaste acțiuni. Și în acest caz se pot vizualiza toate operațiile efectuate asupra informațiilor abordate în această pagină. În cazul în care câmpurile text care solicită informații de introdus, nu se introduc date și se dã comanda de salvare sau modificare apar mesaje de eroare care solicită completarea, respectiv dacă se introduc greșit, adică în loc de text(caractere ale alfabetului) se includ cifre de asemenea salvarea, respectiv modificarea nu se poate efectua, bineînțeles prin înștiințarea utilizatorului. Și în această pagină se regăsește un link “Continuați”, care prin accesarea lui conduce către pagina de configurare a domeniilor și specializărilor.
Figura 4-5 Configurare domenii/specializări
În cadrul acestei porțiuni a programului se introduc domeniile (pentru licență) și specilizările(pentru master) aferente fiecărei facultăți. În momentul în care se alege o facultate din cadrul listei de facultăți se accesează butonul “>>” urmând ca să apară sub formă de tabel domeniile, repectiv specializările aferente informației selectate.
Figura 4-6 Configurare domenii specializări – detaliat
Și în cadrul acestei pagini se 89ntroduce date fapt pentru care se regăsesc și aici casete care solicită introducere de informații, liste pentru selectarea datelor cum ar fi forma de învățămât sau regimul de 89ntrod pentru fiecare domeniu. Aceste informații pot fi stocate în bata de date, dar în momentul în care se întâlnesc nereguli la introducere cum ar fi în cadrul textului să fie 89ntroduce cifre sau în locul numerelor caractere apar mesaje de eroare care avertizează utilizatorul asupra erorilor, solicitând reintroducerea datelor, altfel salvarea nefiind posibilă. De asemenea nu se acceptă duplicate, și în acest caz apărând mesaje de avertizare. Bineînțeles, în cazul introducerii greșite a informațiilor, acestea pot fi modificate sau șterse, dar doar cu acordul utilizatorului solicitat. Și în acestă pagină se găsesc link-uri spre celelalte pagini în care administratorul poate efectua operații, poziționate în partea stângă, dar și un link ‘Continuați’, prin intermediul căreia se face trecerea către pagina de introducere a secțiunilor.
Figura 4-7 Configurare secțiuni
În cadrul acestei părți se permite utilizatorului introducerea secțiunilor pentru forma de învățământ master și licență. Pentru licență se introduce secțiunea în cadrul casetei de text, apoi se accesează butonul de căutare :
Figura 4-8 Secțiune gasită(configurare secțiuni)
Dacă aceasta s-a găsit, se încarcă în câmpurile aferente formei de examen și de învățământ informațiile din baza de date, dar apar și probele la care se susține examen pentru secțiunea respectivă. Și în acest caz există posibilitatea de modificare și stergere a informațiilor existente în baza de date pentru secțiunea respectivă. În cazul în care nu se găsește informația căutată apare un mesaj care indică faptul ca înregistrarea nu există, se alege forma de examen și forma de învățământ și se accesează butonul ‘>>’. Dacă se alege licență, vor apărea două casete de text pentru introducerea probelor, iar dacă se alege master atunci va apărea o singură casetă de text pentru introducerea unei singure probe. În momentul salvării sau modificării, dacă informațiile nu au fost introduse corect apar mesaje de eroare pentru utilizator. Nici în acest caz introducerea de duplicate sau înregistrări vide nu este permisă. Pagina permite vizualizarea secțiunilor deja introduse sub formă tabelară, distinctiv pentru master și pentru licență. Linkul ‘Contnuati’ trimite către pagina de configurare a domeniilor, specializărilor aferente fiecărei secțiuni.
Figura 4-9 Introducerea domniilor și specializărilor.
În cadrul imaginii de mai sus este surprinsă partea aplicației potrivit căreia administratorul poate configura domeniile sau specializările aferente fiecărei secțiuni introduse. În partea stângă a paginii se găsesc link-uri către celelalte pagini în care utilizatorul poate naviga pe baza informațiilor introduse la loginare. După selectarea secțiunii alese de acesta spre configurare se accesează butonul de ‘Validare’:
Figura 4-10 Configurarea domeniilor și specializărilor detaliat
După această acțiune, apare automat posibilitatea desfășurării facultăților existente în universitate la momentul respectiv, din care se alege unitatea dorită, urmând apoi a se apăsa butonul domenii:
Figura 4-11 Configurarea domeniilor și specializărilor detaliat
Ulterior acestei acțiuni se desfășoară lista domeniilor, respectiv specializărilor deținute de respectiva facultate selectată. După ce s-a optat asupra uneia dintre acestea se accesează butonul ‘Salvare’, prin intermediul căruia se salvează informațiile în baza de date. Prin intermediul link-ului ‘Vizualizare introduceri’ realizarea trecerii către pagina în care se pot vizualiza și respectiv verifica introducerile realizate până la momentul respectiv.
Figura 4-12 Vizualizare configurare secțiuni
În cadrul acestei pagini în partea sa superioară, există posibilitatea de a alege din lista secțiunilor o anumită unitate, iar apoi se accesează butonul de ‘Validare sectiune’. După această acțiune apare lista de facultăți existentă la secțiunea selectată anterior. Apoi se actionează asupra butonului ‘Validare Facultăți’, care are ca și efect apariția domeniilor, respectiv specializărilor existente la respectiva facultate. Totodată aici se regăsesc butoane pentru ștergerea unei facultăți, respectiv a unui domeniu. Când se acționează asupra acestor butoane, utilizatorul este întrebat dacă dacă este sigur de acțiunea pe care dorește să o execute. Această parte a aplicației permite totodată vizualizarea informațiilor despre secțiuni introduse până acum de utilizator, cu privire la denumirea secțiunilor, facultățile pe care acestea le dețin, respectiv domeniile și specializările aferente fiecărei facultate.
O altă atribuție deținută de administrator, sprijinită în totalitate de aplicație este crearea conturilor pentru membrii comisiei. Pentru aceasta s-a implementat o pagină în ale cărui câmpuri se introduc informații despre membrii comisiei, bineînțeles la salvare facându-se o validare a introducerii acestor informații. În cazul introducerii greșite, utilizatorului îi apar mesaje de eroare care îl îndrumă spre introducerea corectă a datelor.
Figura 4-13 Introducerea membrilor comisiei
În cadrul acestei porțiuni a programului este implementată o operație de căutare, a unui membru al comisiei existent în baza de date. În cazul în care acesta a fost găsit , câmpurile se populează cu datele găsite în baza de date, dar există și posibilitatea de vizualizare tabelară a informațiilor găsite. De asemenea este implementată și o opțiune de căutare după secțiunea de care aparține respectivul membru al comisiei.
Figura 4-14 Configurarea comisiei- găsirea unui membru
4.2 Login ca și candidat
În ceea ce privește partea de aplicație destinată candidaților, aceasta va fi prezentată în funcție de acțiunea desfășurată în perioada loginării la aplicație. Acestea pot fi: perioada de înscriere, perioada de desfășurare a concursului și respectiv perioada de confirmări. Ca urmare, în continuare aplicația va fi prezentată din punctul de vedere a acestor trei perspective.
În cazul în care este în desfășurare perioada de înscrieri, după loginare candidatul are acces la o pagină în care se pot vizualiza elementele secțiunii la care s-a înscris candidatul, respectiv numărul de locuri existente la fiecare domeniu sau specializare în funcție de concursul pentru care se efectuează înscrierea. Totodată în această pagină se poate vizualiza numărul candidaților înscriși până în momentul loginării, dar și termenul limită pentru perioada de înscriere, timp în care candidatul poate să acceseze aplicația pentru modificare date.
Figura 4-15 Afișarea datelor despre secțiunea la care este înscris candidatul-licență
Și în cazul în care perioada de înscriere este pentru master, atunci structural, această pagină nu are schimbări majore, ci doar din punctul de vedere al informațiilor conținute de aceasta și anume este specificată data limită de înscriere pentru master, iar în cadrul reprezentării tabelare sunt surprinse specializările pentru care a optat candidatul la înscriere. Acesta poate vizualiza bineînțeles și numărul candidaților înscriși până la accesarea aplicației.
Figura 4-16 Afișarea datelor despre secțiunea la care este înscris candidatul-master
În această pagină candidatul are la dispoziție un link ‘Continuati inscrierea’ care face trimiterea către următoarea etapă a înscrierii sale, care este constituită din introducerea datelor personale. De asemenea există posibilitatea de întoarcere la pagina de start a aplicației. În cadrul paginii aferente introducerii datelor personale ale participanților la concurs se găsesc câmpuri care sunt deja completate întrucât informațiile există deja în baza de date datorită administrator, care în momentul în care candidatul platește taxa de înscriere pentru concurs introduce datele acestuia în baza de date.
Figura 4-17 Introducerea datelor personale ale candidatului
Candidatul este întâmpinat în această pagină de un mesaj de bun venit în cadrul aplicației, în care se găsește specificat numele și prenumele acestuia, respectiv secțiunea la care s-a înscris. Aplicația solicită introducerea datelor prin intermediul casetelor de text , dar și prin liste detaliate de opțiuni, cum ar fi cea destinată județelor, după alegerea cărora se accesează butonul ‘>>’ urmând ca în câmpul aferent localității să apară lista localităților din cadrul județului ales. Acestei primei părți de introducere a datelor îi urmează o altă secțiune, reprezentată în figura 4-17 care trebuie completată cu informații personale despre candidatul care a optat să se înscrie pentru susținerea examenului de admitere la una din secțiunile Universității Politehnice Timișoara.
Figura 4-18 Introducerea datelor personale ale candidatului- partea a doua
Și în cadrul acestei porțiuni din cadrul aplicației este necesar să se introducă datele referitoare la domiciliul candidaților. După introducerea tuturor datelor acestea se salvează în tabelele bazei de date. Salvarea se realizează după validarea în prealabil a tututor câmpurilor, în care se încarcă informații, iar în caz de introduceri greșite cum ar fi de exemplu introducerea cifrelor în casete de text în care ar trebui să fie doar caractere sau chiar necompletarea câmpurilor obligatorii, se generează mesaje de eroare pentru utilizator. Această pagină se completează indiferent de modul formei de învățământ pentru care se dorește înscrierea. Totodată aici există un link care permite participantului să vizualizeze datele introduse pentru verificare. De aici există posibilitatea reîntoarcerii la înscriere.
Figura 4-19 Vizualizarea datelor introduse de candidat
După parcurgerea acestei porțiuni a aplicației, de înscriere a datelor personale, se purcede la urmatoarea pagină de introduceri, trecerea spre aceasta efectuându-se prin intermediul link-ului ‘Continuati inscrierea’.
Înscrierea continuă prin completarea câmpurilor din pagina următoare. Aceasta diferă în funcție de forma de învățământ la care se realizează înscrierea. Dacă înscrierea se efectuează pentru licență atunci câmpurile sunt cele din cadrul figurii 20.
Figura 4- 20 Introducerea datelor referitoare la situația școlară
După cum este relevat în figura de mai sus, pentru continuarea introducerii informațiilor referitoare la absolvirea formei de învățământ anterioare. Participantul la înscriere trebuie sa selecteze județul în care a absolvit, urmând ca apoi să acceseze butonul ’>>’ , în urma acestei acțiuni apărând localitățile din cadrul județului selectat, la o apăsarea celui de-al doilea buton ’>>’ în caseta aferentă liceelor, vor apărea cele aferente localității selectate. După introducrea tuturor datelor și selectarea lor se dă comanda de salvare. În cazul în care există câmpuri necompletate sau introduse greșit apar mesaje de eroare vizibile utilizatorului, care nu poate efectua salvarea până la introducerea completă a datelor. În cazul în care se greșește în introducerea datelor, înregistrarea lor se poate șterge, urmând ca apoi să fie reintroduse. Interfața este simplă, ușor de utilizat. În partea stângă a paginii se găsec link-uri către celelate pagini aferente acestui utilizator . Și în cadrul acestei pagini utilizatorul are posibilitatea de a vizualiza introducerile efectuate prin accesarea link-ului ‘Vizualizare introduceri’:
Figura 4-21 Vizualizarea datelor introduse de candidat
În cazul perioadei de desfășurare a înscrierii pentru master, structura acestei pagini este diferită din punctul de vedere al conținutului informațiilor care se solicită spre introducere. După cum se observă în figura 4-22, se solicită introducerea facultății absolvite și date referitoare la aceasta cum ar fi anul absovirii, media de finalizare, dar și media multianulă, informații relevante în cadrul calculului mediei de admitere la forma de învățămant master. Elementele utilizate sunt casete de text, dar și desfășurătoare realizate prin intermediul elementului html select. După cum se poate observa, conceptul de realizare, respectiv structurarea paginii este aceeași.
Figura 4-22 Introducerea datelor referitoare la situația școlară-master
Următorul aspect deosebit de important în cadrul etapei de înscriere este alegerea opțiunilor pentru care candidatul optează în ordinea priorităților sale, ceea ce constituie obiectul următoarei pagini pe care participantul trebuie să o străbată. În cadrul acestei pagini se găsesc casete de desfășurare a domeniilor sau specializărilor, în cazul în care înscrierea se realizează pentru master. Numărul opțiunilor care este afișat pe pagină este egal cu cel existent la secțiunea la care candidatul se înscrie. Acesta trebuie să opteze pentru unele dintre acestea în ordinea priorității alese de dânsul, dar aplicația nu permite duplicarea în alegerea lor. În cazul în care toate regulile de alegere a acestora sunt respectate, acestea se pot salva în tabela bazei de date.
Figura 4-23 Introducerea opțiunilor în funcție de prioritatea dorită de candidat
Și în acest caz este pusă la dispoziția utilizatorului posibilitatea de a vizualiza informațiile introduse sub formă tabelară.
Figura 4-24 Vizualizarea opțiunilor introduse de candidat
Există câteva situații de excepție care pot apărea pe parcursul încercării de a accesa această aplicație. Un astfel de caz este acela că un candidat înscris pentru licență se loginează la aplicație în perioada de înscrieri pentru concursul de master, caz în care aplicația semnalează acest lucru, iar utilizatorul nu poate efectua nici o operație decât reîntoarcerea la pagina de start. Situația este surprinsă în figura 25.
Figura 4-25 Mesaj de eroare la login în perioadă eroanată de înscrieri
Și în cazul în care participantul a optat la achitarea taxei de înscriere pentru master, dar accesează aplicația în perioada de înscriere pentru licență, programul reacționează într-o manieră similară nepermițând candidatului nici o operație asupra aplicației.
Figura 4-26 Mesaj de eroare la login în perioadă eroanată de înscrieri
Alt caz din punctul de vedere al căruia trebuie privită aplicația este cel în care accesul la aplicație se efectuează în momentul în care examenul de admitere sau licență este în plină desfășurare. Și în această situație programul reacționează la încercarea utilizatorului-candidat de a accesa aplicația.
Figura 4- 27 Mesaj de transmis în caz de login în perioada de examene
Și în această situație utilizatorul nu poate efectua nici o operație în cadrul aplicației, accesul fiindu-i restricționat. Acest lucru este valabil atât pentru perioada de desfășurare a examenului de master cât și a celui de licență.
Un alt aspect important pentru aplicarea la program a acestui tip de utilizator este cel legat de perioada aferentă confirmărilor. În acest caz, la loginarea candidatului la aplicație acesta poate vizualiza :
Figura 4-28 Afișarea informațiilor în perioada de confirmări
Candidaților li se pun la dispoziție lista participanților la examene admiși sau respinși, repectiv domeniile la care au reușit, notele obținute și media de admitere pe baza căreia au reușit să promoveze examenul de admitere. Totodată, acesta poate vizualiza și termenul limită pentru perioada de confirmări, timp în care acesta poate să confirme locul pe care l-a obținut prin intermediul examenului de admitere.
4.3 Login ca și membru al comisiei
În cadrul acestei categorii de utilizatori, aplicația trebuie să fie privită din mai multe puncte de vedere. Membrii comisiei care pot aplica la program sunt împărțiți în 3 categorii: membru comisie pentru o singură secțiune, membru comisie pentru toate secțiunile și repectiv operator calculator. În funcție de aceste categorii de utilizatori cu atribuții diferite va fi detaliată și aplicația în continuare.
Dacă membrul comisiei care accesează aplicația își desfășoară activitatea doar pentru o singură secțiune atribuțiile acestuia îi permit, din punctul de vedere al programului, acțiuni doar asupra candidaților care au optat pentru sectorul său de activitate. Acesta se loginează la aplicație pe baza unui user și a unei parole asignate de către administrator. După această acțiune, acesta poate vizualiza candidații înscriși la secțiunea de care acesta se ocupă.
Figura 4-29 Afișarea candidaților înscriși la secțiunea membrului loginat
În cadrul acestei pagini, în partea stângă se găsesc linkuri care permit utilizatorului să navigheze de-a lungul paginilor aplicației destinate acestuia. Aici, se pot vizualiza candidații înscriși la această secțiune, organizați într-un tabel, iar datele reprezintă link-uri spre o pagină în care se regăsesc detaliat datele candidatului accesat. Utilizatorul poate intra pe pagina de vizualizare a candidaților admiși sau respinși din cadrul secțiunii sale:
Figura 4-30 Afișarea candidaților admiși la secțiunea membrului loginat
În această manieră utilizatorul poate vizualiza datele candidaților admiși în cadrul secțiunii sale, cum ar fi notele obținute, media de admitere, dar și opțiunea la care a reușit să intre. Un alt aspect foarte important, care este și o atribuție pe care aplicația o solicită acestui tip de utilizator este crearea conturilor candidaților. Acest fapt este permis doar pentru candidații care s-au înscris la secțiunea aferentă acestuia. După cum se poate observa în cadrul figurii 31, secțiunea este deja introdusă în câmpul aferent ei și este readonly, astfel încât utlizatorul nu poate schimba acest aspect al creării contului său. Din punct de vedere al organizării, pagina este concepută prin folosirea de casete de text pentru introducere, dar este dotată și cu un sistem de furnizare automată a user-ului și parolei pentru candidați, acest aspect fiind detaliat în capitolele următoare ale lucrării de față. Datele introduse se pot salva, după o verificare în prealabil a veridicității acestora, respectiv modifica sau șterge în cazul unor erori de introducere.
Figura 4-31 Crearea contului candidatului
Al doilea aspect în prezentarea utilizării aplicației, din punctul de vedere al categoriei de utilizatori ca și membri ai comisiei, îl reprezintă folosirea aplicației de către operatorul pe calculator. După ce acesta se loginează la program, va accesa o pagină în care acesta va putea vizualiza tabelar toți candidații ordonați alfabetic după nume și prenume. În cadrul acestei forme de reprezentare a candidaților, numele, respectiv prenumele reprezintă link-uri către o pagină în care se pot vizualiza toate datele introduse de candidat la înscriere, atât în ceea ce privește datele personale, dar și cele referitoare la forma de învățământ anterioară, bineînțeles fără a lipsi informațiile legate de domeniile pentru care a optat candidatul. Tot în această pagină, utilizatorul are acces la un buton care permite listarea în format pdf a fișelor de înscriere a candidaților, dar cu datele furnizate de tabelele bazei de date. Acest fișier generat poate fi salvat și se poate fi utilizat în manierele care se găsesc convenabile de către utilizator. Modul în care a fost implementat acest fișier se va regăsi în cadrul capitolelor ce vor urma în cadrul detalierii acestei lucrări.
Figura 4-32 Vizualizarea candidaților înscriși
O altă îndatorire pe care o au operatorii pe calculator este aceea de a introduce notele candidaților. Aplicația vine în sprijinul acestora prin intermediul unei pagini care este dotată cu o opțiune de căutare a participanților la concursul de admitere. Pagina de asemenea permite vizualizarea tabelară a candidaților, conferind posibilitatea de a se încărca câte trei candidați urmând ca pentru următorii trei să se acceseze butonul ‘>>’. Ca și modalitate de lucru, operatorul trebuie să apeleze la opțiunea de căutare pentru a putea introduce notele propriu-zis. Astfel, acesta introduce numele candidatului și cnp-ul acestuia și dă comanda ‘Cautare’.
Figura 4-33 Introducerea notelor
După cum se poate observa in figura 33 aplicația permite utilizatorului să introducă notele obținute la examenul de admitere. Când se dă comanda de salvare, se verifică în prealabil dacă informațiile au fost introduse corect, sau dacă se încearcă să se salveze înregistrări vide, caz în care se oferă operatorului mesaje de eroare, prin care se solicită introducerea corectă a informațiilor. Această aplicație permite de asemenea calculul mediei candidatului pentru care s-au introdus notele. Însă pentru o mai multă siguranță în cadrul salvării datelor în tabela bazei de date, calcularea mediei funcționează doar dacă se dă în prealabil încă o comandă de căutare. Dacă utilizatorul accesează link-ul din stânga paginii ‘Admis/respins’ acesta are posibilitatea să vizualizeze distribuirea studenților admiși și repinși și respectiv domeniul la care au intrat.
Figura 4-34 Vizualizarea studenților admiși și respinși
În partea stângă a paginii există link-uri care fac legătura cu celelalte pagini pe care utilizatorul le poate parcurge. O altă atribuție prevăzută de aplicație pentru acest tip de utilizator este introducerea datelor pentru studenții care și-au confirmat locul obținut. Informațiile care se solicită a fi introduse sunt seria și numărul chitanței cu care au achitat taxa de confirmare. Din punctul de vedere al aplicației, mai întâi trebuie căutat candidatul după nume și cnp, urmând ca apoi să fie introduse informațiile. Și în cazul operației de căutare în cazul în care nu se introduc informații în câmpurile aferente căutării, utilizatorul este avertizat prin intermediul unui mesaj de eroare.
Figura 4-35 ntroducerea confirmărilor
După ce s-a dat comanda de căutare, pe monitor apar casetele de text pentru introducerea datelor.
Figura 4-36 Introducerea confirmărilor
Și în acest caz operațiile care se pot realiza cu ajutorul acestei pagini sunt cele de salvare și modificare. În ambele situații informațiile sunt verificate, în caz de eroare fiind semnalat utilizatorul. De asemenea, în cadrul acestei pagini informațiile pot fi vizualizate tabelar, regăsindu-se în această reprezentare și eventualele modificări sau înregistrări efectuate.
O altă posibilitate pe care aplicația o oferă operatorului este cea de redistribuție a candidaților în funcție de confirmarea locului obținut pe baza mediei de examen.
Figura 4- 37 Vizualizarea candidaților după confirmări
În cadrul acestei pagini pot fi vizualizati candidații admiși sau respinși sub formă tabelară, în ordinea mediei. Bineînțeles și de aici se poate trece și în celelalte pagini prin intermediul link-urilor din partea stângă.
O altă responsabilitate pe care o are operatorul pe calculator este aceea de a crea contul candidaților. În acest scop, programul pune la dispoziția acestuia o altă pagină care permite introducerea datelor. După cum se poate observa în figura 4-38, se solicită introducerea informațiilor despre candidat, în mod asemănător ca și pentru cazul în care aplică la aplicație utilizatorul-membru al unei singure secțiuni. Diferența constă în faptul că operatorul poate crea conturi pentru candidați de la toate secțiunile. De asemenea există posibilitatea de a salva informațiile introduse, după verificarea corectitudinii datelor, respectiv existența acestora în cadrul câmpurilor. Bineînțeles, datele introduse se pot modifica sau șterge în cazul în care s-au strecurat erori la introducere. Totodată informațiile pot fi vizualizate sub formă tabelară ca și operațiile efectuate asupra lor. În caz de erori, acestea sunt semnalate utilizatorului prin mesaje scrise, elocvente, care solicită reintroducerea datelor eronate.
Figura 4-38 Crearea contului candidatului
Aplicația oferă posibilitatea pentru membrii comisiei de a vizualiza statistici referitoare la notele obținute de candidați la examenul de admitere sau la concursul pe bază de dosare.
Figura 4-39 Statistici
În cadrul acestei pagini, utilizatorul selectează din lista de secțiuni, opțiunea pentru care dorește efectuarea statisticii, urmând ca apoi să acționeze butonul validare. În urma acestei acțiuni, apare lista domeniilor sau specilizărilor aferente acesteia. Apoi, trebuie accesat butonul ‘Statistica’. În urma acestei acțiuni, se poate vizualiza graficul distribuției candidaților în raport cu intervalele de medii mentionate.
Figura 4-40 Statistici domenii-secțiuni
O altă posibilitate este cea de a accesa linkul ’Evidența candidaților raportat media examenului de admitere/media de finalizare a formei de invatamant anterioara’, iar în acest caz se poate beneficia de graficul care conține evidența tuturor candidaților în funcție de medie, putându-se observa diferența dintre notele obținute la examenul de admitere și cele deținute la finalul formei de învățământ anterioare.
Figura 4-41 Statistica raport medii
Al treilea tip de utilizator din cadrul participanților comisiei este cel care se ocupă de toate secțiunile. Acesta poate efectua toate operațiile pe care le efectuează și operatorul pe calculator. Se pot vizualiza toți candidații înscriși la concursuri și datele acestora, se pot introduce notele obținute la examene, vizualiza candidații admiși respectiv respinși, se pot introduce confirmările și vizualiza studenții admiși în urma confirmărilor și de asemenea se pot crea conturi pentru candidații tuturor secțiunilor.
Pentru toate cele trei tipuri de utilizatori, aplicația oferă posibilitatea de ‘Log Out’, prin accesul cărei se poate reveni la prima pagină a programului, login-area efectuându-se pe bază de user și parolă.
Capitolul 5. Concluzii
5.1 Obiective realizate
În cadrul acestui capitol și subcapitol se vor detalia obiectivele realizate în cadrul acestei lucrări. Aplicația a fost implementată cu trei nivele de acces : candidat, membru comisie admitere și administrator. Administratorul configurează aplicația introducând toate secțiunile din universitate, apoi facultățile de la fiecare secțiune și domeniile acelor facultăți. Astfel prin intermediul paginilor PHP, administratorul stabilește tipul concursului ce urmează să se desfășoare, precum și perioadele de înscriere, de examen, respectiv de confirmare a locurilor. De asemenea, s-au implementat pentru acest utilizator pagini pentru configurarea facultăților, prin intermediul acesteia putându-se efectua operații de adăugare, ștergere, dar și modificare în cazul în care se introduc informații eronate. Totodată, în atribuțiile acestui tip de utilizator se încadrează și configurarea domeniilor sau specializărilor, prin intermediul căreia acestea sunt introduse sau modificate prin intermediul unei interfețe prietenoase și ușor de utilizat. Apoi, acesta introduce secțiunile existente în cadrul universității, configurându-le prin intermediul completării probelor ce trebuie susținute pentru examenul de verificare a cunoștințelor sau pentru concursul de dosare. Aplicația se impune ca și utilitate prin faptul că toate aceste acțiuni sunt însoțite de posibilitatea vizualizării efectelor acestor acțiuni. Membrii comisiei sunt introduși în cadrul aplicației de către administrator, programul permițând căutarea după nume, modificarea și ștergerea înregistrării. În ceea ce privește candidatul, acesta poate accesa aplicația din orice locație, unde există conexiune internet pe baza unui user și a unei parole pe care o primește în momentul în care plătește taxa de înscriere, la depunerea dosarului cu actele necesare universității. Astfel se elimină riscul aglomerației de candidați de pe holurile universtății. Acesta când accesează programul trebuie să completeze datele, care se regăsesc în cadrul formularelor existente în contextul actual pentru candidați, dar acestea sunt organizate pe module: date personale și date școlare, cu posibilitatea vizualizării informațiilor introduse pentru verificarea corectitudinii lor, dar și cu facilitatea de a putea reveni până în momentul în care se termină perioada de înscrieri de a se logina pentru a modifica eventualele erori provenite în introducere. Astfel atingâdu-se obiectivul propus prin operativitatea introducerii datelor.
De asemenea, candidații pot accesa aplicația în perioada confirmărilor, când aceștia pot vizualiza situația notelor candidaților la admitere, nemaifiind necesară deplasarea până la sediul universității pentru obținerea acestor date, situație convenabilă candidaților care au domiciliul în altă localitate decât cea a desfășurării examenului, ceea ce impune automat și o economie de costuri.
Principalul obiectiv care a fost atins în cadrul aplicației de față este economia de timp în principal pentru cadrele didactice ale universității. Acest tip de utilizatori pot accesa aplicația pentru vizualizarea datelor candidaților din cadrul secțiunii din care fac parte, sau pentru toți candidații, dacă în aria resposabilității lor intră toate secțiunile. Aceste date sunt puse la dispoziția user-urului atât tabelar, aceștia putând accesa fiecare candidat în parte pentru vizualizarea datelor introduse, dar există și opțiunea de listing în format pdf a acestor informații sub forma formularelor existente la ora actuală în cadrul universității, astfel, aceste date putând fi verificate într-un mod facil. De asemenea programul are implementată o pagină pentru introducerea notelor, cu o opțiune de căutare, astfel încât fișele de examinare nu trebuie în prealabil sortate pentru ușurarea introducerii notelor și respectiv al calculului mediei pentru fiecare candidat. De asemenea, s-a implementat și o pagină pentru introducerea confirmărilor, existând posibilitatea de a se efectua automat distribuția după medii, atât în perioada prealabilă a confirmărilor, cât și după fiecare perioadă de confirmare.
Altă facilitate deținută de aplicație pentru această categorie de utilizatori este existența unei pagini care permite furnizarea de statistici, care poate fi adaptată în orice moment în funcție de necesitățile existente în momentul utilizării aplicației. Pentru relevarea aplicației, au fost implementate două posibilități de afișarea statisticilor, una care conține raportarea mediei obținute la absolvirea formei de învățământ anterioare și respectiv la media obținută la concursul de admitere, iar alta referitoare la distribuția pe medii în funcție de domeniul și secțiunea selectată. La aceste informații, membrii comisiei au acces în orice moment, fără restricții de timp. Ceea ce constituie un alt obiectiv, care a fost atins de aplicație, faptul că aceștia nu mai trebuie să aștepte finalizarea introducerii notelor, putând avea la dispoziție situații intermediare.
De asemenea aceștia au posibilitatea să creeze contul candidaților, asignând fiecăruia un user și o parolă, parolă care se stochează în baza de date în mod criptat. În cazul în care se dorește, aplicația poate fi utilizată chiar în momentul în care candidații se prezintă cu dosarele la înscriere, pentru crearea contului candidaților.
Totodată programul poate fi accesat și în momentul în care participanții vin pentru a plăti taxa de confirmare, pentru a putea fi introduse datele direct în program și nu ulterior, ceea ce înseamnă economie de timp.
Astfel, aplicația este implementată cu scopul, de a ușura activitatea cadrelor didactice, a personalului universității, dar și a candidaților, obiectiv care este atins.
Ca o propunere în ceea ce privește punerea în aplicare a acestui program o soluție ar fi utilizarea ambelor sisteme concomitent pentru a evita riscul pierderii de informații, situație des întâlnită în cazul implementării unui nou sistem în orice domeniu și instituție. De asemenea este imperios necesară și promovarea din timp a noului sistem, pentru ca participanții să aibă timpul necesar documentării aferente. Promovarea acestuia se poate face atât pe site-ul universității, cât și pe eventualele materiale promoționale utilizate de universitate pentru informarea despre multiplele posibilități de studiu pe care viitorii studenți le pot avea la momentul actual.
BIBLIOGRAFIE
Cătălin Drogoreanu (2006) Tutorial Complet CSS
Cătălin Drogoreanu (2006) Tutorial Complet PHP
Cătălin Drogoreanu (2006) Tutorial Complet HTML
Marius Ionică (2005) Tutorial Mysql
Valentin Ivașcu (2005) Inițiere în PHP&MYSQL
Ken J.Wagner (2002) Basic HTML Tutorial
ANEXA 1
Figura 3-4 Schema bloc a programului
ANEXA 2
a)Administratorul
Figura 3-3 Schema bloc funcțională pentru utilizatorul-administrator
ANEXA 3
b) Candidat
Figura 3-4 Schema bloc funcțională pentru utilizatorul-candidat
ANEXA 4
c) Comisie
Figura 3-5 Funcționare aplicație pentru utilizatorul-membru comisie
ANEXA 5
Figura 3-6 Detalierea structurii bazei de date
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Aplicatie Pentru Gestiunea Procesului DE Admitere In Invatamantul Superior (ID: 149244)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
