There is a popular game called six degrees of Kevin Bacon. In this game you are supposed to connect any two actors/actresses using a chain of actors/actresses (Kevin Bacon is just a popular choice as a target). Two performers are connected by a movie that both have appeared in. As an example:
Brett Favre was in There's something about Mary with Matt Dillon who was in Wild Things with Kevin Bacon.
I want you to create a six degrees engine that allows some special filtering (in order to make a better app). I want you to be able to only connect using movies from a specified set of decades (1980s and 2010s let's say). You should also allow filtering by a list of allowed directors or screen writers. Independently it would be nice to only allow popular performers (you'll have to think about a notion of popular that you can codify). Feel free to use the IMDB ftp data and/or other data sources you can legally use.
As part of working with real world situations I'm not going to over-specify your style of delivery. Pretend like a powerful, but non-technical, boss came to you with this problem and you want to solve it for them. I'll leave it up to you how you want to take input, present output, how the filters should be specified by a user, etc. Whatever interface choices you have made make it clear how I can use your code in your personal growth report.
For this project you will work on creating specifications from end-users, working with large dirty data sets (something you will do often in your life), architecting a system, designing a database, performance tuning, designing an API, and graph algorithms.