Skip to content

Nitya-003/Share-It

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ“ Share-IT: Secure File Sharing System

License: GPL v3 Open Source Love PRs Welcome

Share-IT is a secure, scalable full-stack web application designed for internal organizational use. It allows users to upload and share files via unique, time-bound, and password-protected links.


πŸš€ Key Features

  • Secure Uploads: Multi-format validation with size limits.
  • Time-Bound Links: Links automatically expire after a set duration.
  • Shielded Sharing: Optional AES-encrypted password protection.
  • Admin Control: Full dashboard to monitor file traffic and manage storage.
  • Auth System: Secure JWT-based authentication for administrative tasks.

🌟 Why Share-IT?

In an era of data breaches, relying on public cloud links or unencrypted email attachments is a risk. Share-IT is necessary because it provides:

  1. Corporate Confidentiality: Ideal for HR or Legal departments to share sensitive documents (contracts, payroll) that must "vanish" after 24 hours.
  2. Reduced Storage Bloat: Since links are time-bound, the system automatically encourages a "clean-as-you-go" storage policy, preventing servers from filling up with old files.
  3. Internal Security: Avoids "Shadow IT" (employees using personal Dropbox/WeTransfer) by providing a controlled, audited internal alternative.
  4. Developer Collaboration: Securely share .env templates or configuration files across team members with password protection.

πŸ› οΈ Technology Stack

Frontend Backend Database Tools
React.js + Vite Node.js MongoDB Figma
TypeScript Express Mongoose Postman
Axios Multer Git / GitHub

πŸ”„ System Flow

graph TD
    A[User Selects File] --> B{Validation}
    B -- Type/Size OK --> C[Upload to Server]
    B -- Invalid --> D[Error Message]
    C --> E[Generate Unique Link]
    E --> F[Set Expiry & Password]
    F --> G[(Store in MongoDB)]
    G --> H[Share Link with Recipient]
    H --> I{Recipient Access}
    I -- Password Required --> J[Verify Password]
    I -- Direct Access --> K[Download File]
    J -- Success --> K
    K --> L[Update Download Stats]
Loading

πŸ“‚ Project Structure

Directory Description
πŸ“‚ backend/
  • πŸ“‚ controllers/ - Request handling logic
  • πŸ“‚ models/ - Mongoose schemas (File, User)
  • πŸ“‚ routes/ - API endpoint definitions
  • πŸ“‚ middleware/ - Auth & Multer config
  • πŸ“‚ uploads/ - Physical file storage
  • server.js - Entry point
Node.js & Express server-side logic
πŸ“‚ frontend/
  • πŸ“‚ src/components/ - Reusable UI elements
  • πŸ“‚ src/pages/ - View components
  • πŸ“‚ src/services/ - API integration
  • vite.config.ts - Build configuration
React + TypeScript client application

βš™οΈ Quick Start

1. Clone & Install

git clone https://github.com/Secure-File-Sharing-System.git
npm install # Run in both /frontend and /backend

2. Configure Environment (backend/.env)

PORT=5000
MONGO_URI=mongodb://localhost:27017/secureFileDB
JWT_SECRET=your_jwt_secret_key

3. Launch

# Start Backend
cd backend && npm run dev

# Start Frontend
cd frontend && npm run dev

🀝 Contributions

We welcome contributions from everyone! To keep the project healthy and safe, please refer to the following:

  • Contribution Guidelines: Learn how to report bugs or submit features in CONTRIBUTING.md.
  • Community Standards: We follow a strict CODE_OF_CONDUCT.md to ensure a welcoming environment.

βš–οΈ License

This project is licensed under the GNU General Public License v3 (GPLv3). This ensures that the code remains free and open-source for everyone. See the LICENSE file for details.


Built to provide a secure bridge for data, ensuring privacy remains a right, not a privilege.

About

Because sharing your work shouldn't mean sacrificing your security

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors