Skip to content

Modern cloud storage platform built with Next.js 15, featuring secure file management, real-time analytics, and seamless collaboration. Demonstrates hybrid BaaS + custom backend architecture with Appwrite and MongoDB integration.

Notifications You must be signed in to change notification settings

Sainava/Storage-Management-System

Repository files navigation

πŸ—‚οΈ StoreIt - Cloud Storage Management Platform

A full-stack cloud storage platform built with Next.js 15, featuring secure OTP authentication, file management, and real-time sharing capabilities.

Next.js TypeScript Tailwind CSS Appwrite

Overview β€’ Features β€’ Tech Stack β€’ Quick Start β€’ Deployment β€’ Roadmap


🎯 Project Overview

StoreIt is a modern, full-stack cloud storage management platform built with Next.js 15 and Appwrite. It features secure passwordless authentication, comprehensive file management, and real-time sharing capabilities - all wrapped in a beautiful, responsive interface.

Perfect for showcasing:

  • Modern web development with Next.js 15 App Router
  • Secure authentication patterns with OTP verification
  • File upload/management workflows
  • Real-time updates and responsive design
  • Integration with Backend-as-a-Service platforms

🌟 Key Highlights

  • πŸš€ Modern Stack: Built with Next.js 15, React 19, and TypeScript
  • πŸ” Secure Authentication: Passwordless OTP authentication via email
  • πŸ“ Complete File Management: Upload, organize, share, and manage files
  • πŸ‘₯ Real-time Sharing: Email-based file sharing with instant updates
  • πŸ“Š Usage Dashboard: Visual storage usage tracking with interactive charts
  • πŸ“± Responsive Design: Mobile-first UI with Tailwind CSS and ShadCN components
  • ⚑ High Performance: Server components and optimized file handling

✨ Current Features

πŸ” Authentication & Security

  • Passwordless Login: Secure OTP authentication sent via email
  • Session Management: Secure cookie-based sessions with auto-expiration
  • Protected Routes: Route-level protection for authenticated users
  • Account Creation: Simple signup with email verification

πŸ“ File Management

  • πŸ“€ File Upload: Drag & drop interface with real-time progress tracking
  • πŸ—‚οΈ File Organization: Automatic categorization by type (Documents, Images, Media, Others)
  • οΏ½οΏ½ Search & Filter: Global search with sorting options (name, date, size)
  • ✏️ File Operations: Rename and delete files with instant UI updates
  • πŸ“± Responsive Grid: Beautiful file grid that adapts to all screen sizes

πŸ‘₯ Sharing & Collaboration

  • πŸ“§ Email Sharing: Share files with others via email addresses
  • πŸ”— Secure Links: Generate secure download links for shared files
  • πŸ‘οΈ File Preview: In-browser preview for images and documents
  • πŸ“₯ Easy Downloads: One-click file downloads with proper file types

πŸ“Š Dashboard & Analytics

  • πŸ“ˆ Usage Overview: Visual storage usage breakdown by file type
  • πŸ“Š Interactive Charts: Beautiful charts showing storage distribution
  • πŸ“‹ Recent Activity: Quick access to recently uploaded files
  • πŸ’Ύ Storage Tracking: Real-time storage usage with 2GB limit visualization

🎨 User Experience

  • πŸŒ™ Modern UI: Clean, professional interface with smooth animations
  • πŸ“± Mobile Responsive: Full functionality across all devices
  • ⚑ Fast Loading: Optimized with Next.js Server Components
  • πŸ”„ Real-time Updates: Instant UI updates without page refreshes

πŸ›  Tech Stack

Frontend

  • Next.js 15 - React framework with App Router and Server Components
  • React 19 - Latest React with concurrent features
  • TypeScript - Type-safe development with full IntelliSense
  • Tailwind CSS - Utility-first styling framework
  • ShadCN/UI - Modern, accessible component library
  • Radix UI - Headless UI primitives for complex components
  • Recharts - Interactive charts for data visualization
  • React Hook Form - Performant forms with validation
  • Zod - TypeScript-first schema validation

Backend & Services

  • Appwrite - Backend-as-a-Service for auth, database, and storage
  • Server Actions - Type-safe server functions with Next.js
  • File Storage - Secure file storage with Appwrite buckets

Development & Deployment

  • Vercel - Deployment and hosting platform
  • ESLint - Code linting and quality enforcement
  • Git - Version control with clean commit history

πŸš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • npm >= 9.0.0
  • Git for version control

1. Clone the Repository

```bash git clone https://github.com/Sainava/Storage-Management-System.git cd Storage-Management-System ```

2. Install Dependencies

```bash npm install ```

3. Environment Setup

Create `.env.local` in the root directory:

```env

Appwrite Configuration

NEXT_PUBLIC_APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1" NEXT_PUBLIC_APPWRITE_PROJECT="your-project-id" NEXT_PUBLIC_APPWRITE_DATABASE="your-database-id" NEXT_PUBLIC_APPWRITE_USERS_COLLECTION="your-users-collection-id" NEXT_PUBLIC_APPWRITE_FILES_COLLECTION="your-files-collection-id" NEXT_PUBLIC_APPWRITE_BUCKET="your-bucket-id" NEXT_APPWRITE_KEY="your-api-key" ```

4. Appwrite Setup

  1. Create Account: Sign up at Appwrite
  2. Create Project: Initialize a new project in your dashboard
  3. Configure Authentication:
    • Enable Email/Password authentication
    • Set up email templates for OTP
  4. Database Setup:
    • Create database with two collections:
    • users: `fullName`, `email`, `avatar`, `accountId`
    • files: `name`, `type`, `extension`, `size`, `owner`, `users[]`, `bucketFileId`, `url`
  5. Storage Setup:
    • Create storage bucket for file uploads
    • Configure appropriate permissions
  6. Copy Configuration: Add all IDs to `.env.local`

