Application period for the summer internships has ended, thanks for all the applicants! However, we have plenty of open roles in https://careers.wolt.com/en 🙂
Preliminary Assignment for Flutter internship in Finland.
Welcome! We are delighted to see you applying. Now it's your time to shine.
Please take your time, use the entire time available to complete this to the best of your ability - we do not prioritise submissions by speed!
A user is walking around Helsinki city centre looking for a place to eat.
- List of coordinates that represents the user's location on a timeline.
- Wolt API endpoint that accepts a location and returns a list of venues next to it.
Build an app that displays a list of venues for the user's current location. The list should contain a maximum of 15 venues. If the server response has more, use the first 15. Current location is taken from the input list and changes every 10 seconds (your app should refresh the list automatically and user location should loop).
For example:
Time passed after opening the app | Current location |
---|---|
0 seconds | locations[0] |
10 seconds | locations[1] |
20 seconds | locations[2] |
... | ... |
(10 * locationsCount) seconds | locations[0] (looped) |
Each venue also has a "Favorite" action next to it. "Favorite" works as a toggle (true/false) and changes the icon depending on the state. Your app should remember these states and reapply them to venues when the app is opened again.
GET https://restaurant-api.wolt.com/v1/pages/restaurants?lat=60.170187&lon=24.930599
Path / Key | Meaning |
---|---|
sections -> items -> venue -> id | Unique id of the venue |
sections -> items -> venue -> name | Name of the venue |
sections -> items -> venue -> short_description | Description of the venue |
sections -> items -> image -> url | Image URL for the venue |
Example coordinates (latitude / longitude) |
---|
60.170187, 24.930599 |
60.169418, 24.931618 |
60.169818, 24.932906 |
60.170005, 24.935105 |
60.169108, 24.936210 |
60.168355, 24.934869 |
60.167560, 24.932562 |
60.168254, 24.931532 |
60.169012, 24.930341 |
60.170085, 24.929569 |
Assets | |
---|---|
Favorite (true) | https://material.io/tools/icons/?icon=favorite&style=baseline |
Favorite (false) | https://material.io/tools/icons/?icon=favorite_border&style=baseline |
We expect you to be pragmatic and not overcomplicate things. You can take shortcuts where it makes sense to you.
This is a creative task and we would love to see your approach. At Wolt we love good user experiences, so any animation that brings delights would be appreciated. One good example would be the favourite button.
No, portrait mode is good with us.
If you have a good idea of how to improve the user experience here, we would love to see it. This is however not a requirement, so if you don’t have any ideas, try to stick closely to the given design.