---
# System prepended metadata

title: Roadmap

---

# Roadmap

```mermaid
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#06C9AF', 'tertiaryColor': '#AF996B', 'tertiaryTextColor': 'black'}}}%%
gantt
    axisFormat %m-%y
    title MVP Timeline

    section v0.0.1 (Tree Demo)
    Set up Supabase and Vercel  :done, a1, 2024-02-22, 60d
    Authentication pages     :done, a2, after a1,  30d
    Landing page             :done, a3, after a2  , 40d
    View tree                :done, a4, after a3  , 30d
    
    section v1.0.0 (MVP) Back-end
    Setting up database      :done, b1, after a4, 20d
    Basic search             :done, b2, after b1, 15d
    Import some data         :done, b3, after b2, 30d
    Propose changes to data  :done, b4, after b3, 10d
    Accept changes           :done, b5, after b4, 10d
    
    section v1.0.0 (MVP) Front-end
    View node details        :done, c1, after a4, 20d
    See data from database   :done, c2, after c1 , 20d
    Add clade from ott       :done, c3, after c2, 10d
    Edit clade               :done, c4, after c3, 10d   
    Move clade               :done, c5, after c4, 10d
    Add new clade            :done, c6, after c5, 10d
    
    section v1.1.0 (MVP 2)
    Upgrade ChakraUI            :done, d1, 2024-11-01, 20d
    Move data into SQL database :done, d2, after d1, 30d
    Node info Sidebar           :done, d3, after d2, 10d
    Quick Searchbar             :done, d4, after d3, 5d
    Node Details page           :done, d5, after d4, 5d
    Clade Editor preview        :done, d6, after d5, 5d
    
    
    section v1.1.1
    Account page v2             :done, d7, after d6, 15d
    Clade history page          :done, d8, after d7, 15d
    Fix old data                :active, e1, after d6, 60d
    Edit clade                  :e2, after e1, 10d
    Move clade                  :e3, after e2, 10d
    Add new clade               :e4, after e3, 10d
    Edit clade characteristics :e5, after e4, 30d
    Advanced search         :e6, after e5, 40d
    
    section v1.2.0
    host graph database     :f1, after e6, 10d
    Create a merge request  :f2, after f1, 30d
    View edit history       :after f2, 20d
```

# MVP Definition
Is this enough for the full MVP? Or do we need all the old data and/or edit

- [x] View the tree with data from database (original PEP data)
- [x] Search without navigation from tree view database clades by name
    - [x] search feature
    - [x] tree quick search in header
- [x] Navigate to new subtree by clicking on search result, leaf node in current tree and, optionally, from sidebar
    - [x] leaf node
    - [x] search result
    - [x] from sidebar
- [x] View clade info in sidebar
- [x] Login with email or google
- [x] Node details page
- [x] Node Editor Feature Preview
    - [x] UI Form
    - [x] Link from sidebar
    - [x] Add under construction disclaimer

## Other important features
Do any of these need to be moved up to MVP?

- [ ] View all the data that was in the old explorer
    - [x] Most of the clades are in the database and viewable
    - [x] All transactions are uploaded
    - [ ] Fix transactions missing clade ids
    - [ ] Rerun transactions against the clades data to get back all the missing changes
- [x] see images or silouettes on tree, sidebar and/or node details page
- [ ] Connect new users with their old data
    - [x] Account page
    - [ ] Public profile page
        - [ ] Profile visibility settings
        - [ ] Show all transactions by user
- [ ] Add editor only pages and features
    - [ ] My Edits
    - [ ] Node Editor
        - [x] UI Form
        - [ ] Full Edit flow (Cannot allow edits until existing data is fixed)
    - [ ] Quick Node Editor (from sidebar)
- [ ] Add admin only pages
    - [ ] All users (change user role etc.)
    - [ ] All transactions (approve changes etc.)


## Database migration

### Clades

1. JSON file
2. CSV file
3. Supabase table (clades)

### Transactions

1. **JSON file**
1. **CSV file**
1. **Supabase table (transactions_old)**
1.  **Fix the missing identifier (clade id) "transactions_old" creating a "transactions_fix" report in an insertable form into a new table**
    1.  identifier column may be unpopulated
        - we created a clade, but the update doesn't have the identifier: a subsequent update is missing it - use the field "name" (or others) to correlate using the before in the missing and the after in the other record to track back to likely source that DOES have an identifier
        - search the clades table looking for the name that is mentioned in the transaction record 
        - first part of genera names is the same as the genus name - use the genus name to find the id that belongs in the parent - and use the parent-child relationship to find likely identifiers that belong to this record
        - update a genus record to a species record - temporary id
        - species are entries that don't have children - group similar records (before and after objects have correlations) if there are multiple modification transactions for the same record - the after -> before is the canonical link - which is closest?
        - children are created after parents - use date sequence to narrow - stack by time 
        - create-then-edit is the same user (probably)
    1. create a proposal output 
       - which are reasonably obvious
       - which are ambiguous
       - which we have no correlation for
    1. manual process 
       - what is the original data source 
       - can we find the parent or such in other db based on distinct markers(mistakes? spellings?)?
       - similar naming for related clades that aren't specific distant like genus/species.

5. New Supabase table (name TBD)

### Users

1. JSON file
2. CSV file
3. Supabase table (users_old)
4. Import data into profiles table during signup process
