Il seguente progetto contiene il backend di un sito di e-commerce, ed include le seguenti componenti:
- un modello per i customers, ovvero coloro che acquistano i prodotti in vendita
- un modello per i fornitori, ovvero coloro che registrano nel sito i prodotti da vendere
- un modello per i trasportatori, ovvero coloro che consegnano i prodotti ai customer
- dei server ai quali i customers si connettono per interagire con il sistema
- dei server ai quali i fornitori si connettono per interagire con il sistema
- dei server ai quali i trasportatori si connettono per interagire con il sistema
- dei test generator per le operazioni del customer
- dei test generator per le operazioni dei fornitori
- dei test generator per le operazioni dei trasportatori
- un database per i dati
- un database per i log di sistema
- monitor per proprietà funzionali e non funzionali
All'interno della repository è presente una relazione, contenente dettagli implementativi sull'architettura del progetto.
Per compilare il progetto sono necessari i seguenti prerequisiti:
g++makePostgreSQLRedishiredis(https://github.com/redis/hiredis)PostgreSQL Libraries
Il progetto è testato su Ubuntu, ed è possibile installare i prerequisiti menzionati è possibile eseguire lo script seguente:
sh install.shUna volta clonata la repository eseguendo
git clone https://github.com/aflaag/e-commerce.gitè possibile compilare il database e proggrammi del progetto attraverso il seguente script:
sh compile.shUna volta che la compilazione è andata a buon fine, è possibile eseguire i vari programmi del progetto mediante il seguente script:
sh run.shinoltre, per terminare tutti i vari processi del progetto è sufficiente eseguire lo stesso script attraverso la seguente flag:
sh run.sh --kill-
add-product
- code:
ProductCode - name:
StringS - description:
StringL - price:
RealGEZadd-product code banana name yoyo description ahahahaha##baba price 341.3243
- code:
-
add-restock
- quantity:
IntGZ - supplier:
StringS - product:
ProductCodeadd-restock quantity 10 supplier Supplier1 product P1
- quantity:
-
add-supplier
- business_name:
StringSadd-supplier business_name Supplier5
- business_name:
-
update-product
- code:
ProductCode - description:
StringLupdate-product code P1 description ho##capito
- code:
-
view-statistic
- supplier:
StringSview-statistic supplier Supplier1
- supplier:
-
take-purchase-delivery
- courier:
StringS - purchase:
integer - deliverycode:
DeliveryCodetake-purchase-delivery courier courier1 purchase 1 deliverycode aifjifa
- courier:
-
update-assigned-delivery
- deliverycode:
DeliveryCode - start:
timestamp - lost:
timestamp - end:
timestampupdate-assigned-delivery deliverycode bho2 lost 2024-02-29##19:41:42
- deliverycode:
-
update-refund-request
- refund:
integer - switch
- option
- courier:
StringSupdate-refund-request courier UPS refund 46
- courier:
- option
- refund_start:
timestamp - refund_end:
timestampupdate-refund-request refund 1 refund_end 2024-03-02##11:05:42.660825
- refund_start:
- option
- refund:
-
view-available-purchase
view-available-purchase
-
add-address
- email:
Email - zip_code:
ZipCode - street_number:
StreetNumber - street:
StringM - city:
IntGZadd-address email [email protected] zip_code 2C4A street_number 2B street aldo city 1
- email:
-
add-card
- number:
CardNumber - email:
Emailadd-card email [email protected] number 007865432872
- number:
-
add-curtomer
- name:
StringS - surname:
StringS - email:
Email - phone-number:
PhoneNumberadd-customer name user surname resu email [email protected] phone-number +393714393392
- name:
-
add-purchase [order matters]
- fare:
RealGEZ - customer:
Email - card:
CardNumber - zip_code:
ZipCode - street:
StringM - street_number:
StreetNumber - product:
ProductCode - quantity:
IntGZ - product:
ProductCode - quantity:
IntGZadd-purchase fare 0.95 customer [email protected] card 007865432872 zip_code 2C4A street aldo street_number 23B product P1 quantity 2 $\dots$ quantity 4 product P2
- fare:
-
add-rating
- product:
ProductCode - customer:
Email - stars:
Starsadd-rating product P1 customer [email protected] starts 4
- product:
-
add-refund-request
- assigned_delivery:
DeliveryCode - product:
ProductCode - quantity:
IntGZ - product:
ProductCode - quantity:
IntGZadd-refund-request assigned_delivery 3321AD34 product P1 quantity 2 ... quantity 4 product P2
- assigned_delivery:
-
delete-purchase
- purchase:
IntGZdelete-purchase purchase 1
- purchase:
-
search-products
- product_name:
StringSsearch-products product_name a
- product_name:
-
view-order
- purchase_id:
IntGZview-order purchase_id 2
- purchase_id:
-
view-refund
- refund_id:
IntGZview-refund refund_id 1
- refund_id: