/L2CFileVault

This Is A Simple CLI Tool That Is Platform Independent Tooo! Soon Will Release The Web version Of This Project! Stay Tuned!

Primary LanguageShell

FileVault πŸ“¦πŸ”’

FileVault is a secure file management CLI tool designed for programmers to store and manage their files efficiently. It allows users to upload files to designated servers based on file types, while keeping track of their uploaded files in a local SQLite database.

Features 🌟

  • Secure File Uploads: Upload files to specific servers based on their types (images, documents, code files).
  • Local Database Management: Keep track of uploaded files in an SQLite database.
  • Ping Servers: Check the availability of servers before uploading.
  • User Authentication: Secure access to the file management system.

Getting Started πŸš€

Prerequisites

  • Bash shell
  • SQLite3
  • Curl
  • Optional: figlet and lolcat for a colorful banner

Installation πŸ’»

  1. Clone the repository:
    https://github.com/the-ai-developer/L2CFileVault.git
    cd L2C-sFileVault

Make the script executable:

chmod +x FileVault.sh

Run the script:

./FileVault.sh

How It Works βš™οΈ

Database Setup:

The script checks for the existence of a SQLite database at ~/file_registry.db. If it doesn't exist, it creates a new database with a files table.

File Upload Process:

  • The script determines the type of file being uploaded based on its extension.
  • It pings the relevant server to check if it’s reachable before proceeding with the upload.
  • If the server is reachable, the file is uploaded, and details are logged into the SQLite database.

Authorization:

Users are prompted to enter a password before they can perform any file management operations.

Operations πŸ“‹

1. Upload Files

The script allows users to upload various file types, categorized into:

  • Images: jpg, jpeg, png, gif, bmp

  • Documents: pdf, docx, txt, odt

  • Code Files: zip, tar, gz, py, js, cpp, c, java, html, css, sh

2. Database Management

All uploaded files are logged in the SQLite database with the following fields:

  • id: Unique identifier for the file

  • name: Name of the file

  • size: Size of the file

  • server: Server where the file is uploaded

Sample Usage πŸ–ΌοΈ

Below are sample images demonstrating the CLI interface and file upload process.

Sample CLI Interface

Listing Files

01

Deleting Files

02

Uploading Files

03

Downloading Files

04

Contributing 🀝

If you want to contribute to this project, please fork the repository and submit a pull request. For any suggestions or issues, feel free to open an issue in the repository.

Acknowledgments πŸ™Œ

Inspired by various file management tools and motivated to create a secure and efficient solution for programmers.