Skip to content

FileFlux is a modern file management web app built with Next.js, Zustand, and Cloudinary, enabling secure upload, organization, and real-time file handling.

Notifications You must be signed in to change notification settings

AvatarN03/FileFlux-Drive

Repository files navigation

📁 FileFlux-Drive

Next.js TypeScript Cloudinary License

A modern, cloud-powered file management system built for the web

FeaturesTech StackGetting StartedUsageContributing


🌟 Overview

FileFlux-Drive is a feature-rich file and folder management web application that brings desktop-like file organization to your browser. Built with cutting-edge web technologies, it provides seamless file uploads, intelligent organization, and real-time state management for an exceptional user experience.

✨ Features

  • 📤 Secure File Uploads - Upload files and images with Cloudinary's robust cloud storage
  • 📂 Smart Organization - Create folders, move files, and maintain a clean file structure
  • 👀 In-Browser Preview - View files directly without downloading
  • ⬇️ Quick Downloads - Download files with a single click
  • 🔄 Real-Time Updates - Instant UI updates powered by Zustand state management
  • ⚡ Lightning Fast - Built on Next.js for optimal performance and SEO
  • 📱 Responsive Design - Works seamlessly across desktop, tablet, and mobile devices
  • 🎨 Intuitive Interface - Clean, modern UI that's easy to navigate

🛠 Tech Stack

Layer Technology
Frontend Next.js 14 with App Router
State Management Zustand
Networking Axios
File Storage Cloudinary
Database Drizzle ORM
Language TypeScript
Styling Tailwind CSS (or your choice)

📦 Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository
git clone https://github.com/AvatarN03/FileFlux-Drive.git
cd FileFlux-Drive
  1. Install dependencies
npm install
# or
yarn install
# or
pnpm install
  1. Configure environment variables

Create a .env.local file in the root directory:

# Cloudinary Configuration
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your_upload_preset

# Database (if applicable)
DATABASE_URL=your_database_url

# Add other environment variables as needed
  1. Run database migrations (if using Drizzle)
npm run db:push
# or
npx drizzle-kit push:pg
  1. Start the development server
npm run dev
# or
yarn dev
  1. Open your browser

Navigate to http://localhost:3000 and start managing your files!

📁 Project Structure

FileFlux-Drive/
├── app/                 # Next.js app directory (routes & pages)
│   ├── api/            # API routes
│   ├── (routes)/       # Application routes
│   └── layout.tsx      # Root layout
├── components/          # Reusable React components
├── context/            # Zustand state stores
├── db/                 # Database configuration
├── drizzle/            # Drizzle ORM schema & migrations
├── hooks/              # Custom React hooks
├── lib/                # Utility functions & helpers
├── public/             # Static assets
├── types/              # TypeScript type definitions
├── .env.local          # Environment variables (not committed)
├── package.json        # Dependencies & scripts
└── README.md           # You are here!

💡 Usage

Uploading Files

  1. Click the Upload button or drag and drop files into the upload zone
  2. Files are automatically uploaded to Cloudinary with progress tracking
  3. Uploaded files appear instantly in your current folder

Managing Folders

  • Create Folder: Click the "New Folder" button and enter a name
  • Navigate: Click on any folder to view its contents
  • Move Files: Select files and use the "Move to" option to relocate them

File Operations

  • Preview: Click on any file to view it in the browser
  • Download: Use the download icon to save files locally
  • Delete: Select files and click the delete button to remove them

🚀 Deployment

Deploy on Vercel (Recommended)

The easiest way to deploy your Next.js app is with Vercel:

Deploy with Vercel

Manual Deployment

  1. Build the production version:
npm run build
  1. Start the production server:
npm start

🤝 Contributing

Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and conventions
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed

🐛 Bug Reports & Feature Requests

Found a bug or have a feature suggestion? Please open an issue with:

  • A clear title and description
  • Steps to reproduce (for bugs)
  • Expected vs actual behavior
  • Screenshots if applicable

📄 License

This project is open-source and available under the MIT License.

👨‍💻 Author

AvatarN03

🙏 Acknowledgments


If you find this project helpful, please consider giving it a ⭐️!

Made with ❤️ by AvatarN03

About

FileFlux is a modern file management web app built with Next.js, Zustand, and Cloudinary, enabling secure upload, organization, and real-time file handling.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages