A robust cloud backup system that serves as a platform for users to backup, manage, and stream their files.
-
User Account Creation
- Email address
- Password
- Full name
-
File Management
- Upload files up to 200mb
- Download uploaded files
- Create folders to organize files
-
Admin User Type
- Manage the content uploaded by users
- Mark pictures and videos as unsafe
- Unsafe files are automatically deleted
-
Media Streaming
- Users can stream videos and audio files
-
File Compression (Work in progress)
- NOTE: Attempted implementation but faced some package issues. Will be resumed post-review.
-
File History
- Keep a history of all file versions
-
Security
- Revokable session management
-
Admin Review System
- Multiple admin reviews are required before a file is marked for deletion
- NodeJs with TypeScript & Express
- PostgreSQL for data management
- Redis for caching
- Docker for containerization
- Postman for API documentation
- S3 for file storage
- Unit tests for ensuring the functionality
-
Clone this repository.
git clone https://github.com/audrey-roe/cloud-test.git
-
Install dependencies.
npm install
-
Run the application.
npm start
-
You can test the application, just run
npm test
API endpoints are well-documented in a Postman collection. Link to Postman collection
The API is hosted live at Hosted API URL
Completed features as part of the "Backend Engineer Test". All features under "Simple Mode" have been successfully implemented. For a list of additional tasks undertaken beyond Simple Mode, refer to the attached document.
Feel free to fork this project and raise a PR for any enhancements.