Hi there,
I need a system made which allows my client to be able to share files with their business customers. I have a specification written and explained below:
Simply put, the admin logs in and uploads files, and the users can download them. However there is one main part to understand. A file can be assigned as either 'internal' or 'external'.
If the file is 'internal' then the business customers can simply login and download the file.
If the file is 'external' then things get more complicated. Firstly, there will be several other websites that the client uses. If the file is external, then the admin will also assign the file to one of these other websites - we call them 'satellite sites'. Then a link is generated for the URL at the satellite site, e.g. satellite site is: [login to view URL]
So a new file is uploaded as external and at '[login to view URL]' so a URL will be generated e.g. [login to view URL](randomid)
Then the admin can give this link to users and they will go to the satellite site and it will link to the main site and download the file.
## Deliverables
MORE DETAILED SPEC:
The site will be made in PHP/MySQL. You will have to create the design and code it using CSS and WC3 compliant code.
There is the login page where users login. There are 2 types of users, normal and admin. There is no sign-up and no forgotten password. A high level of security must be used throughout the site (i.e. md5 etc).
1) Normal users: Once logged in, normal users use the drop down navigation to select a category (there may be unlimited categories and child categories) and after selecting a category, they go to a new page where they can view files in this category and then download it. When they download the file, a log is kept saying which user downloaded the file and also how many times the file has been downloaded overall.
They also need to be able to change their password.
2) Admins can:
Add/edit/delete users: fields necessary are name, email, password.
Add/edit/delete categories (including adding parent categories)
Add/edit/delete satellite sites - the url's used for sharing external files.
Be able to view logs/statistics of downloads.
-------------------------
Uploading files:
Files may be quite large so we need some sort detailed progress bar to show the progress of the upload taking place.
For internal files, category, name and file are the fields needed.
For external files, satellite site, name and file. However a random string is generated which is used for downloading (see below).
After creating an external file, a URL will be generated, this will use the satellite site + random string ID. e.g. [login to view URL]
When the user clicks on the link, they will download the file (a log will be kept of number of downloads).
This '[login to view URL]' file needs to be created so that we can put it on any satellite site and it will connect to the main site to find the data.