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.example
or.env
file).
- 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/status
server.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
routes
directory. - 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.