Aplicatia noastra finala va include o parte de front-end si o parte de back-end. Partea de front-end nu este inca gata asa ca vom vorbi doar despre back-end momentan.
Ideea proiectului este o aplicatie in care sa poti vedea, in calitate de student, orarul, temele care urmeaza, examenele si ce anunturi ar mai putea face un profesor; iar in calitate de profesor acesta poate adauga teme, examene si anunturi.
Pentru a putea construi orarul intr-un mod cat mai modular am folosit Django REST Framework pentru a face o baza de date, cu serializatoare si requesturi de tip post, get si delete.
Universitatea are mai multe Facultati, fiecare facultate avand mai multi ani de studiu, fiecare an are mai multe serii formate din mai multe grupe ce se impart in semigrupe. Acestea reprezinta modelele pentru a determina de unde este un student, campuri ce sunt completate de utilizator atunci cand isi va creea cont.
Cat despre materii in sine, avem 3 modele Curs, Laborator si Seminar, fiecare cu profesorul/ seminaristul/ asistentul aferent. Acestea pot fi incluse in ceea ce noi am numit un Schedule. Un Schedule reprezinta, practic, un Interval de timp de 2 ore, intr-o anumita Sala, intr-o anumita Saptamana, cu o anumita Materie (Curs/ Laborator/ Seminar) si o anumita Serie/ Semigrupa/ Grupa.
Numele aplicatiei "grupuri" este o greseala la fel ca mine si ne este prea frica sa ii dam refactor :)
Trebuie instalat un Virtual Environment cu pachetele django, djangorestframework, django-course-headers, si altele in caz ca am uitat vreunul :) (daca e vreunul scris gresit e vina lui Eduard Radu)
- Pentru creearea unui cont admin trebuie rulat:
python3 manage.py createsuperuserPentru pornire trebuie rulata comanda
python3 manage.py runserverDaca din orice motiv nu mere stergeti baza de date si toate migratiile si rulati:
python3 manage.py makemigrations
python3 manage.py migrateSi reveniti la pasul 1.
Pentru testare recomandam cu mare drag aplicatia Postman #ad
- /create → “num”: int, “nume”: String
- /delete/[id]
- /get/[id]
- /create → “num”: int, “facultate”: UUID4 → FK catre Facultate
- /delete/[id]
- /get/[id]
- /get_from_facultate/[id_fac]
- /create → “nume”: String, “an”: UUID4 → FK catre An
- /delete/[id]
- /get/[id]
- /get_from_an/[id_an]
- /create → “num”: int, “serie”: UUID4 → FK catre Serie
- /delete/[id]
- /get/[id]
- /get_from_serie/[id_serie]
- /create → “nume”: int, “grupa”: UUID4 → FK catre Grupa
- /delete/[id]
- /get/[id]
- /get_from_grupa/[id_grupa]
- /get_personal (returneaza orarul personalizat al userului autentificat)
- /include (adauga un schedule din alt orar in orarul personal)
- /create
- /delete/[id]
- /exclude (sterge un schedule din orarul personal)
- /create
- /delete/[id]
- /curs/create
- /seminar/create
- /laborator/create
- /get_personal (returneaza temele pentru seria studentului)
- /create
- /delete/[id]
- /get_personal (returneaza examenele pentru seria studentului)
- /create
- /delete/[id]
- /get_personal (returneaza anunturile facute de profesorii, seminaristii si asistentii studentului)
- /create_course_notif
- /create_seminar_notif
- /create_lab_notif
- Pentru a putea creea un nou Schedule este nevoie sa fii profesorul cursului pentru care creezi schedule-ul. Acelasi lucru se aplica si pentru laboratoare si seminarii.
- Notificarile pot fi trimise doar de profesor/ seminarist/ asistent si se sterg dupa o saptamana de la creare.
- Pentru a primi / modifica schedule-ul personalizat este nevoie sa fii autentificat in calitate de student.
- Alexe Victor Stelian → Sistem de Notificari si Anunturi
- Ionescu Gabriel Lucian → Sistem de Login si Autentificare
- Popa Sorin Alexandru → Sistem de planificare Teme si Examene
- Radu Eduard Andrei → Sistemul de Orar
- lene (rezolvata prin apropierea vertiginoasa a datei deadline)