Cellar Xpert

Due to a shared passion for wine, my dad and brother have their own wine collections. The problem is that both collections are stored in the same wine cellar. You can see where this is going—at some point, one of them is in the cellar and can't remember if the bottle they’re eyeing belongs to them or the other. That’s when the idea came to me: create an app that allows my dad and brother to manage their collections by scanning barcodes.

My Account

Design choices

I used Adobe XD to design the app. The reason I create designs first is that it gives me time to think about the layout, functionality, and what I will need in the code to achieve a certain result. For this app, I designed three main components: the overview screen, the scan + detail screen, and the profile page. Once the design was complete, I could start developing.

Adobe design page

Technical decisions

I always take the opportunity to try out new technologies when I can. At the time, I had built small apps using React Native, Kotlin, and Swift for native development. Then, I came across a relatively new technology that allowed me to build cross-platform apps—Flutter. The decision to use Flutter was quickly made.

For the backend, I chose NestJS, a Node.js framework that provides a nice out-of-the-box structure. It's comparable to Angular in that it also offers a ready-made architecture. Another advantage of NestJS is its support for TypeScript, which I prefer. I built a backend that communicates with a MongoDB database to manage the wine collection data.

Functionality of the application

As mentioned earlier, the core functionality of the app is scanning bottles to add or remove them from your collection. The scanning feature is the heart of the app. Each time you scan a barcode, the app checks if the bottle is already in your collection. If it’s not, you can enter the details and add it. If it is, you can choose to add more or remove bottles from your collection.

An overview of your cellar is also important, so this feature was added to the app, along with a profile page to manage your account.

Collection Overview

Challenges

Building an app is one thing, but publishing it is a whole different story. I purchased the Apple Developer Program and started exploring how to publish my app. Getting it into the test stage was fairly straightforward, but getting it into the App Store was more difficult. The process involves providing a lot of information upfront before you can even think about publishing. After going through these steps, I decided it wasn’t worth pursuing at the time. That’s why the app only ran in beta mode (and required an invite to access).

Bottle Settings App Store

Still, I’m very happy with this project because it gave me the experience of what’s involved in publishing a real-world app.