A simple cloud storage web application. 3rd homework project for the Basics of Information Systems course at the University of Ljubljana, Faculty of Computer and Information Science. It served to introduce us to server-side development with Node.js.
It allows the user to upload and download files similarly to DropBox. Additionally, the server code contains an automatic test which we used to analyse the efficiency of the Cloud9 online IDE (where we developed and ran the app in 2016).
Developed with Javascript, Node.js, HTML and CSS.
Following are the homework instruction in the Slovenian language.
3. vaje pri predmetu Osnove informacijskih sistemov (navodila)
Na GitHub je na voljo javni repozitorij https://github.com/lovre/fribox, ki vsebuje nedelujočo spletno storitev FriBox. FriBox predstavlja napredno storitev za oblačno shranjevanje in deljenje datotek. Kot izvrstna spletna aplikacija posega na izjemno konkurenčno področje obstoječih tovrstnih rešitev. V okviru vaj ustvarite kopijo repozitorija ter popravite in dopolnite obstoječo implementacijo tako, da bo končna aplikacija z vsemi delujočimi funkcionalnostimi izgledala kot na sliki spodaj. Med delom smiselno uveljavljajte spremembe v lokalnem in oddaljenem repozitoriju!
-
Na GitHub z uporabo funkcije Fork ustvarite lastno kopijo javnega repozitorija https://github.com/lovre/fribox v okviru katere boste opravljali vaje. V razvojnem okolju Cloud9 uvozite pravkar ustvarjen GitHub repozitorij z uporabo funkcije Clone to edit ter privzetimi nastavitvami.
-
V JSON datoteki package.json aplikaciji dodelite odvisne knjižnice mime, formidable in fs-extra ter jih naložite z ukazom
npm install
. V Node.js aplikaciji FriBox.js popravite implementacijo tako, da le-ta zažene strežnik na privzetih vratih. Nato zaženite aplikacijo FriBox.js z ukazomnode FriBox.js
ter preverite osnovno delovanje. -
V JavaScript skripti skripta.js popravite implementacijo tako, da se pri nalaganju strani izvede funkcija
pridobiSeznamDatotek()
, ki pridobi seznam datotek iz strežnika. Popravite tudi samo implementacijo funkcije tako, da dejansko pošlje zahtevek za seznam datotek spletni storitvi/datoteke
. -
V JavaScript skripti skripta.js popravite implementacijo tako, da bo izpis seznama datotek prilagojen velikosti posamezne datoteke. Izpis velikosti datotek naj bo v B v kolikor je velikost datoteke manjša od KiB, v KiB v kolikor je velikost datoteke manjša od MiB, v MiB v kolikor je velikost datoteke manjša od GiB itd.
-
V Node.js aplikaciji FriBox.js popravite implementacijo tako, da se ob klicu spletne storitve
/poglej
odjemalcu posreduje datoteka z uporabo funkcijeposredujeStaticnoVsebino()
. Nato v JavaScript skripti skripta.js popravite implementacijo tako, da vsem datotekam dodate gumbPoglej
, ki z uporabo spletne storitve/poglej
izbrano datoteko prikaže v novem zavihku. -
Node.js aplikaciji FriBox.js dodajte implementaciji dveh funkcij za posredovanje HTTP napak
404
in500
. Funkciji uporabite na ustreznih mestih v aplikaciji, ki so označeni s komentarjem//Posreduj napako
. -
V Node.js aplikaciji FriBox.js dodajte implemetacijo funkcije
izbrisiDatoteko()
, ki z uporabo funkcijefs.unlink()
izbriše posredovano datoteko ter vrne ustrezen odgovor. Nato v JavaScript skripti skripta.js poiščite napako v implementaciji zaradi katere je moč izbrisati le prvo datoteko na strani. Popravite implementacijo tako, da bo moč izbrisati poljubno datoteko ter preverite delovanje. -
(za hrabre) V Node.js aplikaciji FriBox.js pri nalaganju datotek dodajte preverjanje ali datoteka z enakim imenom že obstaja. V tem primeru posredujte HTTP napako
409
.