2012-12-10 11 views
11

Za chwilę rozpocznę aplikację mobilną do ankiet. Będą 2 użytkowników: Surveyor i Survey_Taker. Geodeta zaprojektuje ankietę i prześle ją ankietobiorcy. Zgłaszający wypełnia ankietę i odsyła ją do inspektora.Architektura aplikacji Mobile Survey

Teraz potrzebowałbym hostować bazę danych w Internecie, aby zsynchronizować dane z telefonu komórkowego biorcy ankiety, aby wysłać go z powrotem do geodeta. Czy mogę to zrobić bez niego?

Ciekawe, czy mogę wysłać ankietę z funkcjonalnością do przechowywania danych ankiety w pliku tekstowym? Jakie byłyby wtedy konsekwencje?

+0

Czy geodeta używa również aplikacji mobilnej do wyświetlania wyników lub czy jest to aplikacja działająca w oparciu o komputer stacjonarny lub internetowy? – Raul

+0

@Raul Inspektor powinien otrzymywać i wypełniać ankiety za pośrednictwem swojej komórki. Zostaną one przesłane przez osobę biorącą udział w ankiecie. –

Odpowiedz

3

Proponuję cienki serwer odpowiedzialny za przechowywanie i agregowanie niektórych danych raportu. Posiadanie serwera do synchronizacji między typami klientów okazałoby się bardziej niezawodne. Przechowywanie można wykonać w plikach, na przykład w formacie JSON. Alternatywnie, w zależności od potrzeb skalowania, pamięć może zostać przełączona na bazę danych NoSQL. Aby rozpocząć szybko, możesz mieć serwer Node.js.

+0

To, co masz na myśli to: "Gdy ankieta zostanie pobrana na telefon klienta, a klient ją zapełni, wprowadzone wartości są przechowywane w płaskim pliku w formacie JSON, a następnie te dane są pobierane do DB (NoSQL db) hostowane na serwerze ". Potwierdź i popraw mnie, jeśli się mylę. –

+1

Myślę, że moim celem jest posiadanie (NoSQL) DB jest kwestią skalowalności, a nie projektu. Możesz to zrobić bez niego.Odnośnie metody, w jakiej ankieta pochodzi od osoby, która ją przyjmuje, a osoba oglądająca ją za pośrednictwem serwera. Zapisz ankietę na serwerze i przekaż ją klientowi. Aplikacja geodeta może sondować serwer w poszukiwaniu nowych wyników. Mam nadzieję że to pomoże. – Raul

+0

Dobrze! Inna opcja: czy mogę zaprojektować moje ankiety otrzymywane lub wysyłane jako treść wiadomości e-mail/załącznik (HTML5/CSS)? –

4

Doskonale można obejść się bez bazy danych, na przykład wysyłając wyniki ankiety e-mailem do inspektora. Jednak analiza wyników może być nieco nieprzyjemna. W związku z tym zapotrzebowanie na bazę danych zależy głównie od wymagań dotyczących raportowania. A więc: co chcesz zrobić z danymi?

+0

Chciałbym reprezentować dane na wykresach i wykresach. –

4

Będąc aplikacji mobilnych, na pewno wziąć pod uwagę następujące elementy:

  • zakładek ankietę
  • przechowywać badanie w moim telefonie do późniejszego zakończenia
  • Odpowiedź badanie nieaktywny
  • Wyślij ankieta na serwerze
  • Pojednanie odebranej ankiety (w przypadku, gdy pytania ankiety zmieniły się w międzyczasie)

Powiedziałem, że użyłbym lokalnego magazynu (pliku?) Na urządzeniu mobilnym i bazy danych na serwerze.

+0

Czy istnieje inny substytut DB na serwerze? Czy mogę to zrobić? –

+0

Nie mogę użyć e-maila i płaskiego pliku? –

+0

Nie mogę zaprojektować moich ankiet w javascript. A następnie zmusić go do ankiety przez e-mail/załącznik? Czy możesz wskazać mi tę opcję? –

5

Inną alternatywą do robienia badań używa Google Forms http://www.labnol.org/software/google-docs-forms-for-surveys/10056/

Zapewnia:

  • dobry wyświetlania na urządzeniach mobilnych
  • wysyłających
+0

To jest rzeczywiście bardzo niedrogi sposób na opracowanie aplikacji ankietowej. Ciekawe, czy Google Docs również pomaga w raportowaniu? –

+1

Tak, Goolge Forms obsługuje ankiety. http://www.mattsilverman.com/2008/10/introduction-to-google-forms.html – Raul

0

Małe pytania pierwszą wiadomość z wyników:

