A modern full-stack file storage application built with Next.js 15, Prisma, and MySQL.
```bash npm install ```
- Install MySQL on your system
- Create a database: ```sql CREATE DATABASE cloud_drive_mini; ```
```bash
docker run --name mysql-cloud-drive
-e MYSQL_ROOT_PASSWORD=rootpassword
-e MYSQL_DATABASE=cloud_drive_mini
-e MYSQL_USER=cloud_user
-e MYSQL_PASSWORD=cloud_password
-p 3306:3306
-d mysql:8.0
```
Create a .env file:
```env
DATABASE_URL="mysql://username:password@localhost:3306/cloud_drive_mini"
JWT_SECRET="your-super-secret-jwt-key-here"
```
```bash
npm run db:generate
npm run db:push
npm run db:migrate ```
```bash npm run dev ```
id- Unique identifier (CUID)email- User email (unique)name- User full namepassword- Hashed passwordcreatedAt- Account creation timestampupdatedAt- Last update timestamp
id- Unique identifier (CUID)name- File/folder nametype- FILE or FOLDER enumsize- File size in bytes (nullable for folders)folder- Parent folder pathpath- Full file pathuserId- Reference to usercreatedAt- Creation timestampupdatedAt- Last update timestamp
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run db:generate- Generate Prisma clientnpm run db:push- Push schema to databasenpm run db:migrate- Run database migrationsnpm run db:studio- Open Prisma Studio
✅ MySQL Database Integration ✅ User Authentication & Authorization ✅ File Upload & Download ✅ Folder Management ✅ Responsive Design ✅ Real-time Notifications ✅ Secure File Storage
- Password hashing with bcrypt
- Session-based authentication
- SQL injection protection via Prisma
- File access control per user
- Secure file uploads with validation
- Frontend: Next.js 15, React 18, Tailwind CSS
- Backend: Next.js API Routes, Server Actions
- Database: MySQL with Prisma ORM
- Authentication: Custom session-based auth
- UI Components: shadcn/ui + Radix UI
- Icons: Lucide React