CloudFileSystem is a robust, resilient distributed file storage simulation platform designed to demonstrate advanced distributed systems concepts. It integrates a secure Java Spring Boot backend, a modern React frontend, and a Python-based Machine Learning service for predictive scaling.
- Distributed Architecture: Simulates file storage across multiple nodes with automated replication and fault tolerance.
- Predictive Auto-Scaling: Utilizes a Random Forest ML model to predict system load 30 minutes in advance and proactively provision resources.
- Modern Dashboard: A responsive, industry-standard React/TypeScript UI for managing files, users, and viewing real-time system metrics.
- Enterprise Security: Role-Based Access Control (RBAC) with JWT authentication and secure file permissions.
- DevOps Ready: Fully containerized with Docker, orchestrated with Docker Compose, and CI/CD ready with Jenkins pipelines.
The system operates on a microservices-inspired architecture:
graph TD
User[User] -->|HTTPS| Frontend[React Dashboard]
Frontend -->|REST API| Backend[Spring Boot Backend]
Backend -->|JDBC| DB[(Database)]
Backend -->|I/O| Nodes[Storage Nodes]
Backend -->|JSON| ML[ML Predictor Service]
ML -->|Model| Prediction[Load Prediction]
Backend -.->|Scale Up/Down| Nodes
| Module | Description |
|---|---|
backend |
Spring Boot application handling core logic, file management, and APIs. |
frontend |
React + Vite application providing the user interface. |
ml-service |
Python Flask service for load prediction and data analysis. |
ops |
Infrastructure as Code (IaC), Docker Compose, and Jenkins configurations. |
docs |
Comprehensive documentation and setup guides. |
- Java JDK 17+
- Node.js 18+
- Python 3.9+
- Docker (Optional, for containerization)
cd backend
./mvnw clean install
java -jar target/CloudFileSystem-1.0-SNAPSHOT.jarThe backend runs on http://localhost:8080.
cd frontend
npm install
npm run devThe dashboard runs on http://localhost:5173.
cd ml-service
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Generate Data & Train Model (Required on first run)
python generate_data.py
python train_model.py
python app.pyThe ML service runs on http://localhost:5000.
- Complete Setup Guide: Detailed step-by-step installation instructions.
- ML System Setup: Deep dive into the predictive scaling engine.
- Future Enhancements: Roadmap for the project.
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.