Jak zacząć budowanie webaplikacji quiz?

0

Cześć,
Mam do napisania aplikację internetową z quizem. Nie wiem od czego zacząć, jeśli ktoś mógłby mi pomóc byłabym wdzięczna. Chciałabym, aby moje pytania wyświetlały się losowo i jak je pobierać wtedy z bazy danych?
Z góry dziękuję za pomoc

0
martynam napisał(a):

Cześć,
Mam do napisania aplikację internetową z quizem. Nie wiem od czego zacząć, jeśli ktoś mógłby mi pomóc byłabym wdzięczna. Chciałabym, aby moje pytania wyświetlały się losowo i jak je pobierać wtedy z bazy danych?
Z góry dziękuję za pomoc

Zacznij od sprecyzowania wymagań, zbierz wszystkie informacje jakie masz. Czy baza danych to konieczność?

Budowanie każdego projektu najlepiej zacząć od najbardziej podstawowej funkcji - czyli rozumiem że to będzie odpowiadanie na pytania. Czy odpowiedzi mają się zapisywać, czy mogą po prostu znikać? Jeśli mają się zapisywać to dobrze byłoby dodać logowanie i rejestrację.

Jeśli nie muszą się zapisywać, to wystarczy zrobić sam widok np w JavaScript i HTML.

0
Riddle napisał(a):
martynam napisał(a):

Cześć,
Mam do napisania aplikację internetową z quizem. Nie wiem od czego zacząć, jeśli ktoś mógłby mi pomóc byłabym wdzięczna. Chciałabym, aby moje pytania wyświetlały się losowo i jak je pobierać wtedy z bazy danych?
Z góry dziękuję za pomoc

Zacznij od sprecyzowania wymagań, zbierz wszystkie informacje jakie masz. Czy baza danych to konieczność?

Budowanie każdego projektu najlepiej zacząć od najbardziej podstawowej funkcji - czyli rozumiem że to będzie odpowiadanie na pytania. Czy odpowiedzi mają się zapisywać, czy mogą po prostu znikać? Jeśli mają się zapisywać to dobrze byłoby dodać logowanie i rejestrację.

Jeśli nie muszą się zapisywać, to wystarczy zrobić sam widok np w JavaScript i HTML.

Logowanie i rejestrację już mam. Chciałabym, żeby te odpowiedzi się zapisywały. Pytania można wczytywać z pliku i za każdym razem kiedy użytkownik włączy quiz pojawią się inne?

0
martynam napisał(a):
Riddle napisał(a):
martynam napisał(a):

Cześć,
Mam do napisania aplikację internetową z quizem. Nie wiem od czego zacząć, jeśli ktoś mógłby mi pomóc byłabym wdzięczna. Chciałabym, aby moje pytania wyświetlały się losowo i jak je pobierać wtedy z bazy danych?
Z góry dziękuję za pomoc

Zacznij od sprecyzowania wymagań, zbierz wszystkie informacje jakie masz. Czy baza danych to konieczność?

Budowanie każdego projektu najlepiej zacząć od najbardziej podstawowej funkcji - czyli rozumiem że to będzie odpowiadanie na pytania. Czy odpowiedzi mają się zapisywać, czy mogą po prostu znikać? Jeśli mają się zapisywać to dobrze byłoby dodać logowanie i rejestrację.

Jeśli nie muszą się zapisywać, to wystarczy zrobić sam widok np w JavaScript i HTML.

Logowanie i rejestrację już mam. Chciałabym, żeby te odpowiedzi się zapisywały. Pytania można wczytywać z pliku i za każdym razem kiedy użytkownik włączy quiz pojawią się inne?

No to pytanie, jak chcesz zadbać o to żeby się pojawiały inne? Możesz albo dla każdego usera pamiętać ostatnie pytanie, i wybierać następne; albo możesz po prostu losować, tylko wtedy przez statystkę tak się zdarzy że czasem dostaniesz dwa te same pod rząd.

Co do samego quizu, zrób prosty widok który po prostu pokazuje kolejne pytanie, na podobnej zasadzie jak działa Twoje logowanie i rejestracja (Czyli albo SSR albo SPA).

0
Riddle napisał(a):
martynam napisał(a):
Riddle napisał(a):
martynam napisał(a):

Cześć,
Mam do napisania aplikację internetową z quizem. Nie wiem od czego zacząć, jeśli ktoś mógłby mi pomóc byłabym wdzięczna. Chciałabym, aby moje pytania wyświetlały się losowo i jak je pobierać wtedy z bazy danych?
Z góry dziękuję za pomoc

Zacznij od sprecyzowania wymagań, zbierz wszystkie informacje jakie masz. Czy baza danych to konieczność?

Budowanie każdego projektu najlepiej zacząć od najbardziej podstawowej funkcji - czyli rozumiem że to będzie odpowiadanie na pytania. Czy odpowiedzi mają się zapisywać, czy mogą po prostu znikać? Jeśli mają się zapisywać to dobrze byłoby dodać logowanie i rejestrację.

