SecureFileManager is a Node.js application designed to manage files with support for image thumbnail generation, user/file statistics, and a queue-based worker for background processing. The system features a modular backend structure and utilizes MongoDB and Redis for persistent and queue data storage.
- RESTful API server built with Express
- Secure file upload and access
- User and file statistics endpoints
- Background worker for file/image processing and thumbnail creation
- Uses Bull queue for job management
- MongoDB as the primary database
- Redis for queue management
- Modern JavaScript tooling (Babel, ESLint)
- Node.js (>=12)
- MongoDB
- Redis
- Clone the repository:
git clone https://github.com/TG199/SecureFileManager.git cd SecureFileManager - Install dependencies:
npm install
- Configure environment variables (see
.env.exampleor.envfile).
- Start the API server:
npm run start-server
- Start the background worker:
npm run start-worker
- In a new terminal, hit the status endpoint (adjust port if the console shows a different one):
curl http://localhost:5000/statusserver.js: Entry point for the Express servermain.js: Initial connection and statistics test scriptworker.js: Background worker for image thumbnail processingcontrollers/,routes/,utils/: Modular code organization
- The API is exposed via Express and routes are organized under the
routesdirectory. - Key endpoints:
GET /status: Check application statusPOST /users: Create a new userPOST /files: Upload a fileGET /files/:id: Retrieve a file
- More documentation coming soon.
Pull requests and issues are welcome. Please open an issue to discuss any major changes first.
This project is licensed under the ISC License.