DeliveryPlanner
+ + +Cerinta:
++ Sa se realizeze un server de procesare a comenzilor online plasate de clienti. + Acest server va analiza o comanda si va stabili cu ajutorul algoritmului + ‘Multi-Depot-Vehicle-Routing’ traseul cel mai scurt pentru un camion de a + colecta produsele de la un depozit/mai multe depozite si a le livra la client. + +
+Tehnologii:
+-
+
- Server java; +
- Baza de date mySql; +
- Interfata server pentru client/admin realizata cu JavaFX; +
- Fisiere JSON pentru comunicarea pe retea. +
Clasificarea utlizatorilor
++ Un utilizator va putea accesa resursele din server numai prin intermediul unei aplicatii. + Exista doua tipuri de aplicatii cu diferite functionalitati, aceste tipuri fiind descrise + in detaliu in sectiunea 'Interfata'. +
++ Utilizatorul 'User' este cel care se foloseste de aplicatie pentru a plasa comenzi catre server. + Acestuia i se ofera pe interfata intreaga gama de produse disponibila, acesta urmand sa faca o + selectie si sa o trimita la server. +
++ Utilizatorul 'Admin' are acces la toate informatiile stocate pe server, incluzand produsele, + depozitele, toate comenzile facute de utilizatori 'User' cat si rutele pentru a onora comenzile. + Acesta are capacitatea de a insera, modifica, extragere si stergere de informatii din server. +
+Descriere interactiuni
+1. Plasare comanda
+
+ + Utilizatorul se va conecta la server folosind o aplicatie creata pentru a accesa + produsele disponibile si pentru a plasa o comanda. Dupa ce utilizatorul a selectat + produsele, incluzand cantitatea, dorite, aplicatia va prelua informatiile respective + si le va converti intr-un fisier JSON. Acest fisier va fi trimis in retea catre server, + care acesta va stoca fisierul in folder-ul denumit 'Orders'. +
+2. Modificare baza de date
++ Aceasta sectiune descrie cazul in care un admin trebuie sa altereze + informatii din baza de date. In primul rand trebuie sa prezentam + structura bazei de date. +
+
+ + Baza de date este formata din 3 tabele: 'Deposit', 'Product' si 'Prod_In Depo'. Fiecare tabel + va stoca informatii referitoare la un produs, un depozit si produsele dintr-un anumit depozit. + Tabelului 'Prod_In_Depo' ne ajuta sa asignam la un ID_Deposit mai multe ID_Product astfel incat + firma sa poata tine evidenta produselor care se afla intr-un depozit. +
++ Utlizatorul 'Admin' poate insera, + modifica sau sterge valori din aceste trei tabele folosindu-se de a doua versiune de aplicatie, dedicata + utilizatorilor din cadrul firmei, care contine functiile necesare pentru a efectua operatiile enuntate. +
+3. Generare rute pentru livrarea produselor
+
+ + Pe server este implementat algoritmul pentru determinarea celei mai scurte rute pentru a colecta toate produsele + necesare pentru livrare. Acest algoritm va rula numai cand un utilizator 'Admin' va selecta un fisier/un set comenzi + pentru livrare. Astfel, garantam faptul ca drumul cel mai scurt va fi calculat cu cele mai actuale informatii din + baza de date. +
+