An open API service indexing awesome lists of open source software.

https://github.com/gazi2050/drop

Drop is a modern file storage app for uploading, organizing, and accessing files securely in one place. It's a simple, user-friendly cloud drive for everyday file management and sharing.
https://github.com/gazi2050/drop

imgkit nextjs postgresql react tailwindcss typescript zustand

Last synced: 2 months ago
JSON representation

Drop is a modern file storage app for uploading, organizing, and accessing files securely in one place. It's a simple, user-friendly cloud drive for everyday file management and sharing.

Awesome Lists containing this project

README

          


Drop Hero

> ### Welcome to **Drop** โ€” a modern file storage and management platform. Upload, organize, search, share, and manage files with a clean responsive interface and secure access control.

## ๐Ÿ”‘ Key Features

- ๐Ÿ” **OTP Authentication**
Secure email OTP sign-up/sign-in with protected routes.

- ๐Ÿ“ค **Upload with Smooth Progress UI**
Drag-and-drop uploads with per-file progress bars and mobile-friendly upload tray.

- ๐Ÿง  **Smart Duplicate Filename Handling**
Automatically renames duplicate filenames (example: `img01-xy4z.png`).

- ๐Ÿ“‚ **File Type Organization**
Dedicated sections for **Documents**, **Images**, **Video**, **Audio**, and **Others**.

- ๐Ÿ”Ž **Debounced Global Search**
Real-time search suggestions with quick navigation to matching results.

- ๐Ÿ› ๏ธ **Advanced File Actions**
Rename, view details, share, create public links, download, and delete files.

- ๐Ÿ”— **Public Link Sharing**
Generate token-based public links for secure external access.

- ๐Ÿ“Š **Storage Analytics**
Track total usage and category-wise usage with charts.

- ๐Ÿ“ฑ **Responsive Experience**
Optimized for desktop and mobile with adaptive navigation.

- ๐Ÿ‘ค **Generated User Avatars**
Auto-generated profile avatars based on user name/email.

## ๐Ÿงพ Supported File Types

- **Documents:** `PDF`, `DOC`, `DOCX`, `CSV`, `TXT`, `XLS`, `XLSX`, and more
- **Images:** `JPG`, `JPEG`, `PNG`, `GIF`, `BMP`, `SVG`, `WEBP`
- **Video:** `MP4`, `MOV`, `MKV`, `WEBM`, `AVI`
- **Audio:** `MP3`, `WAV`, `OGG`, `FLAC`, `AAC`, and more
- **Others:** Any unsupported extension fallback

## ๐Ÿ› ๏ธ Installation Guide

1. **Clone the repository**

```bash
git clone https://github.com/Gazi2050/Drop.git
cd Drop
```

2. **Install dependencies**

```bash
pnpm install
```

3. **Create `.env.local`**

```bash
NEXT_PUBLIC_APPWRITE_ENDPOINT=
NEXT_PUBLIC_APPWRITE_PROJECT=
NEXT_PUBLIC_APPWRITE_DATABASE=
NEXT_PUBLIC_APPWRITE_USERS_COLLECTION=
NEXT_PUBLIC_APPWRITE_FILES_COLLECTION=
NEXT_PUBLIC_APPWRITE_BUCKET=
NEXT_APPWRITE_KEY=
```

4. **Run the development server**

```bash
pnpm dev
```

5. **Build and start for production**

```bash
pnpm build
pnpm start
```

## โ„น๏ธ Notes

- Max upload size is **50MB** per file.
- File access is permission-checked for owner/shared users.
- Public links are tokenized and validated through API routes.

## ๐ŸŽจ Design

- ๐Ÿ–ผ๏ธ [Figma Design](https://www.figma.com/design/soFJQ4963Rnb5INFivS3Zt/Drop---design?node-id=2-2&p=f)