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.
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.
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:
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.
- 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
- Localstack CLI
- MySQL Workbench 8.0+
- Golang version go1.21.4+
- Node v20.7.0+
- npm 10.1.0+
- shadcn/ui CLI
Complete the following steps
- Install dependencies for the client:
cd client
npm install
- Install dependencies for the server:
cd server
go get -d ./...
-
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 asserver/.env.example
. Add your database name, user, and password here. -
Create a free account on Imagga, Cohere and Opengraph.io. Add your API keys to the env file.
Complete the following steps, each from the separate terminal tab
- Start up Localstack on Docker
localstack start
- Start the Golang server
cd server
go run main.go
- Run the client
cd client
npm start