Skip to content

aryamanchandra/vault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project summary

Balkin Vault is a full‑stack, personal cloud storage and sharing app. The frontend (Next.js) provides drag‑and‑drop uploads, duplicate‑name resolution, previews (PDF/image/audio), powerful search with filters, starred/recent views, and rich sharing (public links and specific users). The backend (Go + gqlgen GraphQL on Gin) stores metadata in Postgres and file objects in MinIO (S3‑compatible), issues presigned URLs for efficient browser uploads/downloads, enforces MIME policy and per‑user quotas, and tracks activities/analytics. CI runs Go unit tests and Playwright E2E, and Docker Compose powers both local dev and production deployment.

Demo video

Watch the demo

Where to find documentation

  • Getting started & tests: docs/testing-documentation/testing.md
  • Architecture overview: docs/architecture-documentation/architecture.md
  • Graphql docs: docs/api-documentation/graphql-schema.md
  • REST/OpenAPI reference: docs/api-documentation/openapi.yaml
  • Features (user perspective): docs/features/features(user-perspective).md
  • Database docs: docs/database-documentation/database-schema.md
  • Backend specifics and commands: backend/README.md
  • Frontend specifics and commands: balkindid-vault-frontend/README.md

What you can do in Vault

  • Sign in securely

    • Use Google Sign‑In. Your session stays secure with HttpOnly cookies.
  • Upload files effortlessly

    • Drag and drop anywhere on the page; a clear full‑screen overlay guides you.
    • See live progress with upload notifications; errors are surfaced with toasts.
    • Duplicate names are handled before upload: choose Overwrite or create a Copy (auto‑rename).
  • Organize your files

    • Create folders and keep a personal root folder.
    • Move files with drag‑and‑drop between folders.
    • Select multiple items for bulk delete.
  • Find things fast

    • Quick search across your files (debounced for speed).
    • Filter and sort with easy chips and controls.
    • Long lists support “Load more” pagination.
  • Share the way you want

    • Make a file or folder public with a share link you can toggle on/off anytime.
    • Share privately with specific people by email (they’ll see it only if granted).
    • Public share pages let recipients preview/browse shared files and folders, and download when allowed.
  • Stay private by default

    • Items are private unless you explicitly share them.
    • You control specific access lists and public/private status.
  • Preview and download

    • Preview PDFs, images, and audio inline (when reasonably sized); otherwise download the original.
    • One‑click “Open” or “Download” from lists and details.
  • Favorites and recent

    • Star important items to see them in the Starred view.
    • Recently Accessed shows what you opened/downloaded most recently.
  • Details at a glance

    • Open the details panel to view metadata, size, type, created date, and sharing state.
    • Add/remove tags and see who has access.
  • Tags

    • Add simple tags to files and filter by them to find related content quickly.
  • Your account and storage

    • See how much storage you use and how much you save thanks to de‑duplication.
    • Friendly errors guide you if you hit plan limits.
  • If you’re an admin

    • View analytics like total files, users, storage, downloads, daily trends, popular files, and top uploaders.

Architecture Layout

Architecture Layour

About

Personal file cloud storage & sharing app in Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages