Maybe a data store?
Persist data -> search it -> too much data, need an index -> search on that index -> keep that index updated
I think you can split that in couple of parts to teach it in a few sessions and then join everything in one project, which when I started with Python it was hard for me to understand.