# DataChannel Hackathon November 2022
The theme of the hackathon would be to:
- improve the customer on-boarding experience and process with the overall aim of
- reducing the friction
in a newly signed up customer achieving value from our product.
## Project pitch options
### 1. Interactive walkthrough widgets
1.1 Click here to input your db details
1.2 Click Validate
.
.
### 2. Objectives
2.1 Add your first DataWarehouse
2.2 Configure your first DataSource
2.2.2 Add your first creds
.
.
### General fixes
towards a frictionless experience.
#### Handling missing elements/ artifacts
- Connector > Data destinations > [Empty], button to DataWarehouses instead
- Data Preview, same as above
#### Pop up to help
Show a pop-up whenever an error is encountered.
Show phone number and link to Calendly.
#### History JS
Change URL when page state is changed.
#### Default page for pipelines, etc
"Come here often, click here to set this tab as default."
#### Trial Plan banner at the top right
Show a gift icon instead a la Google Cloud Console
### 3. Default Warehouse
First configured warehouse to be set as default. "Set as Default" checkbox will be selected.
Subsequent configured warehouse can show "Set as Default" checkbox as unselected.
On first load Datasource detail page when there is no DataDestination configured,
1. scroll down
2. Default to be selected, if default in list, else show first of available
3. show black mask
4. show walkthrough tip
5. Ask "Confirm" or "Change"
6. If "Confirm", remove mask, hit "Save"
7. If "Change", remove maskĖ
### 4. Objectives and Achievements
- Premise is to gamify the usage of products under the DataChannel brand.
- Objectives can be undertaken in any order.
- Can be subgrouped into main objectives and subobjectives.
- Can be paired with Achievements, similar to Steam achievements or Xbox's "Achievement Unlocked". Examples include:
- "FIRST!": first pipeline configured
- "Points in your Favor": first pipeline moved rows to privately owned warehouse
- "Second to None": while setting up the scheduling of a pipeline or sync and not using Advanced Scheduling, get assigned a 59 minute mark
- "Variety Hour": Schedule 5 pipelines from 5 different datasources within 1 hour
- "Conservationist": use the same privately owned warehouse for 5 different datasources
- "The Unstoppable Force": Have at least 1 pipeline scheduled for every hour of the day.
- If only Objectives are needed and not Achievements, then example of Objectives can be:
- Add a DC Managed Warehouse
- Add a Private Warehouse
- Add a credential
- Add a configured pipeline
- Add a Data Model
- Add a configured sync
- Add a Segment
- Both Objectives and Achievements need to have some points or weight associated with them. In case of Objectives, the weights can add up to a 100 percent.
- Achievements need to have individual progress indicators, e.g. showing 2/5 if 2 pipelines are set out of total 5 for "Variety Hour"
#### Objectives table schema
##### objectives
| column | type |
|------------|------|
| label | str |
##### objective_status
| column | type |
|------------|------|
| label | str |
##### objective_completion
| column | type |
|------------|------|
| id | int |
| account_id | int |
| user_id | int |
| objective | objective.label |
| status | objective_status.label |
| timestamps | timestamp |
#### GET /objectives/{{account_id}}
List all objectives for account
#### POST /objectives/{{objective_id}}
Request:
```json!
{
"account_id":1,
"objective": "label",
"status": "COMPLETED"
}
```