From a53ca4603a3970a4c2b17204ef72a7bda9a0eddd Mon Sep 17 00:00:00 2001 From: Jesse Rosengrant Date: Thu, 8 Feb 2024 16:44:18 -0500 Subject: [PATCH] added back folder structure and added a guitar logo on login. changed some stylings to make guitar look ok on login. --- .gitignore | 2 ++ components/Header.jsx | 32 ------------------ index.html | 6 ++-- App.css => src/frontend/App.css | 6 ++++ App.jsx => src/frontend/App.jsx | 6 ++-- .../frontend/assets/A-sounds}/0.mp3 | Bin .../frontend/assets/A-sounds}/1.mp3 | Bin .../frontend/assets/A-sounds}/10.mp3 | Bin .../frontend/assets/A-sounds}/11.mp3 | Bin .../frontend/assets/A-sounds}/12.mp3 | Bin .../frontend/assets/A-sounds}/13.mp3 | Bin .../frontend/assets/A-sounds}/14.mp3 | Bin .../frontend/assets/A-sounds}/15.mp3 | Bin .../frontend/assets/A-sounds}/16.mp3 | Bin .../frontend/assets/A-sounds}/17.mp3 | Bin .../frontend/assets/A-sounds}/18.mp3 | Bin .../frontend/assets/A-sounds}/19.mp3 | Bin .../frontend/assets/A-sounds}/2.mp3 | Bin .../frontend/assets/A-sounds}/3.mp3 | Bin .../frontend/assets/A-sounds}/4.mp3 | Bin .../frontend/assets/A-sounds}/5.mp3 | Bin .../frontend/assets/A-sounds}/6.mp3 | Bin .../frontend/assets/A-sounds}/7.mp3 | Bin .../frontend/assets/A-sounds}/8.mp3 | Bin .../frontend/assets/A-sounds}/9.mp3 | Bin .../frontend/assets/B-sounds}/0.mp3 | Bin .../frontend/assets/B-sounds}/1.mp3 | Bin .../frontend/assets/B-sounds}/10.mp3 | Bin .../frontend/assets/B-sounds}/11.mp3 | Bin .../frontend/assets/B-sounds}/12.mp3 | Bin .../frontend/assets/B-sounds}/13.mp3 | Bin .../frontend/assets/B-sounds}/14.mp3 | Bin .../frontend/assets/B-sounds}/15.mp3 | Bin .../frontend/assets/B-sounds}/16.mp3 | Bin .../frontend/assets/B-sounds}/17.mp3 | Bin .../frontend/assets/B-sounds}/18.mp3 | Bin .../frontend/assets/B-sounds}/19.mp3 | Bin .../frontend/assets/B-sounds}/2.mp3 | Bin .../frontend/assets/B-sounds}/3.mp3 | Bin .../frontend/assets/B-sounds}/4.mp3 | Bin .../frontend/assets/B-sounds}/5.mp3 | Bin .../frontend/assets/B-sounds}/6.mp3 | Bin .../frontend/assets/B-sounds}/7.mp3 | Bin .../frontend/assets/B-sounds}/8.mp3 | Bin .../frontend/assets/B-sounds}/9.mp3 | Bin .../frontend/assets/D-sounds}/0.mp3 | Bin .../frontend/assets/D-sounds}/1.mp3 | Bin .../frontend/assets/D-sounds}/10.mp3 | Bin .../frontend/assets/D-sounds}/11.mp3 | Bin .../frontend/assets/D-sounds}/12.mp3 | Bin .../frontend/assets/D-sounds}/13.mp3 | Bin .../frontend/assets/D-sounds}/14.mp3 | Bin .../frontend/assets/D-sounds}/15.mp3 | Bin .../frontend/assets/D-sounds}/16.mp3 | Bin .../frontend/assets/D-sounds}/17.mp3 | Bin .../frontend/assets/D-sounds}/18.mp3 | Bin .../frontend/assets/D-sounds}/2.mp3 | Bin .../frontend/assets/D-sounds}/3.mp3 | Bin .../frontend/assets/D-sounds}/4.mp3 | Bin .../frontend/assets/D-sounds}/5.mp3 | Bin .../frontend/assets/D-sounds}/6.mp3 | Bin .../frontend/assets/D-sounds}/7.mp3 | Bin .../frontend/assets/D-sounds}/8.mp3 | Bin .../frontend/assets/D-sounds}/9.mp3 | Bin .../frontend/assets/G-sounds}/0.mp3 | Bin .../frontend/assets/G-sounds}/1.mp3 | Bin .../frontend/assets/G-sounds}/10.mp3 | Bin .../frontend/assets/G-sounds}/11.mp3 | Bin .../frontend/assets/G-sounds}/12.mp3 | Bin .../frontend/assets/G-sounds}/13.mp3 | Bin .../frontend/assets/G-sounds}/14.mp3 | Bin .../frontend/assets/G-sounds}/15.mp3 | Bin .../frontend/assets/G-sounds}/16.mp3 | Bin .../frontend/assets/G-sounds}/17.mp3 | Bin .../frontend/assets/G-sounds}/18.mp3 | Bin .../frontend/assets/G-sounds}/2.mp3 | Bin .../frontend/assets/G-sounds}/3.mp3 | Bin .../frontend/assets/G-sounds}/4.mp3 | Bin .../frontend/assets/G-sounds}/5.mp3 | Bin .../frontend/assets/G-sounds}/6.mp3 | Bin .../frontend/assets/G-sounds}/7.mp3 | Bin .../frontend/assets/G-sounds}/8.mp3 | Bin .../frontend/assets/G-sounds}/9.mp3 | Bin .../frontend/assets/highE-sounds}/0.mp3 | Bin .../frontend/assets/highE-sounds}/1.mp3 | Bin .../frontend/assets/highE-sounds}/10.mp3 | Bin .../frontend/assets/highE-sounds}/11.mp3 | Bin .../frontend/assets/highE-sounds}/12.mp3 | Bin .../frontend/assets/highE-sounds}/13.mp3 | Bin .../frontend/assets/highE-sounds}/14.mp3 | Bin .../frontend/assets/highE-sounds}/15.mp3 | Bin .../frontend/assets/highE-sounds}/16.mp3 | Bin .../frontend/assets/highE-sounds}/17.mp3 | Bin .../frontend/assets/highE-sounds}/18.mp3 | Bin .../frontend/assets/highE-sounds}/2.mp3 | Bin .../frontend/assets/highE-sounds}/3.mp3 | Bin .../frontend/assets/highE-sounds}/4.mp3 | Bin .../frontend/assets/highE-sounds}/5.mp3 | Bin .../frontend/assets/highE-sounds}/6.mp3 | Bin .../frontend/assets/highE-sounds}/7.mp3 | Bin .../frontend/assets/highE-sounds}/8.mp3 | Bin .../frontend/assets/highE-sounds}/9.mp3 | Bin .../assets/images/acoustic-guitar-logo.jpeg | Bin 0 -> 43553 bytes .../frontend/assets/images}/blankTab.png | Bin .../frontend/assets/lowE-sounds}/0.mp3 | Bin .../frontend/assets/lowE-sounds}/1.mp3 | Bin .../frontend/assets/lowE-sounds}/10.mp3 | Bin .../frontend/assets/lowE-sounds}/11.mp3 | Bin .../frontend/assets/lowE-sounds}/12.mp3 | Bin .../frontend/assets/lowE-sounds}/13.mp3 | Bin .../frontend/assets/lowE-sounds}/14.mp3 | Bin .../frontend/assets/lowE-sounds}/15.mp3 | Bin .../frontend/assets/lowE-sounds}/16.mp3 | Bin .../frontend/assets/lowE-sounds}/17.mp3 | Bin .../frontend/assets/lowE-sounds}/18.mp3 | Bin .../frontend/assets/lowE-sounds}/19.mp3 | Bin .../frontend/assets/lowE-sounds}/2.mp3 | Bin .../frontend/assets/lowE-sounds}/3.mp3 | Bin .../frontend/assets/lowE-sounds}/4.mp3 | Bin .../frontend/assets/lowE-sounds}/5.mp3 | Bin .../frontend/assets/lowE-sounds}/6.mp3 | Bin .../frontend/assets/lowE-sounds}/7.mp3 | Bin .../frontend/assets/lowE-sounds}/8.mp3 | Bin .../frontend/assets/lowE-sounds}/9.mp3 | Bin {chords => src/frontend/chords}/A-chords.mjs | 0 {chords => src/frontend/chords}/B-chords.mjs | 0 {chords => src/frontend/chords}/C-chords.mjs | 0 .../frontend/chords}/Chord-finder.mjs | 0 {chords => src/frontend/chords}/D-chords.mjs | 0 {chords => src/frontend/chords}/E-chords.mjs | 0 {chords => src/frontend/chords}/F-chords.mjs | 0 {chords => src/frontend/chords}/Frets.mjs | 0 {chords => src/frontend/chords}/G-chords.mjs | 0 {chords => src/frontend/chords}/Guitar.mjs | 0 {chords => src/frontend/chords}/chordProg.mjs | 0 .../frontend/components}/ChordDisplay.css | 0 .../frontend/components}/ChordDisplay.jsx | 10 +++--- .../frontend/components}/ChordSelect.jsx | 8 ++--- .../frontend/components}/DraggableChord.jsx | 0 .../frontend/components}/FormAction.jsx | 0 .../frontend/components}/FormExtra.jsx | 0 src/frontend/components/Header.jsx | 32 ++++++++++++++++++ .../frontend/components}/Home.jsx | 0 .../frontend/components}/Input.jsx | 0 .../frontend/components}/Login.jsx | 0 .../components}/MultiAudioPlayers.jsx | 0 .../frontend/components}/Navbar.jsx | 0 .../components}/ProgressionDisplay.jsx | 0 .../frontend/components}/Signup.jsx | 6 ++-- .../frontend/constants}/formFields.js | 0 main.jsx => src/frontend/main.jsx | 2 +- {pages => src/frontend/pages}/Homepage.jsx | 0 {pages => src/frontend/pages}/Login.jsx | 0 {pages => src/frontend/pages}/Signup.jsx | 0 154 files changed, 60 insertions(+), 50 deletions(-) create mode 100644 .gitignore delete mode 100644 components/Header.jsx rename App.css => src/frontend/App.css (56%) rename App.jsx => src/frontend/App.jsx (76%) rename {A-sounds => src/frontend/assets/A-sounds}/0.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/1.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/10.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/11.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/12.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/13.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/14.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/15.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/16.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/17.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/18.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/19.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/2.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/3.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/4.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/5.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/6.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/7.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/8.mp3 (100%) rename {A-sounds => src/frontend/assets/A-sounds}/9.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/0.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/1.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/10.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/11.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/12.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/13.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/14.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/15.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/16.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/17.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/18.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/19.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/2.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/3.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/4.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/5.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/6.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/7.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/8.mp3 (100%) rename {B-sounds => src/frontend/assets/B-sounds}/9.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/0.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/1.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/10.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/11.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/12.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/13.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/14.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/15.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/16.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/17.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/18.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/2.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/3.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/4.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/5.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/6.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/7.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/8.mp3 (100%) rename {D-sounds => src/frontend/assets/D-sounds}/9.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/0.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/1.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/10.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/11.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/12.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/13.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/14.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/15.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/16.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/17.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/18.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/2.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/3.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/4.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/5.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/6.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/7.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/8.mp3 (100%) rename {G-sounds => src/frontend/assets/G-sounds}/9.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/0.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/1.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/10.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/11.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/12.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/13.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/14.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/15.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/16.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/17.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/18.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/2.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/3.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/4.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/5.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/6.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/7.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/8.mp3 (100%) rename {highE-sounds => src/frontend/assets/highE-sounds}/9.mp3 (100%) create mode 100644 src/frontend/assets/images/acoustic-guitar-logo.jpeg rename {Images => src/frontend/assets/images}/blankTab.png (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/0.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/1.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/10.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/11.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/12.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/13.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/14.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/15.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/16.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/17.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/18.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/19.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/2.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/3.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/4.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/5.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/6.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/7.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/8.mp3 (100%) rename {lowE-sounds => src/frontend/assets/lowE-sounds}/9.mp3 (100%) rename {chords => src/frontend/chords}/A-chords.mjs (100%) rename {chords => src/frontend/chords}/B-chords.mjs (100%) rename {chords => src/frontend/chords}/C-chords.mjs (100%) rename {chords => src/frontend/chords}/Chord-finder.mjs (100%) rename {chords => src/frontend/chords}/D-chords.mjs (100%) rename {chords => src/frontend/chords}/E-chords.mjs (100%) rename {chords => src/frontend/chords}/F-chords.mjs (100%) rename {chords => src/frontend/chords}/Frets.mjs (100%) rename {chords => src/frontend/chords}/G-chords.mjs (100%) rename {chords => src/frontend/chords}/Guitar.mjs (100%) rename {chords => src/frontend/chords}/chordProg.mjs (100%) rename {components => src/frontend/components}/ChordDisplay.css (100%) rename {components => src/frontend/components}/ChordDisplay.jsx (95%) rename {components => src/frontend/components}/ChordSelect.jsx (71%) rename {components => src/frontend/components}/DraggableChord.jsx (100%) rename {components => src/frontend/components}/FormAction.jsx (100%) rename {components => src/frontend/components}/FormExtra.jsx (100%) create mode 100644 src/frontend/components/Header.jsx rename {components => src/frontend/components}/Home.jsx (100%) rename {components => src/frontend/components}/Input.jsx (100%) rename {components => src/frontend/components}/Login.jsx (100%) rename {components => src/frontend/components}/MultiAudioPlayers.jsx (100%) rename {components => src/frontend/components}/Navbar.jsx (100%) rename {components => src/frontend/components}/ProgressionDisplay.jsx (100%) rename {components => src/frontend/components}/Signup.jsx (92%) rename {constants => src/frontend/constants}/formFields.js (100%) rename main.jsx => src/frontend/main.jsx (89%) rename {pages => src/frontend/pages}/Homepage.jsx (100%) rename {pages => src/frontend/pages}/Login.jsx (100%) rename {pages => src/frontend/pages}/Signup.jsx (100%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28f1ba7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.DS_Store \ No newline at end of file diff --git a/components/Header.jsx b/components/Header.jsx deleted file mode 100644 index 9082f1d..0000000 --- a/components/Header.jsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Link } from 'react-router-dom'; - -export default function Header({ - heading, - paragraph, - linkName, - linkUrl = '#', -}) { - return ( -
-
- logo -
-

- {heading} -

-

- {paragraph}{' '} - - {linkName} - -

-
- ); -} diff --git a/index.html b/index.html index e5d71bc..5c23a8c 100644 --- a/index.html +++ b/index.html @@ -1,8 +1,10 @@ - + + +
- + diff --git a/App.css b/src/frontend/App.css similarity index 56% rename from App.css rename to src/frontend/App.css index 902778b..672ed06 100644 --- a/App.css +++ b/src/frontend/App.css @@ -4,3 +4,9 @@ padding: 2rem; text-align: center; } + +.login-logo { + height: 100%; + width: 70%; + object-fit: cover; +} diff --git a/App.jsx b/src/frontend/App.jsx similarity index 76% rename from App.jsx rename to src/frontend/App.jsx index bd52c83..29c2148 100644 --- a/App.jsx +++ b/src/frontend/App.jsx @@ -13,9 +13,9 @@ function App() {
- } /> - } /> - } /> + } /> + } /> + } />
diff --git a/A-sounds/0.mp3 b/src/frontend/assets/A-sounds/0.mp3 similarity index 100% rename from A-sounds/0.mp3 rename to src/frontend/assets/A-sounds/0.mp3 diff --git a/A-sounds/1.mp3 b/src/frontend/assets/A-sounds/1.mp3 similarity index 100% rename from A-sounds/1.mp3 rename to src/frontend/assets/A-sounds/1.mp3 diff --git a/A-sounds/10.mp3 b/src/frontend/assets/A-sounds/10.mp3 similarity index 100% rename from A-sounds/10.mp3 rename to src/frontend/assets/A-sounds/10.mp3 diff --git a/A-sounds/11.mp3 b/src/frontend/assets/A-sounds/11.mp3 similarity index 100% rename from A-sounds/11.mp3 rename to src/frontend/assets/A-sounds/11.mp3 diff --git a/A-sounds/12.mp3 b/src/frontend/assets/A-sounds/12.mp3 similarity index 100% rename from A-sounds/12.mp3 rename to src/frontend/assets/A-sounds/12.mp3 diff --git a/A-sounds/13.mp3 b/src/frontend/assets/A-sounds/13.mp3 similarity index 100% rename from A-sounds/13.mp3 rename to src/frontend/assets/A-sounds/13.mp3 diff --git a/A-sounds/14.mp3 b/src/frontend/assets/A-sounds/14.mp3 similarity index 100% rename from A-sounds/14.mp3 rename to src/frontend/assets/A-sounds/14.mp3 diff --git a/A-sounds/15.mp3 b/src/frontend/assets/A-sounds/15.mp3 similarity index 100% rename from A-sounds/15.mp3 rename to src/frontend/assets/A-sounds/15.mp3 diff --git a/A-sounds/16.mp3 b/src/frontend/assets/A-sounds/16.mp3 similarity index 100% rename from A-sounds/16.mp3 rename to src/frontend/assets/A-sounds/16.mp3 diff --git a/A-sounds/17.mp3 b/src/frontend/assets/A-sounds/17.mp3 similarity index 100% rename from A-sounds/17.mp3 rename to src/frontend/assets/A-sounds/17.mp3 diff --git a/A-sounds/18.mp3 b/src/frontend/assets/A-sounds/18.mp3 similarity index 100% rename from A-sounds/18.mp3 rename to src/frontend/assets/A-sounds/18.mp3 diff --git a/A-sounds/19.mp3 b/src/frontend/assets/A-sounds/19.mp3 similarity index 100% rename from A-sounds/19.mp3 rename to src/frontend/assets/A-sounds/19.mp3 diff --git a/A-sounds/2.mp3 b/src/frontend/assets/A-sounds/2.mp3 similarity index 100% rename from A-sounds/2.mp3 rename to src/frontend/assets/A-sounds/2.mp3 diff --git a/A-sounds/3.mp3 b/src/frontend/assets/A-sounds/3.mp3 similarity index 100% rename from A-sounds/3.mp3 rename to src/frontend/assets/A-sounds/3.mp3 diff --git a/A-sounds/4.mp3 b/src/frontend/assets/A-sounds/4.mp3 similarity index 100% rename from A-sounds/4.mp3 rename to src/frontend/assets/A-sounds/4.mp3 diff --git a/A-sounds/5.mp3 b/src/frontend/assets/A-sounds/5.mp3 similarity index 100% rename from A-sounds/5.mp3 rename to src/frontend/assets/A-sounds/5.mp3 diff --git a/A-sounds/6.mp3 b/src/frontend/assets/A-sounds/6.mp3 similarity index 100% rename from A-sounds/6.mp3 rename to src/frontend/assets/A-sounds/6.mp3 diff --git a/A-sounds/7.mp3 b/src/frontend/assets/A-sounds/7.mp3 similarity index 100% rename from A-sounds/7.mp3 rename to src/frontend/assets/A-sounds/7.mp3 diff --git a/A-sounds/8.mp3 b/src/frontend/assets/A-sounds/8.mp3 similarity index 100% rename from A-sounds/8.mp3 rename to src/frontend/assets/A-sounds/8.mp3 diff --git a/A-sounds/9.mp3 b/src/frontend/assets/A-sounds/9.mp3 similarity index 100% rename from A-sounds/9.mp3 rename to src/frontend/assets/A-sounds/9.mp3 diff --git a/B-sounds/0.mp3 b/src/frontend/assets/B-sounds/0.mp3 similarity index 100% rename from B-sounds/0.mp3 rename to src/frontend/assets/B-sounds/0.mp3 diff --git a/B-sounds/1.mp3 b/src/frontend/assets/B-sounds/1.mp3 similarity index 100% rename from B-sounds/1.mp3 rename to src/frontend/assets/B-sounds/1.mp3 diff --git a/B-sounds/10.mp3 b/src/frontend/assets/B-sounds/10.mp3 similarity index 100% rename from B-sounds/10.mp3 rename to src/frontend/assets/B-sounds/10.mp3 diff --git a/B-sounds/11.mp3 b/src/frontend/assets/B-sounds/11.mp3 similarity index 100% rename from B-sounds/11.mp3 rename to src/frontend/assets/B-sounds/11.mp3 diff --git a/B-sounds/12.mp3 b/src/frontend/assets/B-sounds/12.mp3 similarity index 100% rename from B-sounds/12.mp3 rename to src/frontend/assets/B-sounds/12.mp3 diff --git a/B-sounds/13.mp3 b/src/frontend/assets/B-sounds/13.mp3 similarity index 100% rename from B-sounds/13.mp3 rename to src/frontend/assets/B-sounds/13.mp3 diff --git a/B-sounds/14.mp3 b/src/frontend/assets/B-sounds/14.mp3 similarity index 100% rename from B-sounds/14.mp3 rename to src/frontend/assets/B-sounds/14.mp3 diff --git a/B-sounds/15.mp3 b/src/frontend/assets/B-sounds/15.mp3 similarity index 100% rename from B-sounds/15.mp3 rename to src/frontend/assets/B-sounds/15.mp3 diff --git a/B-sounds/16.mp3 b/src/frontend/assets/B-sounds/16.mp3 similarity index 100% rename from B-sounds/16.mp3 rename to src/frontend/assets/B-sounds/16.mp3 diff --git a/B-sounds/17.mp3 b/src/frontend/assets/B-sounds/17.mp3 similarity index 100% rename from B-sounds/17.mp3 rename to src/frontend/assets/B-sounds/17.mp3 diff --git a/B-sounds/18.mp3 b/src/frontend/assets/B-sounds/18.mp3 similarity index 100% rename from B-sounds/18.mp3 rename to src/frontend/assets/B-sounds/18.mp3 diff --git a/B-sounds/19.mp3 b/src/frontend/assets/B-sounds/19.mp3 similarity index 100% rename from B-sounds/19.mp3 rename to src/frontend/assets/B-sounds/19.mp3 diff --git a/B-sounds/2.mp3 b/src/frontend/assets/B-sounds/2.mp3 similarity index 100% rename from B-sounds/2.mp3 rename to src/frontend/assets/B-sounds/2.mp3 diff --git a/B-sounds/3.mp3 b/src/frontend/assets/B-sounds/3.mp3 similarity index 100% rename from B-sounds/3.mp3 rename to src/frontend/assets/B-sounds/3.mp3 diff --git a/B-sounds/4.mp3 b/src/frontend/assets/B-sounds/4.mp3 similarity index 100% rename from B-sounds/4.mp3 rename to src/frontend/assets/B-sounds/4.mp3 diff --git a/B-sounds/5.mp3 b/src/frontend/assets/B-sounds/5.mp3 similarity index 100% rename from B-sounds/5.mp3 rename to src/frontend/assets/B-sounds/5.mp3 diff --git a/B-sounds/6.mp3 b/src/frontend/assets/B-sounds/6.mp3 similarity index 100% rename from B-sounds/6.mp3 rename to src/frontend/assets/B-sounds/6.mp3 diff --git a/B-sounds/7.mp3 b/src/frontend/assets/B-sounds/7.mp3 similarity index 100% rename from B-sounds/7.mp3 rename to src/frontend/assets/B-sounds/7.mp3 diff --git a/B-sounds/8.mp3 b/src/frontend/assets/B-sounds/8.mp3 similarity index 100% rename from B-sounds/8.mp3 rename to src/frontend/assets/B-sounds/8.mp3 diff --git a/B-sounds/9.mp3 b/src/frontend/assets/B-sounds/9.mp3 similarity index 100% rename from B-sounds/9.mp3 rename to src/frontend/assets/B-sounds/9.mp3 diff --git a/D-sounds/0.mp3 b/src/frontend/assets/D-sounds/0.mp3 similarity index 100% rename from D-sounds/0.mp3 rename to src/frontend/assets/D-sounds/0.mp3 diff --git a/D-sounds/1.mp3 b/src/frontend/assets/D-sounds/1.mp3 similarity index 100% rename from D-sounds/1.mp3 rename to src/frontend/assets/D-sounds/1.mp3 diff --git a/D-sounds/10.mp3 b/src/frontend/assets/D-sounds/10.mp3 similarity index 100% rename from D-sounds/10.mp3 rename to src/frontend/assets/D-sounds/10.mp3 diff --git a/D-sounds/11.mp3 b/src/frontend/assets/D-sounds/11.mp3 similarity index 100% rename from D-sounds/11.mp3 rename to src/frontend/assets/D-sounds/11.mp3 diff --git a/D-sounds/12.mp3 b/src/frontend/assets/D-sounds/12.mp3 similarity index 100% rename from D-sounds/12.mp3 rename to src/frontend/assets/D-sounds/12.mp3 diff --git a/D-sounds/13.mp3 b/src/frontend/assets/D-sounds/13.mp3 similarity index 100% rename from D-sounds/13.mp3 rename to src/frontend/assets/D-sounds/13.mp3 diff --git a/D-sounds/14.mp3 b/src/frontend/assets/D-sounds/14.mp3 similarity index 100% rename from D-sounds/14.mp3 rename to src/frontend/assets/D-sounds/14.mp3 diff --git a/D-sounds/15.mp3 b/src/frontend/assets/D-sounds/15.mp3 similarity index 100% rename from D-sounds/15.mp3 rename to src/frontend/assets/D-sounds/15.mp3 diff --git a/D-sounds/16.mp3 b/src/frontend/assets/D-sounds/16.mp3 similarity index 100% rename from D-sounds/16.mp3 rename to src/frontend/assets/D-sounds/16.mp3 diff --git a/D-sounds/17.mp3 b/src/frontend/assets/D-sounds/17.mp3 similarity index 100% rename from D-sounds/17.mp3 rename to src/frontend/assets/D-sounds/17.mp3 diff --git a/D-sounds/18.mp3 b/src/frontend/assets/D-sounds/18.mp3 similarity index 100% rename from D-sounds/18.mp3 rename to src/frontend/assets/D-sounds/18.mp3 diff --git a/D-sounds/2.mp3 b/src/frontend/assets/D-sounds/2.mp3 similarity index 100% rename from D-sounds/2.mp3 rename to src/frontend/assets/D-sounds/2.mp3 diff --git a/D-sounds/3.mp3 b/src/frontend/assets/D-sounds/3.mp3 similarity index 100% rename from D-sounds/3.mp3 rename to src/frontend/assets/D-sounds/3.mp3 diff --git a/D-sounds/4.mp3 b/src/frontend/assets/D-sounds/4.mp3 similarity index 100% rename from D-sounds/4.mp3 rename to src/frontend/assets/D-sounds/4.mp3 diff --git a/D-sounds/5.mp3 b/src/frontend/assets/D-sounds/5.mp3 similarity index 100% rename from D-sounds/5.mp3 rename to src/frontend/assets/D-sounds/5.mp3 diff --git a/D-sounds/6.mp3 b/src/frontend/assets/D-sounds/6.mp3 similarity index 100% rename from D-sounds/6.mp3 rename to src/frontend/assets/D-sounds/6.mp3 diff --git a/D-sounds/7.mp3 b/src/frontend/assets/D-sounds/7.mp3 similarity index 100% rename from D-sounds/7.mp3 rename to src/frontend/assets/D-sounds/7.mp3 diff --git a/D-sounds/8.mp3 b/src/frontend/assets/D-sounds/8.mp3 similarity index 100% rename from D-sounds/8.mp3 rename to src/frontend/assets/D-sounds/8.mp3 diff --git a/D-sounds/9.mp3 b/src/frontend/assets/D-sounds/9.mp3 similarity index 100% rename from D-sounds/9.mp3 rename to src/frontend/assets/D-sounds/9.mp3 diff --git a/G-sounds/0.mp3 b/src/frontend/assets/G-sounds/0.mp3 similarity index 100% rename from G-sounds/0.mp3 rename to src/frontend/assets/G-sounds/0.mp3 diff --git a/G-sounds/1.mp3 b/src/frontend/assets/G-sounds/1.mp3 similarity index 100% rename from G-sounds/1.mp3 rename to src/frontend/assets/G-sounds/1.mp3 diff --git a/G-sounds/10.mp3 b/src/frontend/assets/G-sounds/10.mp3 similarity index 100% rename from G-sounds/10.mp3 rename to src/frontend/assets/G-sounds/10.mp3 diff --git a/G-sounds/11.mp3 b/src/frontend/assets/G-sounds/11.mp3 similarity index 100% rename from G-sounds/11.mp3 rename to src/frontend/assets/G-sounds/11.mp3 diff --git a/G-sounds/12.mp3 b/src/frontend/assets/G-sounds/12.mp3 similarity index 100% rename from G-sounds/12.mp3 rename to src/frontend/assets/G-sounds/12.mp3 diff --git a/G-sounds/13.mp3 b/src/frontend/assets/G-sounds/13.mp3 similarity index 100% rename from G-sounds/13.mp3 rename to src/frontend/assets/G-sounds/13.mp3 diff --git a/G-sounds/14.mp3 b/src/frontend/assets/G-sounds/14.mp3 similarity index 100% rename from G-sounds/14.mp3 rename to src/frontend/assets/G-sounds/14.mp3 diff --git a/G-sounds/15.mp3 b/src/frontend/assets/G-sounds/15.mp3 similarity index 100% rename from G-sounds/15.mp3 rename to src/frontend/assets/G-sounds/15.mp3 diff --git a/G-sounds/16.mp3 b/src/frontend/assets/G-sounds/16.mp3 similarity index 100% rename from G-sounds/16.mp3 rename to src/frontend/assets/G-sounds/16.mp3 diff --git a/G-sounds/17.mp3 b/src/frontend/assets/G-sounds/17.mp3 similarity index 100% rename from G-sounds/17.mp3 rename to src/frontend/assets/G-sounds/17.mp3 diff --git a/G-sounds/18.mp3 b/src/frontend/assets/G-sounds/18.mp3 similarity index 100% rename from G-sounds/18.mp3 rename to src/frontend/assets/G-sounds/18.mp3 diff --git a/G-sounds/2.mp3 b/src/frontend/assets/G-sounds/2.mp3 similarity index 100% rename from G-sounds/2.mp3 rename to src/frontend/assets/G-sounds/2.mp3 diff --git a/G-sounds/3.mp3 b/src/frontend/assets/G-sounds/3.mp3 similarity index 100% rename from G-sounds/3.mp3 rename to src/frontend/assets/G-sounds/3.mp3 diff --git a/G-sounds/4.mp3 b/src/frontend/assets/G-sounds/4.mp3 similarity index 100% rename from G-sounds/4.mp3 rename to src/frontend/assets/G-sounds/4.mp3 diff --git a/G-sounds/5.mp3 b/src/frontend/assets/G-sounds/5.mp3 similarity index 100% rename from G-sounds/5.mp3 rename to src/frontend/assets/G-sounds/5.mp3 diff --git a/G-sounds/6.mp3 b/src/frontend/assets/G-sounds/6.mp3 similarity index 100% rename from G-sounds/6.mp3 rename to src/frontend/assets/G-sounds/6.mp3 diff --git a/G-sounds/7.mp3 b/src/frontend/assets/G-sounds/7.mp3 similarity index 100% rename from G-sounds/7.mp3 rename to src/frontend/assets/G-sounds/7.mp3 diff --git a/G-sounds/8.mp3 b/src/frontend/assets/G-sounds/8.mp3 similarity index 100% rename from G-sounds/8.mp3 rename to src/frontend/assets/G-sounds/8.mp3 diff --git a/G-sounds/9.mp3 b/src/frontend/assets/G-sounds/9.mp3 similarity index 100% rename from G-sounds/9.mp3 rename to src/frontend/assets/G-sounds/9.mp3 diff --git a/highE-sounds/0.mp3 b/src/frontend/assets/highE-sounds/0.mp3 similarity index 100% rename from highE-sounds/0.mp3 rename to src/frontend/assets/highE-sounds/0.mp3 diff --git a/highE-sounds/1.mp3 b/src/frontend/assets/highE-sounds/1.mp3 similarity index 100% rename from highE-sounds/1.mp3 rename to src/frontend/assets/highE-sounds/1.mp3 diff --git a/highE-sounds/10.mp3 b/src/frontend/assets/highE-sounds/10.mp3 similarity index 100% rename from highE-sounds/10.mp3 rename to src/frontend/assets/highE-sounds/10.mp3 diff --git a/highE-sounds/11.mp3 b/src/frontend/assets/highE-sounds/11.mp3 similarity index 100% rename from highE-sounds/11.mp3 rename to src/frontend/assets/highE-sounds/11.mp3 diff --git a/highE-sounds/12.mp3 b/src/frontend/assets/highE-sounds/12.mp3 similarity index 100% rename from highE-sounds/12.mp3 rename to src/frontend/assets/highE-sounds/12.mp3 diff --git a/highE-sounds/13.mp3 b/src/frontend/assets/highE-sounds/13.mp3 similarity index 100% rename from highE-sounds/13.mp3 rename to src/frontend/assets/highE-sounds/13.mp3 diff --git a/highE-sounds/14.mp3 b/src/frontend/assets/highE-sounds/14.mp3 similarity index 100% rename from highE-sounds/14.mp3 rename to src/frontend/assets/highE-sounds/14.mp3 diff --git a/highE-sounds/15.mp3 b/src/frontend/assets/highE-sounds/15.mp3 similarity index 100% rename from highE-sounds/15.mp3 rename to src/frontend/assets/highE-sounds/15.mp3 diff --git a/highE-sounds/16.mp3 b/src/frontend/assets/highE-sounds/16.mp3 similarity index 100% rename from highE-sounds/16.mp3 rename to src/frontend/assets/highE-sounds/16.mp3 diff --git a/highE-sounds/17.mp3 b/src/frontend/assets/highE-sounds/17.mp3 similarity index 100% rename from highE-sounds/17.mp3 rename to src/frontend/assets/highE-sounds/17.mp3 diff --git a/highE-sounds/18.mp3 b/src/frontend/assets/highE-sounds/18.mp3 similarity index 100% rename from highE-sounds/18.mp3 rename to src/frontend/assets/highE-sounds/18.mp3 diff --git a/highE-sounds/2.mp3 b/src/frontend/assets/highE-sounds/2.mp3 similarity index 100% rename from highE-sounds/2.mp3 rename to src/frontend/assets/highE-sounds/2.mp3 diff --git a/highE-sounds/3.mp3 b/src/frontend/assets/highE-sounds/3.mp3 similarity index 100% rename from highE-sounds/3.mp3 rename to src/frontend/assets/highE-sounds/3.mp3 diff --git a/highE-sounds/4.mp3 b/src/frontend/assets/highE-sounds/4.mp3 similarity index 100% rename from highE-sounds/4.mp3 rename to src/frontend/assets/highE-sounds/4.mp3 diff --git a/highE-sounds/5.mp3 b/src/frontend/assets/highE-sounds/5.mp3 similarity index 100% rename from highE-sounds/5.mp3 rename to src/frontend/assets/highE-sounds/5.mp3 diff --git a/highE-sounds/6.mp3 b/src/frontend/assets/highE-sounds/6.mp3 similarity index 100% rename from highE-sounds/6.mp3 rename to src/frontend/assets/highE-sounds/6.mp3 diff --git a/highE-sounds/7.mp3 b/src/frontend/assets/highE-sounds/7.mp3 similarity index 100% rename from highE-sounds/7.mp3 rename to src/frontend/assets/highE-sounds/7.mp3 diff --git a/highE-sounds/8.mp3 b/src/frontend/assets/highE-sounds/8.mp3 similarity index 100% rename from highE-sounds/8.mp3 rename to src/frontend/assets/highE-sounds/8.mp3 diff --git a/highE-sounds/9.mp3 b/src/frontend/assets/highE-sounds/9.mp3 similarity index 100% rename from highE-sounds/9.mp3 rename to src/frontend/assets/highE-sounds/9.mp3 diff --git a/src/frontend/assets/images/acoustic-guitar-logo.jpeg b/src/frontend/assets/images/acoustic-guitar-logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4d0f696201373e391a608b8873b7785c46cb2955 GIT binary patch literal 43553 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 Uv+!AM-hSfU|3#=m|HqgA1SlN$DgXcg literal 0 HcmV?d00001 diff --git a/Images/blankTab.png b/src/frontend/assets/images/blankTab.png similarity index 100% rename from Images/blankTab.png rename to src/frontend/assets/images/blankTab.png diff --git a/lowE-sounds/0.mp3 b/src/frontend/assets/lowE-sounds/0.mp3 similarity index 100% rename from lowE-sounds/0.mp3 rename to src/frontend/assets/lowE-sounds/0.mp3 diff --git a/lowE-sounds/1.mp3 b/src/frontend/assets/lowE-sounds/1.mp3 similarity index 100% rename from lowE-sounds/1.mp3 rename to src/frontend/assets/lowE-sounds/1.mp3 diff --git a/lowE-sounds/10.mp3 b/src/frontend/assets/lowE-sounds/10.mp3 similarity index 100% rename from lowE-sounds/10.mp3 rename to src/frontend/assets/lowE-sounds/10.mp3 diff --git a/lowE-sounds/11.mp3 b/src/frontend/assets/lowE-sounds/11.mp3 similarity index 100% rename from lowE-sounds/11.mp3 rename to src/frontend/assets/lowE-sounds/11.mp3 diff --git a/lowE-sounds/12.mp3 b/src/frontend/assets/lowE-sounds/12.mp3 similarity index 100% rename from lowE-sounds/12.mp3 rename to src/frontend/assets/lowE-sounds/12.mp3 diff --git a/lowE-sounds/13.mp3 b/src/frontend/assets/lowE-sounds/13.mp3 similarity index 100% rename from lowE-sounds/13.mp3 rename to src/frontend/assets/lowE-sounds/13.mp3 diff --git a/lowE-sounds/14.mp3 b/src/frontend/assets/lowE-sounds/14.mp3 similarity index 100% rename from lowE-sounds/14.mp3 rename to src/frontend/assets/lowE-sounds/14.mp3 diff --git a/lowE-sounds/15.mp3 b/src/frontend/assets/lowE-sounds/15.mp3 similarity index 100% rename from lowE-sounds/15.mp3 rename to src/frontend/assets/lowE-sounds/15.mp3 diff --git a/lowE-sounds/16.mp3 b/src/frontend/assets/lowE-sounds/16.mp3 similarity index 100% rename from lowE-sounds/16.mp3 rename to src/frontend/assets/lowE-sounds/16.mp3 diff --git a/lowE-sounds/17.mp3 b/src/frontend/assets/lowE-sounds/17.mp3 similarity index 100% rename from lowE-sounds/17.mp3 rename to src/frontend/assets/lowE-sounds/17.mp3 diff --git a/lowE-sounds/18.mp3 b/src/frontend/assets/lowE-sounds/18.mp3 similarity index 100% rename from lowE-sounds/18.mp3 rename to src/frontend/assets/lowE-sounds/18.mp3 diff --git a/lowE-sounds/19.mp3 b/src/frontend/assets/lowE-sounds/19.mp3 similarity index 100% rename from lowE-sounds/19.mp3 rename to src/frontend/assets/lowE-sounds/19.mp3 diff --git a/lowE-sounds/2.mp3 b/src/frontend/assets/lowE-sounds/2.mp3 similarity index 100% rename from lowE-sounds/2.mp3 rename to src/frontend/assets/lowE-sounds/2.mp3 diff --git a/lowE-sounds/3.mp3 b/src/frontend/assets/lowE-sounds/3.mp3 similarity index 100% rename from lowE-sounds/3.mp3 rename to src/frontend/assets/lowE-sounds/3.mp3 diff --git a/lowE-sounds/4.mp3 b/src/frontend/assets/lowE-sounds/4.mp3 similarity index 100% rename from lowE-sounds/4.mp3 rename to src/frontend/assets/lowE-sounds/4.mp3 diff --git a/lowE-sounds/5.mp3 b/src/frontend/assets/lowE-sounds/5.mp3 similarity index 100% rename from lowE-sounds/5.mp3 rename to src/frontend/assets/lowE-sounds/5.mp3 diff --git a/lowE-sounds/6.mp3 b/src/frontend/assets/lowE-sounds/6.mp3 similarity index 100% rename from lowE-sounds/6.mp3 rename to src/frontend/assets/lowE-sounds/6.mp3 diff --git a/lowE-sounds/7.mp3 b/src/frontend/assets/lowE-sounds/7.mp3 similarity index 100% rename from lowE-sounds/7.mp3 rename to src/frontend/assets/lowE-sounds/7.mp3 diff --git a/lowE-sounds/8.mp3 b/src/frontend/assets/lowE-sounds/8.mp3 similarity index 100% rename from lowE-sounds/8.mp3 rename to src/frontend/assets/lowE-sounds/8.mp3 diff --git a/lowE-sounds/9.mp3 b/src/frontend/assets/lowE-sounds/9.mp3 similarity index 100% rename from lowE-sounds/9.mp3 rename to src/frontend/assets/lowE-sounds/9.mp3 diff --git a/chords/A-chords.mjs b/src/frontend/chords/A-chords.mjs similarity index 100% rename from chords/A-chords.mjs rename to src/frontend/chords/A-chords.mjs diff --git a/chords/B-chords.mjs b/src/frontend/chords/B-chords.mjs similarity index 100% rename from chords/B-chords.mjs rename to src/frontend/chords/B-chords.mjs diff --git a/chords/C-chords.mjs b/src/frontend/chords/C-chords.mjs similarity index 100% rename from chords/C-chords.mjs rename to src/frontend/chords/C-chords.mjs diff --git a/chords/Chord-finder.mjs b/src/frontend/chords/Chord-finder.mjs similarity index 100% rename from chords/Chord-finder.mjs rename to src/frontend/chords/Chord-finder.mjs diff --git a/chords/D-chords.mjs b/src/frontend/chords/D-chords.mjs similarity index 100% rename from chords/D-chords.mjs rename to src/frontend/chords/D-chords.mjs diff --git a/chords/E-chords.mjs b/src/frontend/chords/E-chords.mjs similarity index 100% rename from chords/E-chords.mjs rename to src/frontend/chords/E-chords.mjs diff --git a/chords/F-chords.mjs b/src/frontend/chords/F-chords.mjs similarity index 100% rename from chords/F-chords.mjs rename to src/frontend/chords/F-chords.mjs diff --git a/chords/Frets.mjs b/src/frontend/chords/Frets.mjs similarity index 100% rename from chords/Frets.mjs rename to src/frontend/chords/Frets.mjs diff --git a/chords/G-chords.mjs b/src/frontend/chords/G-chords.mjs similarity index 100% rename from chords/G-chords.mjs rename to src/frontend/chords/G-chords.mjs diff --git a/chords/Guitar.mjs b/src/frontend/chords/Guitar.mjs similarity index 100% rename from chords/Guitar.mjs rename to src/frontend/chords/Guitar.mjs diff --git a/chords/chordProg.mjs b/src/frontend/chords/chordProg.mjs similarity index 100% rename from chords/chordProg.mjs rename to src/frontend/chords/chordProg.mjs diff --git a/components/ChordDisplay.css b/src/frontend/components/ChordDisplay.css similarity index 100% rename from components/ChordDisplay.css rename to src/frontend/components/ChordDisplay.css diff --git a/components/ChordDisplay.jsx b/src/frontend/components/ChordDisplay.jsx similarity index 95% rename from components/ChordDisplay.jsx rename to src/frontend/components/ChordDisplay.jsx index 4f10a57..b3ac738 100644 --- a/components/ChordDisplay.jsx +++ b/src/frontend/components/ChordDisplay.jsx @@ -1,9 +1,9 @@ // ChordDisplay.jsx import React from 'react'; import DraggableChord from './DraggableChord'; -import { allC } from '../../../chords/C-chords.mjs'; +import { allC } from '../chords/C-chords.mjs'; import './ChordDisplay.css'; -import { frets } from '../../../chords/Frets.mjs'; +import { frets } from '../chords/Frets.mjs'; export default function ChordDisplay({ selectedOption }) { function findChordByName(objectsArray, targetName) { @@ -16,7 +16,7 @@ export default function ChordDisplay({ selectedOption }) { function mapChord(chord) { for (let i = 1; i < Object.values(chord).length; i++) { const reversedChordLine = ( -
+
{chord[i] .slice() .reverse() @@ -168,11 +168,11 @@ export default function ChordDisplay({ selectedOption }) { const chunkedChordData = chunkArray(chordData, 4); return ( -
+
{chunkedChordData.map((row, rowIndex) => (
{row.map((chord, colIndex) => ( -
+
))} diff --git a/components/ChordSelect.jsx b/src/frontend/components/ChordSelect.jsx similarity index 71% rename from components/ChordSelect.jsx rename to src/frontend/components/ChordSelect.jsx index 737b8be..3ca4622 100644 --- a/components/ChordSelect.jsx +++ b/src/frontend/components/ChordSelect.jsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { allCNames } from '../../../chords/C-chords.mjs'; +import { allCNames } from '../chords/C-chords.mjs'; export default function ChordSelect({ onSelect }) { const [selectedOption, setSelectedOption] = useState(''); @@ -13,9 +13,9 @@ export default function ChordSelect({ onSelect }) { return (
- - + {options.map((option, index) => (