Skip to content

radueduard/unilink_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

README

Django REST Framework database

Functionalitate generala

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.

Descriere clase (ERD)

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 :)

Mod de utilizare

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)

  1. Pentru creearea unui cont admin trebuie rulat:
python3 manage.py createsuperuser

Pentru pornire trebuie rulata comanda

python3 manage.py runserver

Daca din orice motiv nu mere stergeti baza de date si toate migratiile si rulati:

python3 manage.py makemigrations
python3 manage.py migrate

Si reveniti la pasul 1.

Pentru testare recomandam cu mare drag aplicatia Postman #ad

URLs

/student/register (creeaza cont si logheaza utilizatorul)

/profesor/register

/login (returneaza token-ul userului logat)

/facultate

  • /create → “num”: int, “nume”: String
  • /delete/[id]
  • /get/[id]

/ani

  • /create → “num”: int, “facultate”: UUID4 → FK catre Facultate
  • /delete/[id]
  • /get/[id]
  • /get_from_facultate/[id_fac]

/serii

  • /create → “nume”: String, “an”: UUID4 → FK catre An
  • /delete/[id]
  • /get/[id]
  • /get_from_an/[id_an]

/grupe

  • /create → “num”: int, “serie”: UUID4 → FK catre Serie
  • /delete/[id]
  • /get/[id]
  • /get_from_serie/[id_serie]

/semigrupe

  • /create → “nume”: int, “grupa”: UUID4 → FK catre Grupa
  • /delete/[id]
  • /get/[id]
  • /get_from_grupa/[id_grupa]

/schedule

  • /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

/tema

  • /get_personal (returneaza temele pentru seria studentului)
  • /create
  • /delete/[id]

/examen

  • /get_personal (returneaza examenele pentru seria studentului)
  • /create
  • /delete/[id]

/notification

  • /get_personal (returneaza anunturile facute de profesorii, seminaristii si asistentii studentului)
  • /create_course_notif
  • /create_seminar_notif
  • /create_lab_notif

Restrictionari

  • 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.

Contribuiri

  • 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

Dificultati

  • lene (rezolvata prin apropierea vertiginoasa a datei deadline)

Front-End coming soon™️

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages