LOOKS: Appwrite Hashnode Hackathon

LOOKS: Appwrite Hashnode Hackathon

Hello! I'll be talking about a hackathon I joined by Appwrite. I'll be going over the team and the project we're building. Also, I'll discuss the tech stack which was worked on and the challenges we faced. Although we didn't finish the project to showcase, I still wanted to share this experience with you.

Team Details

- Luis Miranda — @luismir15

- Arkarsh Jain — @akarsh-jain-790

- Devarsh — @devarsh10

Description of Project

LOOKS is a mobile pet food scanner app (think of Yuka or Think Dirty but for pets). The app will let you scan the barcode of a food product and determine if the food is healthy or not based on its ingredient list. Aside from determining if the product is good based on its overall health, LOOKS also checks for any allergens that may be harmful to your pets. This is possible because we will let you create a profile for your pet. There, you’ll be able to list out ingredients your pet is allergic to. For example, if your pet it’s allergic to seafood-based ingredients, then LOOKS will alert you if a product is harmful to your pet.

I decided to tackle this project because of my love of animals and for providing my pets with the best food I can buy for them. The idea originally came one day at PetSmart when my partner and I wanted to know if a food product was healthy for our pets. We found that it’s time-consuming going over all the ingredients and determining if it’s good or not. Also, the idea for adding allergens came from one of our pets, Gransolo. About a year ago, we found out that he was allergic to seafood-based foods. So that’s why we wanted to make sure that if we were to scan a product, it would tell us if it contains any seafood-based ingredients. So, I want to build LOOKS to help me feel confident when I’m buying food for my pets.

Tech Stack

  • Flutter

  • Appwrite Cloud

    • Authentication

    • Database

For LOOKS, we decided to the mobile app in Flutter. Although we haven’t had much exposure to that technology, we were determined to learn. Flutter gives us a great starting point for creating the app for both Apple and Android while focusing on a singular codebase. Also, it was very enjoyable learning Dart, it's like combining elements of Java and Javascript. With the background we the team have it was really easy to adapt to the language. Additionally, pub.dev gave us all the necessary packages we needed to develop LOOKS.

As of now, we're simply building the UI and adding the functionalities slowly. So, there’s no specific method or design pattern. As we grow more confident with Flutter, will start structuring the project accordingly. Overall, it was a good experience getting into Flutter.

For the backend and other services, we mainly used Appwrite. We weren’t very familiar with the service, but we do appreciate having the opportunity to participate in this hackathon and explore Appwrite. As of now, we are just using Authentication and Database services. While designing the database, it was nice that it is presented as a document-based database. Creating the documents and fields was easy to implement. Also, we found it very interesting that the DB under the hood is a relational-based database. On the other hand, we used the Authentication service to create and manage accounts and users. There are still a bunch of things we still need to implement with authentication but using the account and user APIs has made it easy to implement the functionalities we need to handle users.

Challenges We Faced

Working on LOOKS has come with great challenges that we are still working on. First off, it was very difficult to research the desired resources we need to judge a pet food based on its ingredient. While there are plenty of databases of human food that can give you a lot of information (health score, ingredients, calories, etc.), the same cannot be said for pet food. So, extra time had to be spent reading articles and blogs of veterinarians explaining what’s healthy or not for pets. By not having a centralized place to get information, gathering other information like the product barcode has also been challenging. One of the solutions for now would be to do extra research to retrieve the barcode number and store it manually. There are APIs which provide barcode information for wide viarety of product but they are not free. As of now, the database is mostly populated by extracted data found on websites like Chewy.com.

Secondly, it was difficult implementing the camera functionality, so it can be used to scan barcodes. Most of the dependencies available for Flutter were not very good or reliable. But, we have found a good dependency called mobile_scanner. It uses the core native framework to work with the camera. For example, in iOS, it would use the AVFoundation to extract data from the barcode.

Aside from the technical issues, it was also difficult to work on this project just because of the team's members' daily lives. We have a very busy schedule, but we tried our best to meet the deadline while also maintaining a balance with our life and work/university. While most of these issues persist while developing LOOKS, we are determined to keep working hard to overcome these hurdles.

Public Code Repo

Unfortunately, the app is at a very early stage, so there is no demo to show off LOOKS. We are still trying our best to dedicate as much time as possible to work on the project. But any help or suggestion is more than welcome to help the app grow!

https://github.com/luismir15/pet-food-scanner