Skip to content

Latest commit

 

History

History
111 lines (76 loc) · 4.02 KB

README.md

File metadata and controls

111 lines (76 loc) · 4.02 KB

My DNA app

A place to aggregate Y-DNA and mt-DNA info from services I use (FamilyTreeDNA, YFULL, YSeq, etc.)

Idea 1 - DONE

To have at least list of FTDNA groups which I frequently check, so to have one place to navigate from. MAYBE integrated with FTDNA API.

Idea 2 - TODO

To represent Y-DNA Discover tree based on SNP, and every joint as hyperlink to to the SNP-based page.

img

Idea 3 (or 2.2) - TODO

A list of SNPs with historical info, from no to Y-Adam. Similar way I described in my article

Table just an example:

SNP Age History notes, Sources
Y4460 30 note 1, source 1
CTS10228 25 note 2, source 2
P37 40 note 3, source 3

But most probably it can be simple list, UI-formatted nice and when scrolling all info is shown. Maybe some animation, not sure.

Inspired by FTDNA table actually:

img1

which I would simply extend with Historical data, so I could easily find myself in space and time when I think about SNP or age of Y-DNA men with such SNP in they Y chromosome.

Something also similar to MyTrueAncestry Full Detailed Timeline

img2

Left side could be SNP + age info and right side could be History notes, ancient tribes, ethnicities, nationalities, etc.

Maybe use Bootstrap Accordion => https://getbootstrap.com/docs/5.3/components/accordion/ or https://getbootstrap.com/docs/5.3/components/card/

Tech stack

React + TypeScript + Vite

https://vite.dev/guide/

Initially project bootstrapped with minimal setup within Vite, with HMR and some ESLint rules.

npm create vite@latest

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

  • Configure the top-level parserOptions property like this:
export default tsESlint.config({
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})
  • Replace tsESlint.configs.recommended to tsESlint.configs.recommendedTypeChecked or tsESlint.configs.strictTypeChecked
  • Optionally add ...tsESlint.configs.stylisticTypeChecked
  • Install eslint-plugin-react and update the config:
// eslint.config.js
import react from 'eslint-plugin-react'

export default tsESlint.config({
  // Set the react version
  settings: { react: { version: '18.3' } },
  plugins: {
    // Add the react plugin
    react,
  },
  rules: {
    // other rules...
    // Enable its recommended rules
    ...react.configs.recommended.rules,
    ...react.configs['jsx-runtime'].rules,
  },
})