With a weather as sunny as this, who would stay indoors? Definitely not Johnny! 🙂
Keep in mind that the competition is almost over! We will have only one more problem next week.
The Dream Bike
Johnny is a passionate mountain biker. He needs a new ride for the upcoming season, but the current offerings of the local bicycle shops do not really satisfy his needs.
All the bicycles on the market have failed to meet his high standards, so Johnny decides to make the bike of his dreams out of components.
Johnny’s quest might be a lot easier with a tool that could automatically search the online bike shops and find the best components rated at the best prices.
These components should be lightweight and sturdy, but not necessarily top of the line, as Johnny must stay within a $3000 budget.
Selecting the sites with the best offers might save Johnny a lot of money, which he could spend on higher-end components. The difference in prices can be substantial and it can significantly impact the overall costs.
Choosing compatible parts is equally important. There are forks that do not fit certain frames, just like you cannot fit an Intel processor on an AMD compatible motherboard. A 10-speed shifter cannot properly shift a 9-speed derailleur.
What You Should Do
Help Johnny build that dream bike within the budget, of course! 🙂 For that, you must:
- Propose data structures to model component compatibility;
- Maintain a quality standard on each component so that components from different manufacturers can be compared;
- Think of how to make a web crawler index data from different online shops
- Describe the algorithm that uses the crawled data in order to build a complete configuration.
You could write a demo script that retrieves data from a few sport sites, e.g. bikexcs.ro.
Various sites may have prices in different currencies. Consider how this problem can be addressed.
Your software should present Johnny with at least 3 results that meet his criteria.
We hope that this problem won’t keep you indoors for too long. 😉 Have fun and drop us a comment, if you have questions.