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.