Inspiration

During the H1B debates on twitter, I saw a peculiar website which was getting a ton of attention. All it was was a table formatted website containing data about H1B visas. Seeing this, I realized that although Chat and RAG have dominated, there is still a market for a shareable but more traditional form of search.

Beyond that, I often find myself manually parsing lecture slide after lecture slide looking for a specific one, if I was able to quickly and easily share a searchable database that parses all of them for me it would be a drastic improvement to my quality of life. That inspired the name of ShareTome, I wanted it to act as a sort of book from Harry Potter, where a mere incantation can get the desired information out of it.

What it does

ShareTome is very simple. You drag and drop files in, and you can search and share a database.

How we built it

ShareTome is built with a Go backend, Next.JS Frontend, Aryn Sycamore for document parsing and uploading, and ElasticSearch as a vector store / search engine.

Challenges we ran into

I had a lot of trouble with the ElasticSearch and Aryn integration. The ElasticSearch schema setup is far from intuitive, and I had a lot of trouble setting it up. In addition, this was my first time using Go in such a large project, and with that came a lot of challenges (my code is very messy...).

Beyond that, tackling the Hackathon on my own proved more grueling than I had thought.

Accomplishments that we're proud of

I'm proud that I was able to implement all of the core functionality (user authentication, document uploading, document parsing, search, and shareable links) in a performant and scalable way despite working on my own.

What we learned

I learned a ton about Go, ElasticSearch, and Sycamore!

What's next for ShareTome

I hope to polish some of the corners I cut while making it. It is a solo effort in 24 hours so I give myself some slack, but the application lacks some features I would like such as a built in RAG bot for each database as well as the ability to delete indexes. Cloud storage and a local only client (think Obsidian, local first with a paid hosted service) are possible futures for it as well.

Built With

Share this project:

Updates