Drive - Simple file storage application
A modern, full-stack file storage application built with Next.js that provides secure file and folder management with AWS S3 integration.
✨ Features
File Management
- File Upload - Upload files up to 500MB with presigned S3 URLs
- File Download - Secure download with presigned URLs and proper content disposition
- File Operations
- Rename files
- Move files between folders
- Copy files to different locations
- Delete files
- File Listing - Browse files and folders with metadata (size, type, dates)
Folder Management
- Folder Operations
- Create new folders
- Rename folders
- Move folders between locations
- Copy folders with all contents (deep copy)
- Delete folders and all contents recursively
- Hierarchical Structure - Full nested folder support
- Folder Navigation - Browse through folder hierarchy
Security & Access Control
- User Authentication - Secure user authentication system
- Access Control - Users can only access their own files and folders
- Presigned URLs - Secure, time-limited access to S3 resources
- Input Validation - Comprehensive validation using Zod schemas
🛠️ Tech Stack
Frontend
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Shadcn/UI - High-quality, accessible UI components
- tRPC - End-to-end typesafe APIs
Backend
- Next.js API Routes - Serverless API endpoints
- tRPC - Type-safe API layer
- Drizzle ORM - TypeScript SQL ORM
Database & Storage
- PostgreSQL (Neon) - Serverless PostgreSQL database
- Redis (Upstash) - Serverless Redis for caching
- AWS S3 - Object storage for files
Authentication
- Custom Auth System - Built-in authentication with session management
Previous Version
Untill this commit
- SvelteKit - Sveltekit as Backend as well as Frontend using (Svelte, TypeScript)
- tRPC - Typesafe API for auth and Drive API
- Deta - A Free Hosting service to host and deploy our app. Also provides inbuilt support for databases and File Storage. This service is no longer operational.
This Repository was using FastAPI as Backend and GraphQL for Drive API, till this commit.
I had also built the same site using Nextjs and React for frontend, here.