Inspiration

Tracking progress across collections is something many people struggle with, including us. Whether it's retro games, trading cards, or other collectibles, the process tends to be annoyingly manual. People resort to maintaining spreadsheets, marking up images, or relying on tools that only support very specific types of collections. This can be a lot to work with, especially with very large sets.

We wanted to build something more flexible and intuitive: a single platform where you can track any collection with minimal effort. The goal was to eliminate tedious manual input and instead let users simply take a picture and have the system handle the rest.

What it does

Collector Tatsujin is a web application that allows users to track their progress toward completing collections using AI-powered image recognition. A user can upload a photo of an item and provide a bit of context (for example, specifying that the item is an NES game). From there, the app uses the Gemini API to identify exactly what the item is, determine the broader collection it belongs to, and add it to the user’s personal collection.

As items are added, the application automatically tracks completion progress toward 100% of that collection. Users can also organize their collections in different ways, such as sorting alphabetically, by most recently added items, or by estimated value. The value estimation is also handled by the AI, which attempts to infer a reasonable estimate based on the item and its context.

Each user has their own account, and all data is stored in a MongoDB Atlas database, allowing collections to persist and scale cleanly across users.

How we built it

We built Collector Tatsujin as a full-stack React web application backed by MongoDB Atlas for persistent data storage. The image-based recognition and classification is powered by the Gemini API. When a user uploads an image, we send both the image and the user-provided context to Gemini, which returns a structured understanding of the item, including its identity and the collection it belongs to.

One of the key design considerations was minimizing unnecessary API calls while still maintaining accuracy. We structured our prompts carefully and ensured that each request extracted as much useful information as possible in a single call. After processing, the results are stored in the database and tied to the user’s account, allowing us to dynamically compute and display collection completion progress.

Challenges we ran into

One of the biggest challenges we encountered was dealing with API rate limits. Early on, we were using models that quickly exhausted our allowed requests, which forced us to rethink our approach. We ultimately switched to Gemini 2.5 Flash and focused on reducing the number of calls by making each request more efficient and intentional.

Another challenge was collaboration. Since we are relatively new with working with Git in a team setting, we ran into merge conflicts when modifying the same files. Learning how to properly resolve these conflicts and coordinate changes between us was a key part of the development process.

Accomplishments that we're proud of

One of our biggest accomplishments was successfully integrating the Gemini API in a way that feels seamless to the user. We were able to carefully design and refine our prompts so that the model could reliably identify both the specific item and the broader collection it belongs to.

We’re also proud of building a fully functional user system with registration and login, backed by a MongoDB Atlas database. Each user can manage their own collections independently, and everything persists cleanly across sessions.

Beyond the technical pieces, we’re proud that the core experience works well. The app does what we set out to build: it makes tracking collections simple, organized, and even satisfying. Being able to see your progress in one place without manual effort really captures the original goal of the project.

What we learned

This project was a strong learning experience across multiple areas. We gained hands-on experience working with the Gemini API, including selecting appropriate models, understanding tradeoffs between speed and capability, and dealing with rate limits in a practical setting.

We also learned how to design and integrate a MongoDB database into a real application, particularly how to structure user-specific data in a scalable way. On the collaboration side, this was our first time working together using Git in a meaningful way. We learned how to manage shared codebases, coordinate changes, and resolve merge conflicts, which is really important when working on large scale projects.

What's next for Collector Tatsujin

Looking ahead, we want to expand Collector Tatsujin beyond a personal tracking tool into a more social and interactive platform. One major direction is adding a community aspect, where users can add friends, view each other’s collections, and potentially share collections.

We’re also interested in implementing a trading feature. The idea is that users who arrange trades outside the platform can log those trades within the app, creating a record while automatically updating both users’ collections. This would make the platform more useful for active collectors who frequently exchange items.

Another planned feature is a “net worth” system that estimates the total value of a user’s collection, as well as their overall profile. In addition, we want to expand item and collection details by allowing users to add personal notes, thoughts, or context to the things they collect, making the experience more personalized and expressive.

Overall, the goal is to evolve Collector Tatsujin into a more complete ecosystem for collectors, combining tracking, social interaction, and deeper insights into collections.

Share this project:

Updates