Please provide your rough estimate in your cover page.
1. Build a digital signage player on RPI. You can use OMXPLayer or Screenly as base.
2. Download playlist and content from remote server. Playlist list file needs to be saved as a physical XML file in the same format from server. A sample is,
<xml><Playlist PlayerId="1000001"><Content id="23" type="image" location="/Content/a2/1w3ewsed.jpg" ageMin="23" ageMax="35" gender="male" likes="music;movies" /><Content id="237" type="image" location="/Content/0f/gtfrddsed.jpg
3. The playlist and content need to be refreshed periodically (configurable, default to 1 hour) from a remote server via web service. To save bandwidth, don’t download content that has already been downloaded from previous refresh.
4. Expose an API to allow to force play a specific content at any time. After playing, go back to the playlist that was intercepted.
5. Reporting – periodically send back to the remote server with which screens have been displayed for how many times.
6. Load player in full screen when boot