Jeśli nie muszą się zapisywać, to wystarczy zrobić sam widok np w JavaScript i HTML.

Logowanie i rejestrację już mam. Chciałabym, żeby te odpowiedzi się zapisywały. Pytania można wczytywać z pliku i za każdym razem kiedy użytkownik włączy quiz pojawią się inne?

No to pytanie, jak chcesz zadbać o to żeby się pojawiały inne? Możesz albo dla każdego usera pamiętać ostatnie pytanie, i wybierać następne; albo możesz po prostu losować, tylko wtedy przez statystkę tak się zdarzy że czasem dostaniesz dwa te same pod rząd.

Co do samego quizu, zrób prosty widok który po prostu pokazuje kolejne pytanie, na podobnej zasadzie jak działa Twoje logowanie i rejestracja (Czyli albo SSR albo SPA).

Ok, spróbuję to zrobić. Czy w razie jakbym miała jakieś pytania mogę pisać tutaj?

1

Zacznij od zrobienia komponentu Angularowego który na razie ma pytania wpisane na sztywno.

0
Riddle napisał(a):

Zacznij od zrobienia komponentu Angularowego który na razie ma pytania wpisane na sztywno.

Ok

0

Za wcześnie nie ma co ruszać do technikaliów.

Rozrysuj sobie to na kartce poszczególne elementy.
Pomyśl o tym, co tam chcesz mieć.

Zapewne będzie tam jakaś hierarchia - jeden quizz będzie mógł zawierać wiele pytań, każde pytanie będzie zawierało kilka odpowiedzi, niektóre z odpowiedzi będą prawdziwe, niektóre nie.

w pseudokodzie tę hierarchię można by opisać tak

Quizz {
   title: string
   questions: list of Question
}

Question { 
   text: string
   answers: list of Answer
}

Answer {
   text: string
   isCorrect: boolean
}

Na kartce można narysować kwadraciki, podpisać, połączyć strzałkami. Brzmi banalnie, ale później jednak ta hierarchia (albo inna, którą sobie wymyślisz) będzie widoczna na trzech (lub więcej) różnych poziomach/warstwach:

  1. GUI/widok - w tagach dałaś Angular, czyli mogą to być angularowe elementy. Czyli będziesz mieć zapewne jakiś komponent, który wyświetla cały Quizz, jakiś komponent, który odpowiada za wyświetlenie pojedynczego pytania, pojedynczej odpowiedzi itp. Hierarchia komponentów
  2. Dane komponentów - obiekty JS, które będziesz przekazywać jako dane do komponentów (nie jestem do końca pewien, jak to się w Angularze robi, w React by się je przekazało np. poprzez propsy). Te obiekty również będą odzwierciedlać pewną hierarchię

Na tym etapie możesz już zrobić swoją apkę, całkowicie po stronie frontendu, bez bazy danych itp. I tutaj kwestia techniki wchodzi - czy potrafisz zrobić w Angularze (czy w czym to tam robisz) drzewko powiązanych ze sobą komponentów działających na jednej hierarchicznej strukturze danych.

  1. jednak jeśli chcesz bazę danych, to również po stronie backendu będziesz musiała zaprojektować w bazie danych tę hierarchię Quizz->Questions->Answers (albo inną, jeśli uznasz, że wolisz inną). Co prawda w relacyjnych bazach danych ta hierarchia może wyglądać totalnie inaczej (jako seria powiązanych tabel), ale dalej koncepcyjnie będzie to to samo.

No i backend może nasłuchiwań żądań z frontendu i potem np. pobrać dane z bazy danych dla konkretnego quizzu (zapewne jakiś JOIN, jeśli to będzie w SQL) i wystawić je w postaci JSON (już w odpowiedniej hierarchii)

Dalsze opcjonalne punkty:

  • może jakiś ORM na backendzie, który ci przemapuje hierarchie na tabele w bazie danych. Tam też będzie widoczna ta hierarchia
  • być może hierarchia będzie się odzwierciedlać również w zapytaniach, które dajesz do serwera (szczególnie, jeślibyś korzystała z GraphQL, czego raczej nie będziesz potrzebować, jeśli zadajesz pytania o podstawy, ale chodzi o to, że ustalony porządek/hierarchia/taksonomia itp. odbija się na wielu płaszczyznach apki)
0

Możesz na początek stworzyć taką aplikację korzystając wyłącznie z JavaScriptu (TypeScriptu) po stronie przeglądarki. Statystyki odpowiedzi i inne rzeczy możesz zapisywać w ciasteczkach, natomiast pytania zawrzeć w osobnym pliku XML bądź JSON i pobierać je przy użyciu XHR lub jego odpowiednika w jakiejś bibliotece. Gdy zdecydujesz się na back-end i bazę danych to po prostu usuniesz ten statyczny plik z pytaniami i w jego miejsce napiszesz skrypt wyciągający pytania z bazy danych, może on też wybierać losowe niewystępujące wcześniej pytanie (czytając to samo ciasteczko, które zapisał skrypt po stronie klienta).

1 użytkowników online, w tym zalogowanych: 0, gości: 1