- Telepítsd a node.js v10.x -et
- Klónozd ezt a repót:
git clone https://github.com/a-gondolkodas-orome/feedback-app.git
- Telepítsd az Expo command line tool-t:
npm install expo-cli --global
- A telefonodon telepítsd az Expo appot (https://play.google.com/store/apps/details?id=host.exp.exponent)
- A feedback-app könyvtárban
npm install
- A feedback-app könyvtárban
expo start
(vagynpm start
), a telefonodon nyisd meg az Expo appot, és szkenneld be a QR-kódot
- React Native Framework-ben fejlesztjük az appot: https://reactnative.dev/docs/getting-started
- Expo dokumentáció: https://docs.expo.io/versions/latest/
- Backend-nek a Firebase-t használjuk, az adatokat a Cloud Firestore-ban tároljuk
- Az apphoz használt React Native komponensek:
- Az állapot tárolásához Redux
- Az állapot mentéséhez Redux Persist
- Értesítésekhez Expo Notifications
- Menűhöz React Native Material Menu
- Spinner-hez React Native Loading Spinner Overlay
- Admin weboldal
- A fejlesztők a Cloud Firestore console-on is tudják szerkeszteni az adatokat (események, kérdések), és vizsgálni a válaszokat: https://console.firebase.google.com/project/feedback-app-ago/database
- event
- name (string): az esemény címe
- code (string): 3-5 számjegy, amivel kapcsolódni lehet
- from (dátum): az esemény kezdetének időpontja
- until (dátum): az esemény végének időpontja
- frequency (szám, perc): kérdések gyakorisága percekben
- duration (szám, óra, opcionális): maximum hány órán át tegyünk fel kérdéseket, az első választól számítva
- morning (szám, óra, opcionális): szám, 0..23 lehet, reggel ennyi óra előtt nem adunk értesítést
- evening (szám, óra, opcionális): szám, 0..23 lehet, este ennyi óra után nem adunk értesítést
Minden event-hez tartozik egy questions collection
- question
- type (scale5 / scale3 / scale10 / wordcloud / textbox): a válaszadás típusa
- text (string): a kérdés szövege
- words (array, csak ha type=wordcloud): a választható szavak listája
Minden question-höz tartozik egy answers collection:
- answer
- name (string): ez igazából user id
- answer (string): a válasz szövege, értéke
- timestamp (dátum): a válasz időpontja, a telefon szerinti időt tároljuk