This challenge consists in incremental steps to build a simple full-stack application (do the steps in order).
For the back-end, implement the following steps:
-
Set-up an API in any web framework (suggested: Flask / FastAPI)
-
Add a
/list
endpoint returning the data in /server/db/list.json in the following format:
{"images": [
["id0", "name0", "url0", ["tag1", "tag2"]],
["id1", "name1", "url1", ["tag1", "tag2"]]
...
["idN", "nameN", "urlN", ["tag1", "tag2"]]
]}
-
Convert the list.json file to any proper database (e.g. SQLite or be creative), and make the
/list
endpoint read from there. -
Create a
/edit/<image_id>
endpoint to edit the tags of a certain image
-
Set-up a front-end application in your framework of choice (React highly preferred)
-
With the data returned from the server
/list
endpoint implement an image gallery in the client folder -
Create a filter functionality that let the user filter the images by name and tag
-
Implement the possibility to filter by multiple tags at the same time
-
Function to add new tags to the images (just the front-end side for now)
-
Implement step 5 on the server (NOTE: to implement this step you need to implement step 4 of the server-side)
Your work should be uploaded into a personal repository on GitHub or GitLab and sent to [email protected].
For any further queries feel free to get in touch with us.