Capstone Internship Project - VIT 2026
Vault is a robust, secure, and scalable file storage and sharing application built with a modern microservices architecture. It allows users to securely upload, manage, and share files, featuring role-based access control, storage quotas, and a responsive user interface.
- Secure Authentication: JWT-based stateless authentication.
- Role-Based Access Control (RBAC): Distinct roles for Users and Admins.
- Password Hashing: Industry-standard Bcrypt hashing for credentials.
- Smart Storage: Upload, download, and organize files into folders.
- Recycle Bin: Soft-delete functionality with restore capabilities.
- Storage Quotas: Enforced storage limits per user.
- File Preview: Support for image, video, and document previews.
- File Sharing: Share files with other users or via public links.
- Access Control: Set visibility (Public/Private) and expiration for shared links.
- System Analytics: Real-time stats on storage usage, user count, and file traffic.
- User Management: Monitor and manage user accounts and quotas.
- Global File View: Administrative oversight of all stored content.
The project follows a Microservices Architecture where each service has a distinct responsibility, communicating via gRPC for internal requests and exposing a REST API through an API Gateway.
- API Gateway: Entry point for all client requests, handling routing and HTTP/REST to gRPC conversion.
- Auth Service: Handles user registration, login, and token generation.
- Storage Service: Manages file metadata (Postgres) and binary content (MinIO).
- Share Service: Manages file sharing logic and permissions.
- Infrastructure:
- PostgreSQL: Relational database for metadata.
- MinIO: S3-compatible object storage for file data.
- Docker: Containerization for all services.
- Framework: React 19 + TypeScript + Vite.
- Styling: Tailwind CSS v4 + Radix UI (Shadcn-like components).
- State Management: React Hooks.
- Routing: React Router v7.
- Forms: React Hook Form + Zod validation.
- Docker Desktop (Running)
- Git
-
Clone the Repository
git clone <repository-url> cd Vault-App-master
-
Start the Backend Services The entire system is containerized. You only need Docker Compose.
cd backend docker-compose up -d --buildThis will start: API Gateway, Auth Service, Storage Service, Share Service, PostgreSQL, MinIO, and an Nginx reverse proxy.
-
Access the Application
- Frontend: http://localhost
- MinIO Console: http://localhost:9001 (User:
smartvaultadmin, Pass:smartvault@123)
- Admin User: You may need to manually create an admin user or check the database seeding scripts if available.
- Regular User: Sign up directly via the "Register" page on the frontend.
Vault-App-master/
├── backend/ # Backend Microservices
│ ├── api-gateway/ # REST API Entry Point
│ ├── auth-service/ # Authentication Logic
│ ├── storage-service/ # File & Folder Management
│ ├── share-service/ # Sharing Logic
│ ├── infra/ # Shared Proto files & DB Schemas
│ ├── nginx/ # Reverse Proxy Configuration
│ └── docker-compose.yaml # Orchestration
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── api/ # API Client & Endpoints
│ │ ├── components/ # UI Components
│ │ ├── pages/ # Application Pages
│ │ └── types/ # TypeScript Definitions
│ └── package.json
└── README.md # Project Documentation
-
Uploads Failing?
- Ensure the
storage-serviceis running. - Check MinIO dashboard (
http://localhost:9001) to see if thesmart-vaultbucket exists. (The service should auto-create it). - Check logs:
docker-compose logs -f storage-service.
- Ensure the
-
Login Issues?
- If you manually inserted a user into the DB, ensure the password is Bcrypt hashed. Plain text passwords will fail.
This project is licensed under the MIT License.