diff --git a/.gitignore b/.gitignore index 129d522..7f8fa19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ build/bin node_modules frontend/dist +data + diff --git a/app.go b/app.go index 35e3681..ab4c175 100644 --- a/app.go +++ b/app.go @@ -3,14 +3,19 @@ package main import ( "context" + "git.andreafazzi.eu/andrea/probo/client" "git.andreafazzi.eu/andrea/probo/models" "git.andreafazzi.eu/andrea/probo/store/file" + "github.com/fsnotify/fsnotify" + "github.com/wailsapp/wails/v2/pkg/runtime" ) // App struct type App struct { - ctx context.Context - store *file.FileProboCollectorStore + ctx context.Context + + store *file.FileProboCollectorStore + watcher *fsnotify.Watcher } type Quiz struct { @@ -34,6 +39,68 @@ func (a *App) startup(ctx context.Context) { a.ctx = ctx } +func (a *App) onShutdown(ctx context.Context) { + a.watcher.Close() +} + +func (a *App) onDomReady(ctx context.Context) { + var err error + + // Create new watcher. + a.watcher, err = fsnotify.NewWatcher() + if err != nil { + runtime.LogFatal(ctx, err.Error()) + } + + // Start listening for events. + go func() { + runtime.LogDebug(ctx, "Filesystem watcher initialized...") + for { + select { + case event, ok := <-a.watcher.Events: + if !ok { + return + } + runtime.LogDebugf(ctx, "Event: %v", event) + if event.Has(fsnotify.Write) { + runtime.LogDebugf(ctx, "Modified file: %v", event.Name) + runtime.EventsEmit(ctx, "fsChangeEvent") + } + case err, ok := <-a.watcher.Errors: + if !ok { + return + } + runtime.LogDebugf(ctx, "Error: %v", err) + } + } + }() + + // Add a path. + + runtime.LogDebugf(ctx, "Begin watching path %v", a.store.Dir) + + err = a.watcher.Add(a.store.Dir) + if err != nil { + runtime.LogFatalf(ctx, "Error: %v", err) + } +} + func (a *App) ReadAllQuizzes() ([]*models.Quiz, error) { return a.store.ReadAllQuizzes() } + +func (a *App) MarkdownFromQuiz(quiz *models.Quiz) (string, error) { + return file.MarkdownFromQuiz(quiz) +} + +func (a *App) QuizFromMarkdown(markdown string) (*client.Quiz, error) { + return file.QuizFromMarkdown(markdown) +} + +func (a *App) UpdateQuiz(quiz *client.Quiz, id string) (*models.Quiz, error) { + return a.store.UpdateQuiz(&client.CreateUpdateQuizRequest{Quiz: quiz}, id) +} + +func (a *App) CreateQuiz(quiz *client.Quiz) (*models.Quiz, error) { + return a.store.CreateQuiz(&client.CreateUpdateQuizRequest{Quiz: quiz}) +} diff --git a/data/quizzes/question_1_1.md b/data/quizzes/question_1_1.md deleted file mode 100644 index c310330..0000000 --- a/data/quizzes/question_1_1.md +++ /dev/null @@ -1,6 +0,0 @@ -Per intensità di corrente elettrica si intende - -* La quantità di carica che scorre in un circuito per unità di tempo -* La differenza di potenziale elettrico -* La quantità di carica elettrica -* L'accelerazione a cui sono sottoposti gli elettroni all'interno del circuito diff --git a/data/quizzes/question_1_11.md b/data/quizzes/question_1_11.md deleted file mode 100644 index 020b89d..0000000 --- a/data/quizzes/question_1_11.md +++ /dev/null @@ -1,6 +0,0 @@ -L'amperometro è - -* Uno strumento di misura della corrente elettrica -* Uno strumento di misura della differenza di potenziale -* Si collega al circuito in parallelo -* Uno strumento di misura della carica elettrostatica diff --git a/data/quizzes/question_1_12.md b/data/quizzes/question_1_12.md deleted file mode 100644 index 4b95c71..0000000 --- a/data/quizzes/question_1_12.md +++ /dev/null @@ -1,6 +0,0 @@ -Il voltmetro - -* Serve a misurare la differenza di potenziale tra due punti del circuito -* Serve a misurare la corrente elettrica circolante tra due punti del circuito -* Misura la carica elettrostatica presente sulle armature di un condensatore -* E' sempre collegato in serie diff --git a/data/quizzes/question_1_2.md b/data/quizzes/question_1_2.md deleted file mode 100644 index 1ae9707..0000000 --- a/data/quizzes/question_1_2.md +++ /dev/null @@ -1,6 +0,0 @@ -La corrente elettrica si misura in - -* Ampere (A) -* Volt (V) -* Coulomb (C) -* Metri al secondo (m/s) diff --git a/data/quizzes/question_1_3.md b/data/quizzes/question_1_3.md deleted file mode 100644 index a8489b3..0000000 --- a/data/quizzes/question_1_3.md +++ /dev/null @@ -1,6 +0,0 @@ -Un generatore all'interno di un circuito elettrico ha la funzione di - -* Mantenere le cariche in movimento mantenendo stabile una differenza di potenziale -* Generare energia dal nulla -* Rallentare le cariche che altrimenti si muoverebbero troppo velocemente -* Nessuna delle risposte previste è corretta diff --git a/data/quizzes/question_1_4.md b/data/quizzes/question_1_4.md deleted file mode 100644 index eb6933a..0000000 --- a/data/quizzes/question_1_4.md +++ /dev/null @@ -1,6 +0,0 @@ -La prima legge di Ohm descrive la relazione tra - -* Corrente elettrica e differenza di potenziale -* Tra potenza dissipata e corrente elettrica -* Tra capacità di un condensatore e differenza di potenziale -* Tra potenziale gravitazionale e corrente elettrica diff --git a/data/quizzes/question_1_5.md b/data/quizzes/question_1_5.md deleted file mode 100644 index a3ec0b1..0000000 --- a/data/quizzes/question_1_5.md +++ /dev/null @@ -1,6 +0,0 @@ -La resistenza elettrica R - -* E' pari al rapporto tra differenza di potenziale e corrente elettrica e si misura in ohm -* E' pari al rapporto tra differenza di potenziale e forza elettromotrice e si misura in volt -* E' pari al prodotto tra differenza di potenziale e corrente elettrica e si misura in ohm -* E' pari al rapporto tra differenza di potenziale e potenza dissipata e si misura in joule diff --git a/data/quizzes/question_1_6.md b/data/quizzes/question_1_6.md deleted file mode 100644 index fb57d18..0000000 --- a/data/quizzes/question_1_6.md +++ /dev/null @@ -1,6 +0,0 @@ -Il cosidetto effetto Joule - -* Descrive la potenza dissipata in un circuito sotto forma di calore -* Descrive la quantità di calore dissipata dal circuito -* Descrive la differenza di potenziale presente nel circuito -* Nessuna delle risposte previste è corretta diff --git a/data/quizzes/question_1_7.md b/data/quizzes/question_1_7.md deleted file mode 100644 index f4bb6fb..0000000 --- a/data/quizzes/question_1_7.md +++ /dev/null @@ -1,6 +0,0 @@ -La seconda legge di Ohm - -* Mette in relazione la resistenza di un conduttore con la sua lunghezza e la sua sezione -* Mette in relazione la differenza di potenziale con la corrente elettrica -* Non esiste -* Descrive la quantità di calore dissipata da un circuito per effetto Joule diff --git a/data/quizzes/question_1_8.md b/data/quizzes/question_1_8.md deleted file mode 100644 index 7dea458..0000000 --- a/data/quizzes/question_1_8.md +++ /dev/null @@ -1,6 +0,0 @@ -Affinché in un circuito possa circolare corrente continua, il generatore di tensione - -* Fornisce una potenza pari a quella dissipata per effetto Joule -* Fornisce una potenza minore a quella dissipata per effetto Joule -* Rallenta le cariche elettriche -* Dev'essere spento diff --git a/data/quizzes/question_1_9.md b/data/quizzes/question_1_9.md deleted file mode 100644 index 1158ad9..0000000 --- a/data/quizzes/question_1_9.md +++ /dev/null @@ -1,6 +0,0 @@ -Se in un circuito l'energia non venisse dissipata per effetto Joule - -* Una volta attivata la circolazione della corrente elettrica, le cariche continuerebbero a muoversi indefinitamente -* Le cariche continuerebbero a muoversi indefinitamente senza necessità di attivare la loro circolazione -* Allora sarebbe dissipata sotto forma di calore -* Le cariche si fermerebbero immediatamente diff --git a/data/quizzes/test.md b/data/quizzes/test.md deleted file mode 100644 index d04f734..0000000 --- a/data/quizzes/test.md +++ /dev/null @@ -1,7 +0,0 @@ -Quali grandezze fisiche mette in relazione l'esperienza di Oersted? - -* Campo magnetico con campo elettrico -* Campo gravitazionale con campo elettrico -* L'energia nucleare forte con quella debole -* Cariche elettriche con densità di carica superficiale - diff --git a/data/quizzes/test_2.md b/data/quizzes/test_2.md deleted file mode 100644 index c072694..0000000 --- a/data/quizzes/test_2.md +++ /dev/null @@ -1,6 +0,0 @@ -La corrente elettrica rappresenta - -* Un moto ordinato di cariche elettriche -* Un moto disordinato di cariche elettriche -* Un moto disordinato di masse -* Un moto ordinato di masse diff --git a/frontend/src/lib/components/QuizCard.svelte b/frontend/src/lib/components/QuizCard.svelte index de13ee2..4064420 100644 --- a/frontend/src/lib/components/QuizCard.svelte +++ b/frontend/src/lib/components/QuizCard.svelte @@ -1,49 +1,95 @@ -
- {quiz.question.Text} -
- +