Skip to content

yashnayan8795/Secure-vaults-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure-Vault - Secure File Storage System

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.

Project Status License


🚀 Key Features

🔐 Authentication & Security

  • 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.

📂 File Management

  • 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.

🤝 Collaboration

  • File Sharing: Share files with other users or via public links.
  • Access Control: Set visibility (Public/Private) and expiration for shared links.

🛠️ Admin Dashboard

  • 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.

🏗️ Technical Architecture

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.

Backend (Go)

  • 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.

Frontend (React)

  • 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.

🛠️ Getting Started

Prerequisites

  • Docker Desktop (Running)
  • Git

📦 Installation & Setup

  1. Clone the Repository

    git clone <repository-url>
    cd Vault-App-master
  2. Start the Backend Services The entire system is containerized. You only need Docker Compose.

    cd backend
    docker-compose up -d --build

    This will start: API Gateway, Auth Service, Storage Service, Share Service, PostgreSQL, MinIO, and an Nginx reverse proxy.

  3. Access the Application

🧪 Default Accounts

  • 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.

📂 Project Structure

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

🔧 Troubleshooting

  • Uploads Failing?

    • Ensure the storage-service is running.
    • Check MinIO dashboard (http://localhost:9001) to see if the smart-vault bucket exists. (The service should auto-create it).
    • Check logs: docker-compose logs -f storage-service.
  • Login Issues?

    • If you manually inserted a user into the DB, ensure the password is Bcrypt hashed. Plain text passwords will fail.

📜 License

This project is licensed under the MIT License.

About

File storage and sharing application built with a modern microservices

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors