An app that allows users to upload documents and get them peer reviewed by other users.
The system should include at least three documents, each covering a different topic and containing relevant information to be uploaded for each user. Some of the uploaded documents should have already gone through the approval process and include comments and rating from other users. Some of the documents should have been flagged as requiring amendments.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd
:
user1
user2
user3
The system should require users to log in, if they are not they should be shown the login screen. If they are logged in they should see the homepage which displays a link or button Add document. This should take the user to the Add Document screen where they can upload a document and provide important information.
The screen should ask for the following:
- The title of the document.
- A multi-line description supporting markdown formatting.
- The document category: article, story, report, other.
- An option for the user to pick a document to upload (this should only allow them to upload PDF files.
In addition to the information the user enters, the system should also automatically add:
- The date and time of the upload.
- The username of the person uploading.
- The status which should be set to uploaded.
To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using.
Display list of all uploaded documents ordered by date with the oldest upload at the top. Include only the following:
- The title.
- The date uploaded in for format DD/MM/YYYY.
- The status (could be indicated using RAG colours or icons).
- A link to the document (which should either download or open in a different tab depending on the platform).
The page should be split into two sections, one contains the documents uploaded by the logged-in user and the other contains those from other users. You can organise this however you wish (blocks, tabs, etc) but it must clearly distinguish between these.
There should be a view link or button next to each document in the list. This should take the user to a Document Review screen. This should include the following:
- The document status.
- The document category.
- The embedded document (this should occupy enough of the screen to be readable).
- A download link or button should the user wish to view the document using a different piece of software.
- The title of the document.
- The formatted multi-line description.
- Any comments and ratings from other users (if these are available).
If the document is not one uploaded by the logged-in user and the status is uploaded the page should also display:
- A multi-line feedback box supporting markdown formatting.
- A slider allowing the user to provide a rating of between 0 and 5.
- A checkbox indicating whether the document requires amendments.
- A Submit feedback link or button.
Submitting this should change the status of the document to either passed or amendments depending on whether the checkbox has been selected or not. Only one user can provide feedback.
The Document Review screen should now be modified as follows.
If the document was added by the logged-in user and the status set at amendments, the Document Review screen should prompt them to upload a new version of the file.
The status should now be set to revised.
If another user views the Document Review screen they should see:
- The items from feature 3 including the initial feedback correctly formatted and the original rating.
- The latest version of the document should be embedded.
- There should be clearly labelled links or buttons to download all versions of the document.
The user should now be able to provide feedback as before:
- A multi-line feedback box supporting markdown formatting.
- A slider allowing the user to provide a rating of between 0 and 5.
- A checkbox indicating whether the document requires amendments.
- A Submit feedback link or button.
If they check the box, the status remains at amendments meaning the original user can upload yet another version and the process repeats...