Tak, możesz użyć pliku tekstowego, ale myślę, że JSON jest prostszy. Jest czytelny dla ludzi, gdy jest drukowany, niedwuznaczny i bezpieczny od znaków specjalnych.

Możesz mieć własną prostą bazę danych REST, możesz użyć dużej witryny aplikacji (witryny google/fb/etc), możesz nawet wysyłać wiadomości e-mail tam iz powrotem, to zależy od Ciebie.

Strona klienta, którą chcesz HTML5.

Jednak najważniejszym aspektem (*) systemu jest użyteczność dla większości użytkowników - użytkowników ankiet.

Rozważmy ten okropny przykład:

What is your age: 
[ ] between 1 and 5 
[ ] between 6 and 10 
etc. 

następnie rozważyć to, bezwzględną survey zabójcę:

How much do you agree with the following: 
          not at all/not really/neutral/somewhat/a lot 
My cat likes red    [ ]  [ ]   [ ]  [ ]  [ ] 
Eggs are better than ham  [ ]  [ ]   [ ]  [ ]  [ ] 
I don't take a bus   [ ]  [ ]   [ ]  [ ]  [ ] 
I hate politics    [ ]  [ ]   [ ]  [ ]  [ ] 
Fish is expensive    [ ]  [ ]   [ ]  [ ]  [ ] 
Pollution is good    [ ]  [ ]   [ ]  [ ]  [ ] 
Manager helped me a lot  [ ]  [ ]   [ ]  [ ]  [ ] 
Repairman was not helpful  [ ]  [ ]   [ ]  [ ]  [ ] 
Supervisor knows his shit  [ ]  [ ]   [ ]  [ ]  [ ] 
Salesmen were friendly  [ ]  [ ]   [ ]  [ ]  [ ] 
Office smells and looks nice [ ]  [ ]   [ ]  [ ]  [ ] 

Po pierwsze, użytkownicy są przytłoczeni z wyboru, a wiele zrezygnować

Następnie niektórzy mylą, które pole odnosi się do którego pytania:

Wtedy niektórzy nie dostają podwójnej negacji "nie zgadzam się z tym, że mechanik nie jest pomocny"

Ostatecznie jedynymi użytkownikami, którzy wypełnią twoją ankietę, są ci, którzy wybrali losowe odpowiedzi i kilku, którzy mają naprawdę silne uczucia. Tak czy inaczej, wyniki są czystymi śmieciami - losowość zmieszana z przesadą.

Rozważmy teraz lepiej zaprojektowane survey interace:

What was your impression? 
[smiley]<====[slider]====>[angry] 

How far do you live from our store? 
[house]<=====[slider]=====>[mountain] 

# slider icon changes as you drag it: 
# house/block/road/highway/city/mountain 

Gdy sondaże są szybkie i do tego stopnia, dostaniesz dużo więcej odpowiedzi.

Jest o wiele więcej, które trafia do dobrej ankiety, np. pytania nie powinny być sugestywne (ile wynosiło jak np. nasze usługi?), pytania muszą być jednoznaczne (jak jest nasza nowa sekcja?), pytania nie mogą być zbyt osobiste (kiedy umarło dziecko?) itp. Myślę, że wiele książki są napisane na ten temat, ale nie można tego łatwo wymusić w swoim systemie.

(*) Zakładam, że przeciętni użytkownicy, którzy zdecydują się wziąć udział w ankietach, odrzucam przypadki, w których użytkownicy są zmuszeni do udziału, np. egzaminy szkolne.

+0

Pytanie dotyczy konkretnie idealnej architektury aplikacji ankietowej na platformie mobilnej, a nie typowej ankiety. wygląda jak! Chociaż, ja cenię twoją opinię tutaj w odniesieniu do UŻYTECZNOŚCI. Pamiętaj, że w każdym cyklu życia produktu pytania, które pojawiają się na początku, to "CO" i "DLACZEGO" .... a następnie "JAK"! –

+0

Byłbym bardzo wdzięczny, gdybyś mógł rozwinąć pierwsze 6 linii odpowiedzi. Dzięki –

+0

Rozważmy następujący format pliku tekstowego: 'question =" jak daleko? " options = "1,2,3" 'teraz wyobraź sobie, że jakiś klient pyta' jak daleko do "HYD"? 'i kończysz na' question = "jak daleko do" ICT "?" ... ", którego nie możesz już analizować. będziesz musiał wymyślić własne sekwencje ucieczki itd. Dlatego lepiej jest trzymać się istniejącego formatu, JSON lub pliku ini. –

0

Aby przeprowadzić ankietę mobilną, sprawdź numer http://askmeqr.com - mobilną wersję generatora formularzy Google.