5. Run the Application

```bash

Development server

npm run dev ```

Open http://localhost:3000 to view the application.


πŸ“¦ Project Structure

``` storeit/ β”œβ”€β”€ app/ # Next.js App Router β”‚ β”œβ”€β”€ (auth)/ # Authentication routes β”‚ β”‚ β”œβ”€β”€ sign-in/page.tsx # Sign-in page β”‚ β”‚ β”œβ”€β”€ sign-up/page.tsx # Sign-up page β”‚ β”‚ └── layout.tsx # Auth layout β”‚ β”œβ”€β”€ (root)/ # Protected app routes β”‚ β”‚ β”œβ”€β”€ page.tsx # Dashboard homepage β”‚ β”‚ β”œβ”€β”€ [type]/page.tsx # File type pages β”‚ β”‚ └── layout.tsx # Main app layout β”‚ β”œβ”€β”€ globals.css # Global styles β”‚ └── layout.tsx # Root layout β”œβ”€β”€ components/ # Reusable UI components β”‚ β”œβ”€β”€ ui/ # ShadCN component library β”‚ β”œβ”€β”€ AuthForm.tsx # Authentication forms β”‚ β”œβ”€β”€ FileUploader.tsx # File upload component β”‚ β”œβ”€β”€ Header.tsx # App header with search β”‚ β”œβ”€β”€ Sidebar.tsx # Navigation sidebar β”‚ β”œβ”€β”€ Card.tsx # File display cards β”‚ β”œβ”€β”€ Chart.tsx # Storage usage chart β”‚ └── ... # Additional components β”œβ”€β”€ lib/ # Utility libraries β”‚ β”œβ”€β”€ actions/ # Server actions β”‚ β”‚ β”œβ”€β”€ file.actions.ts # File operations β”‚ β”‚ └── user.actions.ts # User operations β”‚ β”œβ”€β”€ appwrite/ # Appwrite configuration β”‚ β”‚ β”œβ”€β”€ config.ts # Environment config β”‚ β”‚ └── index.ts # Client setup β”‚ └── utils.ts # Helper functions β”œβ”€β”€ constants/ # App constants β”œβ”€β”€ types/ # TypeScript definitions └── public/ # Static assets ```


πŸš€ Deployment

Vercel Deployment (Recommended)

  1. Push to GitHub: ```bash git add . git commit -m "feat: ready for deployment" git push origin main ```

  2. Deploy to Vercel:

    • Import repository at vercel.com
    • Add environment variables from `.env.local`
    • Deploy with automatic builds
  3. Post-Deployment:

    • Update Appwrite allowed origins with your Vercel domain
    • Test all functionality in production

πŸ”§ Development

Available Scripts

```bash npm run dev # Start development server npm run build # Build production bundle npm run start # Start production server npm run lint # Run ESLint npm run type-check # TypeScript checking ```

Development Workflow

  1. Create feature branch from `main`
  2. Implement changes with proper TypeScript types
  3. Test functionality across different file types
  4. Commit with descriptive messages
  5. Submit pull request with detailed description

πŸ—ΊοΈ Roadmap & Future Features

πŸ”„ Phase 2 - Advanced Analytics

  • πŸ“Š MongoDB Integration: Custom analytics database for user insights
  • πŸ“ˆ Activity Tracking: Track uploads, downloads, views, and shares
  • πŸ” Search Analytics: Monitor search patterns and optimize results
  • πŸ“± Usage Dashboard: Enhanced dashboard with detailed metrics
  • 🚨 Smart Notifications: Automated alerts for storage and activity

πŸš€ Phase 3 - Collaboration Features

  • πŸ‘₯ Team Workspaces: Multi-user collaboration spaces
  • 🏷️ File Tagging: Custom tags and advanced organization
  • πŸ’¬ Comments System: File-level comments and discussions
  • πŸ“ Version Control: File versioning and history tracking
  • πŸ” Advanced Permissions: Granular access control and roles

🌟 Phase 4 - Advanced Features

  • πŸ”„ Real-time Sync: Live collaboration and file synchronization
  • πŸ“± Mobile App: Native mobile applications for iOS/Android
  • πŸ” AI-Powered Search: Intelligent search with content recognition
  • πŸ“Š Business Intelligence: Advanced reporting and analytics
  • 🌐 API Access: RESTful API for third-party integrations

🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the Repository
  2. Create Feature Branch: `git checkout -b feature/amazing-feature`
  3. Make Changes: Implement your feature
  4. Test Thoroughly: Ensure everything works
  5. Commit: `git commit -m 'feat: add amazing feature'`
  6. Push: `git push origin feature/amazing-feature`
  7. Open Pull Request: Submit for review

Guidelines

  • Follow existing code style and conventions
  • Add TypeScript types for new features
  • Update documentation as needed
  • Test across different browsers and devices

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“ž Contact

Developer: Sai Navarasu
Repository: https://github.com/Sainava/Storage-Management-System


🌟 If you found this project helpful, please give it a star! 🌟

Built with ❀️ using Next.js, TypeScript, and Appwrite

Perfect for showcasing modern full-stack development skills

About

Modern cloud storage platform built with Next.js 15, featuring secure file management, real-time analytics, and seamless collaboration. Demonstrates hybrid BaaS + custom backend architecture with Appwrite and MongoDB integration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published