
Fruit Spy
Fruit Spy is a mobile app that enables the user to determine the ripeness of 38 different kinds of fruits, and thereby make better choices when in the grocery store. By taking a picture via the phone camera, the app detects the type of fruit and even the ripeness for some fruits. If the ripeness cannot be determined by the picture, the app gives information on how to check the fruit's ripeness in other ways.


Sprints
We are 8 students who worked on this project full-time over the span of four weeks. We organized our workload according to the Scrum framework, which is an agile development method that includes dividing the work into smaller sprints. In our case, every sprint had the length of one week.
Sprint goals and outcomes
Sprint 1
Goal: Have the neural network trained and ready
In the first week, our sprint goal was to create a neural network, find sufficient training data and finally train the model to be able to detect different kinds of fruits. Additionally, we designed the basic functionality and created a skeleton for the actual app. In this week, team members learned about the React Native framework that was used for the app as well as machine learning and image recognition.
Sprint 2
Goal: Ripeness model ready for intergration
Our second sprint goal was to create additional models for each type of fruit to determine the fruit’s ripeness. This task required a lot of research and even more work on creating appropriate datasets, which is the reason we focused on a limited amount of fruits. We also worked on the app integration, which included compressing the detection model, deploying it on an external server and creating an interface which enables the app and server to communicate.
Sprint 3
Goal: Having an alpha version of the app
Since we had the fruit detection part figured out and implemented, we went into depth with creating 4 ripeness models for the fruits: banana, orange, strawberry, and pineapple. We also finalized our app's design and implemented the style to the app so that we would have a functioning alpha version of the app by the end of the sprint.
Sprint 4
Goal: Deploy the initial version of the app
In the final week, we mostly worked on improving what we had. We improved the app user experience by i.a. fixing bugs, implementing a more intuitive design with smaller animations and adding some new features. We also improved our AI models and deployed the app in the form of an Android package. The server was adapted to handle multiple requests.
App screenshots
Camera

Cropping Screen

Scan Result

Team Members
We are a group of students studying Information and Communication Technology at KTH Royal Institute of Technology, Stockholm.
The pictures below show each team member's favourite fruit.

Antonia Wälken
Scrum Master

Aman Amir
Developer

Seolli Kim
Developer

Fredrik Jogell
Product Owner

Litian Lei
Developer

Henri Suurorg
Developer

Kevin Wang
Developer

Simon Yllmark
Developer