RAGUPRATO is a practice tool for playing guitar. It consists of personal lessons the user can create which have the following features:
Iframe
The entry file for the application
Global styles. Styles which several components share
Some helper methods which are shared by several components. These are for example a debounce
function to avoid triggering a specific function too many times, an apiCall
function which implements error checking, a simple createID
function which uses Math.random()
to create unique ids and an updateLesson
function which updates the localStorage
of the user
The main meat of the application. Contains code to render a youtube videos, an <Iframe />
for chords, a diagram for strumming patterns, a stopwatch and notes
Header component containing the stopwatch for the Lesson component
A list component which lists all lessons including a quick overview about which lessons are and how long was played
The sticky header
Items for the header
Basically a form where you can add a youtube video, an url for the chords as well as the title and the artist of the song
A simple stopwatch implementation. It uses the window
functions window.setInterval
and window.clearInterval
for implementing the functionality. Also, hidden from the user, an updateTime
function collects the seconds which have passed since the interval was running to compute the total time the user has spent practicing
A graphic representation of the result of an api call to the youtube api
Uses the users microfon to visualize the chords played using the Audio
interface of the browser
git clone https://github.com/Gh05d/raguprato.git
run npm install
to install all dependenciesnpm run start