# 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