Nimbus is a high school project I worked on to explore cloud storage and encryption concepts. This project is not intended for actual use, as it may contain bugs and security vulnerabilities.
Nimbus is a client-server cloud storage system that allows users to upload, download, and manage files and folders efficiently. It features AES encryption for file security, RSA encryption for key exchange, a Tkinter-based GUI, and an admin panel for user management and monitoring.
-
User Management
- Sign-up, login, and password reset with email verification.
- Admin panel for managing users and logs.
-
File Management
- Upload and download files and folders.
- Encrypted file storage using AES CBC mode.
- Supports ZIP compression for folders.
- Secure file integrity verification.
-
Security & Encryption
- AES (CBC mode) encryption for files.
- RSA encryption for secure key exchange.
- Secure login with hashed passwords.
- IP banning for multiple failed login attempts.
-
Graphical User Interface (GUI)
- Tkinter-based interface for ease of use.
- File explorer with pagination.
- Admin dashboard for monitoring logs and managing users.
-
Logging & Monitoring
- Logs user activities (uploads, downloads, deletions).
- Admins can view logs via the GUI.
git clone https://github.com/Itapit/nimbus.git
cd nimbusEnsure you have Python installed, then install the required packages
To enable email verification, update the email sender and password inside the server_utils.py file in the send_verification_email function:
# server_utils.py
sender = '[email protected]' # Update this to your SMTP email
sender_password = 'your-password' # Update this to your SMTP passwordNote: This email must be linked to an SMTP service (e.g., Gmail, Outlook).
Start the server using:
python Server.pypython Client.py- Register/Login: Users must sign up with an email and password.
- Upload Files: Select files to upload securely.
- Download Files: Retrieve encrypted files from the cloud.
- Manage Files: Create folders, rename, and delete files.
- Manage Users: View and delete accounts.
- Monitor Logs: Track user activity logs.
├── Server.py # Main server file (handles user authentication, file storage, encryption)
├── Client.py # Client-side GUI for file management
├── client_admin.py # Admin panel GUI
├── protocol.py # Handles AES encryption for messages
├── server_utils.py # Utility functions (file encryption, email verification, etc.)
├── server_admin.py # Admin utilities for user management
├── client_class.py # Defines user sessions and attributes
├── logger.py # Logs user activities and errors
└── requirements.txt # Required dependencies
- Uses AES encryption for file security.
- Prevents directory traversal attacks.
- Secure password storage with hashing.
- Email verification for user authentication.
Feel free to fork this repository and submit a pull request with any improvements!
For questions or contributions, reach out at [email protected].