Structured is a productivity app for iOS, Android and Web, which combines to-do lists and calendars into one timeline of your day. Learn more at https://structured.app.
TL;DR
The goal of the project is to be able to reliability predict icons based on the title of a task using on-device machine learning models. We have millions of real-world data samples.
The UX
In the app, whenever a user creates a new task, they first have to enter the title of that task. While typing, the app automatically calculates the most fitting icon and replaces it.
Alternatively, the user can tap the icon and manually select an icon from the icon picker. The icons here are also sorted based on the title.
Once an icon was manually selected, the app does not replace it, even if the title changes.


Requirements
- Input: Title of task (short string, 1-4 words, no strict limit)
- Output: (Ranked) list of icon IDs (max. 10)
- Classes: ~550 icon IDs, but should be extendable.
- Training data: +10 Million pairs of title and selected icon (plus device language) from manual selection by real users. The training data is raw data and was not filtered or anything.
- Multilingual: The algorithm should work for different languages. At least English and German.
- On-device: The algorithm needs to run on mobile devices (priority iOS devices). Therefore, it should be relatively efficient and the model(s) should not be too big (max 10 MB)
- On-device learning: The algorithm should learn from the user's past selections. If a user once manually selects an icon for a task, this icon should later be suggested for tasks with a similar name.
Here you can find a sample of the raw data. I have such a file for every day.
2022-05-16.csv