A web-based Secure File Management System built using Python Flask that allows users to upload, encrypt, manage, and share files securely.
This system ensures data confidentiality, integrity, and access control through encryption, authentication, and threat detection mechanisms.
- Overview
- Features
- System Architecture
- Tech Stack
- Project Structure
- Installation & Setup
- Usage Guide
- Security Modules
- Screenshots
- Future Enhancements
- Contributors
- License
The Secure File Management System is designed to store and manage files securely on a web platform.
Each file is encrypted before upload and decrypted on download, ensuring only authorized users can access sensitive data.
It provides:
- User authentication and OTP verification
- File encryption & decryption
- Role-based access control (User/Admin)
- Security threat detection
- Admin dashboard for monitoring and management
- User Registration & Login with password hashing
- Two-Factor Authentication (OTP via Email)
- Secure file upload, download, and deletion
- File encryption before upload
- File decryption on download
- Share files securely with authorized users
- View file metadata (size, date, encryption key info)
- AES or RSA encryption for files
- SHA256 hashing for integrity verification
- Buffer overflow & malicious file pattern detection
- Session-based authentication with CSRF protection
- View all users and files
- Delete suspicious files
- Export user/file data (CSV/Excel)
- Search and filter system logs
- Monitor failed login attempts and suspicious behavior
Client (Browser) ↓ Flask Application (Backend) ↓ Encryption Module → Secure File Storage ↓ Database (User info, metadata, logs)
| Component | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript (Flask Templates) |
| Backend | Python Flask |
| Database | SQLite / MySQL |
| Authentication | Flask-Login, Flask-Mail |
| Encryption | AES / RSA (using cryptography library) |
| Threat Detection | Regex-based pattern detection |
| File Storage | Local directory or cloud (configurable) |
git clone https://github.com/<your-username>/Secure-File-Management-System.git
cd Secure-File-Management-System
2. Create a virtual environment
python -m venv venv
3. Activate the environment
Windows
venv\Scripts\activate
Mac/Linux
source venv/bin/activate
4. Install dependencies
pip install -r requirements.txt
5. Set up environment variables
Create a .env file in the project root:
SECRET_KEY=your_secret_key
[email protected]
MAIL_PASSWORD=your_email_password
6. Initialize the database
python
>>> from db.database import init_db
>>> init_db()
7. Run the application
python app.py
The app will start at: http://127.0.0.1:5000