summaryrefslogtreecommitdiff
path: root/README.md
blob: e894cd8eee09d793612facaaa38f4f7fee113d78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
a basic file uploading website demonstration, built on top of laravel. 

requirements phase 1:
- has a page that presents a UI to allow the user to select some files
- there is a no-javascript version and a javascript version that uses chunking
- user can upload multiple files or just one
- after upload, a url to the file(s) is shown to the user, so that anyone can download
- all of the uploaded files can be browsed
- errors are reported appropriately, and adequate logging exists
- file size limit is defined in the laravel config
- file type restriction can be defined in laravel project config. 
- file names remain the same, unless would be overwrite a different file, in which case append epoch seconds.
- file expiration configurable
- rate limiting per ip address
- all of the controller routes return either json or html, depending on the request parameter "response_type" ('h' or 'j')

phase 1.5
- there is a gallery page view that presents images and videos in kind of a gallery layout, and a slideshow when user clicks one of them. 
- instead of downloading files right away, allow for the browser to render them if possible (like images, videos, pdfs)

phase 2:
- can bind to different address through command line or dotfile or env var
- https using letsencrypt key defined at a path defined in config. 
- Database integration to e file metadata
- File model and controller
- IP address tracking and association with uploads
- Page visit tracking by IP
- Enhanced analytics and reporting- there is a database to store metadata of the files