Securelee

Securelee

A CLI tool built using Golang and Appwrite Cloud for sharing files safely.

Securelee: Appwrite Hashnode hackathon

🚀 Team Details :

🙌Inspiration for Securelee :

The inspiration behind Securelee arose from the pressing need for a secure and user-friendly file-sharing solution. Traditional file-sharing methods often lack the necessary safeguards to protect sensitive information, leaving users vulnerable to privacy breaches. This was the motivation to create a CLI tool that combines the strength of Appwrite backend services with the simplicity and versatility of Golang.

💯Description of Project:

Securelee is a lightweight and secure CLI (Command-Line Interface) tool designed for effortless file sharing. With a file size limit of 5MB, it provides a reliable solution for securely sharing smaller files with colleagues, clients, and friends.

> Securelee 
  ____                                        _
 / ___|    ___    ___   _   _   _ __    ___  | |   ___    ___
 \___ \   / _ \  / __| | | | | | '__|  / _ \ | |  / _ \  / _ \
  ___) | |  __/ | (__  | |_| | | |    |  __/ | | |  __/ |  __/  _
 |____/   \___|  \___|  \__,_| |_|     \___| |_|  \___|  \___| (_)
> Securelee --help

Securelee is a Cloud based CLI tool for Sharing Files securely.

Usage:
  Securelee [flags]
  Securelee [command]

Available Commands:
  SignUp      Sign-up to Securelee using your browser.
  completion  Generate the autocompletion script for the specified shell
  delete      Delete a Shared File.
  downloads   User who downloaded the Files shared by you
  get         Get a File.
  help        Help about any command
  login       Login to Securelee using your browser.
  logout      Command to Logout Securelee.
  share       Share a File
  view        Get list of Files Shared by you.
  whoami      A Command to see the Current logged-in User.

Flags:
  -h, --help     help for Securelee
  -t, --toggle   Help message for toggle

Use "Securelee [command] --help" for more information about a command.

Built using Appwrite and Golang, Securelee ensures robust security features and efficient file-handling capabilities. The tool leverages Appwrite's cloud-based infrastructure to deliver a reliable and scalable file storage and authentication system.

Using Securelee is simple. Users can securely upload their files, generating a unique access code for each upload. This code serves as a secure link to the shared file. Simply share the code with the intended recipients, who can then use Securelee to effortlessly download the file.

To guarantee user authenticity, Securelee incorporates email address and password authentication, along with email verification. This ensures that only authorized users can access and download the shared files, providing an additional layer of security.

Start sharing your files securely today and discover a new level of simplicity and privacy in file sharing.

💻Tech Stack:

  • Golang - The CLI is completely written in Golang using the Cobra-cli framework

  • Appwrite Cloud

    • Authentication - used for handling user email and password for login/Sign-up.

    • Storage - used for storing the files shared by the user.

    • Database - used for storing users' access logs.

🛠Challenges Faced :

During the development of Securelee, I encountered a significant challenge: the lack of official support for Golang in the Appwrite SDK. As Appwrite is a powerful backend service, I initially faced hurdles in finding the right tools and libraries to seamlessly integrate it with the Golang-based CLI.

However, I quickly discovered a workaround by leveraging the REST APIs provided by Appwrite. This enabled the CLI to interact with Appwrite services directly and accomplish the desired functionality without relying on a specific SDK. While it required a bit more manual coding and handling of HTTP requests and responses, it ultimately allowed me to overcome the lack of native Golang support and successfully integrate Appwrite into the CLI tool.

Another challenge faced was the desire to implement OAuth authentication to enhance the user experience and streamline the authentication process. However, I found that Appwrite did not yet support OAuth providers. Despite this setback, I worked around the limitation by using the email address and password authentication system and implemented my email verification system. While it required additional effort, this custom authentication process ensures a secure and controlled environment for file sharing.

Building Securelee was an enriching experience that taught me the importance of adaptability and problem-solving. It reinforced the idea that even in the face of challenges and limitations, creative solutions can be found by exploring alternative approaches and leveraging the underlying technology's capabilities.

🔗Public Code Repo :

GitHub: Securelee (The Installation Guide and other documentation is added on GitHub. Do check it out.)

Vimeo : Securelee on Vimeo