---
# System prepended metadata

title: Tech design for dashboard sets

---

# Tech design for dashboard sets

## Requirments
1. Customizable dashboards set per project
2. Ability to add dashboards to the existed set for the project
3. Subscriptions per dashboard
4. Ability to manage dashboards sets
5. Custom dashboards set for Pagoda (dev console)
6. Ability to sort dashboards inside set
7. Payment page and call to action on the dashboard set page


## Components
- Admin Panel: panel for managing dashboards and sets
- Subscritpion module: the logic of subscription
- Dashboards set module: relation between dashboards and sets

## Affected areas
- Create/edit project workflow
- Dashboard templates should be related to the sets
- View dashboard screen

## Data structure
- User
- Subscription
- Dashboard set
- Dashboard template
- Dashboard
- Project 

### Subscription
|Id  |user_id |dashboard_id|end_date  |
|----|--------|------------|----------|
|12  |3       |12          |2022-04-20|
|13  |12      |15          |2022-04-20|

### Dashboard set
|Id  |dashboard_id |status |
|----|-------------|-------|
|12  |3            |test   |
|13  |12           |hidden |
|14  |12           |active |

### Project
|Id  |dashboard_set_id |name|tracking_id|slug|bigquery_slug|network|env|smartcontracts|user_id|
|----|-----------------|----|-----------|----|-------------|-------|---|--------------|-------|
|13  |12               |    |           |
|14  |13               |
|15  |14               |


### Dashboard
|Id  |dashboard_name |template   |status |is_free|
|----|---------------|-----------|-------|-------|
|12  |3              |url        |test   |0      |
|13  |12             |url        |hidden |1      |
|14  |12             |url        |active |1      |


## Implementation
1. Create dashboard set
2. Edit dashboard set
4. Create Subscription
5. Edit subscription
6. Add dashboard template
7. Edit dashboard template
8. Create project
9. Edit project


## Open questions:
1. How we'll relate dashboard set to the project? Per project or by project category?
2. Should we implement subscription logic in the first version?