-
This project is a summary of this back-end trimester: authentication, NodeJS, MongoDB, Redis, pagination and background processing.
-
The objective is to build a simple platform to upload and view files:
-
User authentication via a token
-
List all files
-
Upload a new file
-
Change permission of a file
-
View a file
-
Generate thumbnails for images
- Read or watch:
- Node JS getting started['https://nodejs.org/en/learn/getting-started/introduction-to-nodejs']
- Process API doc['https://node.readthedocs.io/en/latest/api/process/']
- Express getting started['https://expressjs.com/en/starter/installing.html']
- Mocha documentation['https://mochajs.org/']
- Nodemon documentation['https://github.com/remy/nodemon#nodemon']
- MongoDB['https://github.com/mongodb/node-mongodb-native']
- Bull['https://github.com/OptimalBits/bull']
- Image thumbnail['https://www.npmjs.com/package/image-thumbnail']
- Mime-Types['https://www.npmjs.com/package/mime-types']
- Redis['https://github.com/redis/node-redis']
-
At the end of this project, you are expected to be able to explain to anyone, without the help of Google:
- how to create an API with Express
- how to authenticate a user
- how to store data in MongoDB
- how to store temporary data in Redis
- how to setup and use a background worker
- Allowed editors: vi, vim, emacs, Visual Studio Code
- All your files will be interpreted/compiled on Ubuntu 18.04 LTS using node (version 12.x.x)
- All your files should end with a new line
- A README.md file, at the root of the folder of the project, is mandatory
- Your code should use the js extension
- Your code will be verified against lint using ESLint
- Clone this repository and switch to the cloned repository's directory.
- Install the packages using npm install.
- Start the Redis and MongoDB services on your system and run npm run start-server
- SUFIAN HAMZA