This project is a summary of the back-end trimester at ALX School. It focuses on building a simple platform for uploading and viewing files. The project covers various topics such as authentication, NodeJS, MongoDB, Redis, pagination, and background processing.
The ALX Files Manager includes the following features:
- User authentication via a token
- Listing all files
- Uploading a new file
- Changing permissions of a file
- Viewing a file
- Generating thumbnails for images
By completing this project, you will gain the following skills:
- Creating an API with Express
- Authenticating a user
- Storing data in MongoDB
- Storing temporary data in Redis
- Setting up and using a background worker
To work on this project, you will need the following:
- Allowed editors: vi, vim, emacs, Visual Studio Code
- Node (version 12.x.x)
- Ubuntu 18.04 LTS
To get started with the ALX Files Manager, follow these steps:
- Clone the GitHub repository: alx-files_manager
- Install the required dependencies by running
npm install
- Start the server by running
npm run start-server
- Access the API endpoints using the provided routes
For more information on the technologies used in this project, refer to the following resources:
- Node JS getting started
- Process API doc
- Express getting started
- Mocha documentation
- Nodemon documentation
- MongoDB
- Bull
- Image thumbnail
- Mime-Types
- Redis
To ensure the reliability of the ALX Files Manager, comprehensive tests have been implemented. These tests cover various endpoints and functionalities of the application. You can find the tests in the tests/
directory of the project.
The ALX Files Manager project provides a hands-on learning experience in building a back-end application using NodeJS, MongoDB, Redis, and other related technologies. By completing this project, you will gain valuable knowledge and skills in developing robust file management systems.
Enjoy coding and have fun building your own file manager!