Challenge Overview
Project Overview
Our client is looking to build a robust and competitive email client. As a foundation, we need to pre-populate their email server with a bunch of logical, intelligent, test email data. In this challenge, we are looking for you to build a test email generator that takes certain inputs, and scrapes RSS feeds to create the body of emails, outputting .eml files that can be imported into the system.
Competition Task Overview
This challenge is part of the *IBM Castle* Challenge Series. Competitors who win challenges in this series will compete in a leaderboard of points for additional prizes. More information, rules, and leaderboards available here.
You will need to provide a simple system to generate as little or as much, test data as the client needs.
Inputs you will be given:
- 1. An initial json config containing
- 1.1. Number of “inboxes” to create (an inbox = a folder of .eml files)
- 1.2. A list of RSS feeds to pull conversations from (forums, news feeds)
- 1.3. A desired per-mailbox data size (500mb).
- 1.4. Destination (default ./output)
- 2. An example .eml file that you will need to generate
Outputs expected:
- 1. Folders representing a user’s inbox
- 2. Each folder will containing a .eml file per email message
Measures of Success
- 1. The emails mimic a user’s logical inbox
- 1.1. Conversations (conversationID) follow a group messaging structure, with relevant date times of response (a user wouldn’t respond in milliseconds, so the delay should be minutes between each)
- 1.2. User A emails User B, User B responds to User A, User C responds to User B’s response.
- 2. The output can be discerned by IBM cognitive services (waston sentiment, watson expertise)
Task Description
- 1. Parse the Config File
- 2. Hit RSS feeds
- 3. Parse RSS responses into “conversations”
- 4. Generate Conversation threads from RSS Feed information
Notes
- 1. We’re definitely open to RSS feed recommendations that would mimic email conversations. Examples are topcoder.com’s forums, apple forums, stack overflow.
- 2. We’re open to your language of choice within reason, please ask in the forum. The script should be relatively easy to run locally (node, python, ruby) without much environment setup. Node is strongly recommended though.
Technology Overview
- Node / Python / Ruby
Final Submission Guidelines
Submission Deliverables
- 1. Upload complete code as well as documentation for how to run your submission
- 2. Add huangqun as a member of your forked repository
- 3. Winner will be required to submit a merge request on gitlab against the branch specified and provide merge conflict support.
Final Submission
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.