A simulated distributed file storage system that chunks and replicates files across multiple nodes with real-time monitoring, fault tolerance, and file integrity validation.
- Frontend: React.js, Tailwind CSS
- Backend: Node.js, Express.js, MongoDB
- Real-Time: Socket.io
- Extra: SHA256
dsfs/
├── client/ (React frontend)
├── server/ (Node.js backend)
├── uploads/ (Chunk storage)
└── shared/ (common utilities)
- Node.js (v16 or higher recommended)
- MongoDB (running locally or accessible via URI)
cd dsfs/client
npm install
npm run devThis will start the React development server (Vite) on default port 5173.
cd dsfs/server
npm install
npm run devThis will start the backend server with nodemon on port 5000 (default).
- Start MongoDB if not already running.
- Run the backend server (
npm run devindsfs/server). - Run the frontend client (
npm run devindsfs/client). - Optionally, run individual node scripts to simulate nodes:
npm run node1
npm run node2
npm run node3- Upload Files: Use the file uploader on the frontend to upload files. Files are chunked and distributed across nodes.
- Monitor Nodes: The Node Dashboard displays real-time status of nodes, replication, and health.
- Download Files: Download files from the distributed system via the frontend interface.
- Replication Notifications: Get real-time toast notifications about replication status.
- Distributed file chunking and replication across multiple nodes
- Real-time monitoring of node health and file replication
- Fault tolerance with file integrity validation using SHA256
- React frontend with Tailwind CSS for a responsive UI
- Node.js backend with Express and MongoDB for storage and API
- Real-time communication using Socket.io