DriveManager is a full-stack cloud storage system that allows users to upload, organize, search, and securely share files.
The system is designed with metadata–storage separation, content-addressable storage, and real-time updates, demonstrating practical system design concepts.
- Upload files up to 50MB per file
- Preview files with thumbnails
- Rename, delete, and download files
- Categorization by file type (documents, media, images, others)
- Implemented SHA-256 hashing to detect duplicate files
- Prevents redundant uploads and reduces storage usage
- Multiple users can reference the same file without duplicating storage
- Generate signed share links
- Links copied to clipboard for quick sharing
- Access control handled through database metadata
- Files can be shared with multiple users
- Shared users gain access instantly
- Shared files appear without refreshing
- Uses Appwrite Realtime subscriptions
- New uploads and shared files appear immediately across clients
-
Debounced search for efficient queries
-
Supports searching by:
-
file name
-
file type
-
extension
Files can be sorted by:
- newest
- oldest
- largest
- name
- Upload requests check user storage usage
- Prevents users from exceeding storage limits
Stores:
- file name
- owner
- shared users
- file size
- file type
- hash
- storage reference
Stores the actual binary file data.
Metadata references files using:
- Next.js 15
- React
- Tailwind CSS
- shadcn/ui
- Next.js Server Actions
- Appwrite Database
- Appwrite Storage
- Appwrite Realtime
- Zod validation
- React Hook Form
- Debounced search
Binary files are stored in Appwrite Storage, while metadata is stored in Appwrite Database.
This allows efficient search, filtering, and permission management.
Files are hashed using SHA-256 before upload.
If the hash already exists, the system reuses the stored file instead of uploading again.
Appwrite realtime subscriptions push updates to clients, eliminating the need for manual refresh.
- Role-based file permissions (viewer/editor)
- Background file processing (thumbnail generation)
- Full-text search indexing
- Rate limiting and abuse protection
Adi
NITK Surathkal
Full-stack developer focused on building scalable systems.



