Who doesn't like bubble tea? With the myriad of BBT stores in Singapore, it's sometimes hard to make the decisions on which drink to go for. And right now, there is no easy way to look up the comments and ratings about the various flavours of BBT.

We often hear people ask their friends, "Have you tried the new XXX tea? Is it good? Should I get it?". Unless you have a lot of friends, it can be hard to get an accurate answer with the limited sample size.

So why not create something that lets the entire BBT enjoyer community share about BBT, benefitting everyone in the process?

What it does

Just bought a cup of BBT? Create a post about it and share the experience with others! You can input your rating, the cost, store name, comments and a nice photo of the BBT.

Craving for BBT but don't know what store/flavour to go for? Check out the Home page with the trending posts to get some inspirations.

Want to know whether the new drink at LiHO is worth buying? Look up others' experience using the Search function.

"I WANT BBT NOW!!!!" In that case, use the Discover function to look up the nearest BBT stores to you. Easily sort through the results using the filter function.

Lastly, using the users' own posts, they can track their BBT records, including favourite stores, money spent in last month etc.

How we built it

The first step in any good project, is to have a long online meeting. We had a few meetings just to decide on our idea, and then to plan out how we were going to do it. Of course, this plan ended up being constantly revised during the event duration.

The second step, is to get started. To begin hacking, we began setting up our working environment. Since we were building a mobile app, we decided to use Expo for our framework, Firebase for our backend, and React Native plus Tailwind CSS to build the frontend. So we got to setting up our project repo, firing up our Firebase, and linking to our Expo interfaces. In the meantime, our most aesthetically-inclined member got to work on the budget wire-framing for our app, which we sometimes used for reference.

We picked a simple mobile design template to work with, then quickly built up the skeleton for our app next, along with our more commonly re-used components like our CSS template, input boxes, buttons, modals, and utility functions.

Once we were satisfied with that, we split the rest of the pages among ourselves. During this time, we also started scraping data on BBT stores to populate our database. Each of us had our own fair share of googling and debugging, but eventually we pushed through, and merged our branches to main.

Which is, of course, when more debugging happens. Next was a series of bug-fixing, standardising, cosmetic changes, and a lot of testing. Though for the most part, this was the final step of our "building" process. For a relatively simple project with a relatively simple tech stack, there sure were a lot of challenges we ran into.

Speaking of which...

Challenges we ran into

We love challenging ourselves (no, not really).

A big challenge that we faced was the small window of time we were given to develop this project. Of course, we began our ideation phase a little earlier, so we could roughly plan out how we would build our project. Though during the actual event itself, the 24 hours we had still felt much too short. On top of that, most of us are new to mobile app development, so just the setup of our working environment took a bit of time.

We were simply rushing through each stage of development, from a barely conceivable work-plan, to a wonky wire-framing, to a "bootstrapped" front-end, to a backend that would make both CS2040(S) and CS2103(T) professors vomit blood.

There were a lot of pitfalls at every turn and every corner, but perhaps these simply point to how our greatest challenge is managing our expectations for this project.

In the beginning, we were fairly ambitious, wanting to build a solid app with good, quality features. By nightfall, we had to start downsizing a little, and being a bit more conservative (and realistic) with ourselves. Compromising quality and consistency for speed, this is how we decided to work, and how we ended up with what we have. It is a fairly arduous process, but even so, the struggles made this event much more worthwhile.

Accomplishments that we're proud of

Finish building the app (kinda).

What we learned

In terms of technical skills, a large majority of us (essentially all but one) got to use this chance to learn a lot more on frontend development, particularly for mobile.

Share this project: