Anonymous Educational Website -- 3

Job ID: 31105178

Budget: $750 – $1,500 USD

Our project is similar to course hero, and has adjacent functionality. Users are expected to sign-up, log-in, and have payment options through payment gateways in the MENA Region, specifically Saudi Arabia. The project allows users to search for and upload documents, categorize them based on [Document Type, University, Course Type] to help users search for documents via category (See attached image "File Upload.png"). The Website uses a token-based system, where tokens are issued upon login, and are used to process requests at the resource server. Each token has an expiry date, after which users are required to login again to verify their identity

The Service provided by the website is subscription based, where users who are subscribed can view all documents, while users who aren't will have limited access to documents. Users who are not subscribed are expected to have the following functionalities:

1- View limited amount of documents
2- Subscribe to gain access to documents
3- If a user does not want to subscribe, they can pay a one-time fee (to be determined later) to unlock the file.


The backend is to be developed using Node.js and Express.js, while the front-end is open-ended, and any technology may be used to design and implement it, even if Vanilla JS and HTML/CSS, however it must be compatible with Mobile Phones. We have previously worked on a simple authorization server using Node.js and Express.js, found here: https://github.com/8BallAhmed/Auth_Server


The Website is to have the following functionalities:

1- Register, Login
2- Upload and Categorize Documents as specified above, categorization is mandatory (only if logged in)
3- Search for documents either by name, or based on the categorization specified above. Display documents in a grid-like manner in each page. Whenever a document item is clicked, the user is redirected to a page where an Embedded File Viewer is used to browse the file.
4- Subscribe to view all documents
5- If not subscribed, prompt to subscribe or pay one-time fee to view document
6- The Website MUST support RTL, as it is mainly directed towards an Arabic-speaking audience
7- For unsubscribed users, the Website must show a small snippet of the locked file, as incentive to subscribe or pay.
8- Documents are to have a Thumbs Up / Thumbs down button, and a calculated ratio based on these two buttons, so users can be aware of the document rating


Please note that the development process should be modular, and decoupled. We do not want the front-end to be tightly coupled with the back-end, as this might make it difficult to implement more features down the line. Mainly, we would like the System to be JSON Based: JSON API in the back-end, and JSON Parsing in the front-end.
Related categories: JavaScript Website Design Node.js Express JS RESTful