Skip to content

Upload files and website links then effortlessly find them later using auto-tagging functionality

Notifications You must be signed in to change notification settings

ivanmudarth/quickstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Screen Shot 2024-01-12 at 12 34 30 AM

Quickstore

Quickstore lets you upload files and website links then effortlessly find them later using auto-tagging functionality

I often find links to articles I want to read later or images of my notes that I want to refer to in the future. But it was awkward trying to use existing tools to store these items. Google Drive only stores articles, Apple Notes only stores images and text.

I would iMessage myself links or files but searching through many uploads became very difficult. Quickstore fixes this frustration I have and it became a good way for me to learn Golang and AWS.

Features

Upload / Store

Upload files (image, PDF) or website URLs using the input form and add any tags to describe what you're uploading. These items are stored in AWS S3 with their metadata in MySQL.

Tagging

In addition to user-inputted tags, the contents of these files are auto-tagged on upload.

Images are tagged using computer vision technology from the Imagga API while PDFs and websites are scraped and tagged using the Cohere Generate API.

User tags are displayed in grey while auto tags are in green:

Screen Shot 2024-01-13 at 10 47 53 PM

Search

User and auto tags allow files and URLs to be searchable. A list of tags can be queried and items with matching tags will be returned.

Technologies

  • React Typescript frontend
  • Shadcn and Chakra UI for component styling
  • Golang backend
  • Imagga API for image tagging
  • Cohere API for text tagging
  • Opengraph.io API for website preview data
  • AWS Localstack S3 for storing images and PDFs
  • MySQL for storing metadata about files and websites

Installation

Prerequisites

Complete the following steps

  1. Install dependencies for the client:
cd client
npm install
  1. Install dependencies for the server:
cd server
go get -d ./...
  1. After installing MySQL Workbench, create a database with a name, user, and password that you set. Create the env file server/.env using the same structure as server/.env.example. Add your database name, user, and password here.

  2. Create a free account on Imagga, Cohere and Opengraph.io. Add your API keys to the env file.

Run Locally

Complete the following steps, each from the separate terminal tab

  1. Start up Localstack on Docker
localstack start
  1. Start the Golang server
cd server
go run main.go
  1. Run the client
cd client
npm start

About

Upload files and website links then effortlessly find them later using auto-tagging functionality

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published