Skip to content

gdhanush27/FileShare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FileShare Logo

πŸ“ FileShare Pro

A modern, secure, and user-friendly file sharing platform built with Flask

Flask Python License


✨ Features

πŸ” User Management

  • Secure Authentication - User registration and login with password hashing
  • Email Verification - Verify email addresses to ensure legitimate users
  • Password Recovery - Reset forgotten passwords via email
  • Profile Management - Customizable user profiles with avatar support
  • Admin Dashboard - Comprehensive admin controls for user and system management

πŸ“€ File Sharing

  • Easy Upload - Drag-and-drop or click to upload files
  • File Bundles - Share multiple files with a single link
  • Quick Share Links - Generate shareable links instantly
  • File Preview - Preview images and common file types
  • Download Tracking - Monitor file access and downloads
  • Expiration Control - Set automatic file deletion after a period

🎨 Modern Interface

  • Responsive Design - Works seamlessly on desktop, tablet, and mobile
  • Progressive Web App (PWA) - Install as a native app on any device
  • Dark Mode Ready - Eye-friendly interface
  • Intuitive UI - Clean and simple user experience

βš™οΈ Administration

  • Storage Management - Configure user and server storage limits
  • User Controls - Manage user accounts and permissions
  • Email Configuration - Set up SMTP for notifications
  • System Settings - Customize app name, file size limits, and more

οΏ½ Screenshots

πŸ” Login & Registration

Login Page Secure login with account recovery

Registration Page Easy account creation

πŸ“€ File Sharing

Upload Page Drag & drop file upload

User Profile User profile with storage stats

βš™οΈ Admin Dashboard

Admin Dashboard System analytics

System Settings Configuration panel

User Management User management

πŸ”„ Account Recovery

Account Recovery Password reset and account recovery


οΏ½πŸš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/fileshare.git
    cd fileshare
  2. Install dependencies

    pip install -r requirements.txt
  3. Configure settings (Optional)

    cp settings.example.json settings.json
    # Edit settings.json with your configuration
  4. Run the application

    python flask_app.py
  5. Access the app

    Open your browser and navigate to http://localhost:5000


πŸ“‹ Configuration

Email Setup (Optional)

To enable email features (verification, password reset), create a settings.json file:

{
  "app_name": "FileShare Pro",
  "registration_open": true,
  "max_file_size_mb": 40,
  "max_files_per_bundle": 5,
  "user_storage_limit_mb": 50,
  "total_server_storage_mb": 500,
  "email": {
    "MAIL_SERVER": "smtp.gmail.com",
    "MAIL_PORT": 587,
    "MAIL_USE_TLS": true,
    "MAIL_USERNAME": "your-email@gmail.com",
    "MAIL_PASSWORD": "your-app-password",
    "MAIL_DEFAULT_SENDER": "your-email@gmail.com"
  }
}

Storage Limits

You can configure storage limits in settings.json:

  • max_file_size_mb - Maximum size per file upload
  • user_storage_limit_mb - Storage quota per user
  • total_server_storage_mb - Total server storage limit

πŸ› οΈ Technology Stack

Technology Purpose
Flask Web framework
Flask-Session Server-side session management
Flask-Mail Email functionality
Pillow Image processing
Werkzeug Security utilities

πŸ“ Project Structure

FileShare/
β”œβ”€β”€ flask_app.py              # Main application file
β”œβ”€β”€ requirements.txt          # Python dependencies
β”œβ”€β”€ settings.json             # App configuration (create from example)
β”œβ”€β”€ settings.example.json     # Example settings file
β”œβ”€β”€ generate_icons.py         # PWA icon generator
β”œβ”€β”€ static/
β”‚   β”œβ”€β”€ manifest.json         # PWA manifest
β”‚   β”œβ”€β”€ service-worker.js     # Service worker for PWA
β”‚   └── icons/                # App icons
β”œβ”€β”€ templates/                # HTML templates
β”‚   β”œβ”€β”€ index.html           # Main upload page
β”‚   β”œβ”€β”€ login.html           # Login page
β”‚   β”œβ”€β”€ register.html        # Registration page
β”‚   β”œβ”€β”€ profile.html         # User profile
β”‚   β”œβ”€β”€ admin_dashboard.html # Admin panel
β”‚   └── ...
β”œβ”€β”€ uploads/                  # User uploaded files (auto-created)
β”œβ”€β”€ profile_pictures/         # User avatars (auto-created)
└── flask_session/           # Session data (auto-created)

πŸ”’ Security Features

  • Password Hashing - Secure password storage
  • Session Management - Server-side sessions with expiration
  • CSRF Protection - Prevent cross-site request forgery
  • File Validation - Sanitize uploaded files
  • Email Verification - Confirm user identities
  • Secure Tokens - Time-limited tokens for password reset

🎯 Usage

Upload Files

  1. Log in or register an account
  2. Click "Choose Files" or drag files to the upload area
  3. Set expiration time (optional)
  4. Click "Upload"
  5. Share the generated link

Create File Bundles

  1. Upload multiple files
  2. Select files to bundle
  3. Generate a bundle link
  4. Share with recipients

Admin Functions

  • Access admin dashboard at /admin
  • Manage users and their storage
  • Configure system settings
  • Monitor file uploads and storage usage

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  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

πŸ“ License

This project is licensed under the GNU GENERAL PUBLIC License - see the LICENSE file for details.


πŸ“§ Support

If you encounter any issues or have questions, please:

  • Open an issue on GitHub
  • Check existing issues for solutions
  • Review the documentation

🌟 Acknowledgments

  • Built with Flask
  • Icons from custom SVG designs
  • Inspired by modern file sharing platforms

About

A secure, feature-rich file sharing application built with Flask that enables users to upload, manage, and share files with ease.

Topics

Resources

License

Stars

Watchers

Forks

Contributors