Demo Mobile App Technology Evaluation
New here? Learn about Bountify and follow @bountify to get notified of new bounties! x

I'm looking for a simple app implemented in Flutter, AWS Honeycode, or possibly another technology to track the daily health of employees. The employee will have an account ID and sign in the first time, then each day answer six questions. The questions will be posted to a MongoDB remote database (we use Realm for this part), App needs to run on Android and IOS devices.

This is essentially an exercise to evaluate and compare these technologies, so we'll be looking for multiple solutions. The goal is to find the right technology for very rapid turnaround of dozens of very simple mobile applications.

The demo app should have a login with a previously assigned ID. No registration in the app. This ID should be stored on the mobile device so additional logins are not required. The launch screen should contain one numeric field and label, four yes/no questions, and one text fields. A send button to send the form to our database. The record will be sent to our API as a JSON message.

Hi, I'm discovering AWS HoneyCode and made a few tests, but it seems that there is a lot of limitation. The two major issue I see is :
  • yes/no questions, data can't be stored as boolean, it's only spreadsheet data
  • record of questions send are only store in an AWS datasheet and can't be exported to an external API
The major goal of honeycode is to stay based on an AWS environment. I made a small test with an app that sends data to a spreadsheet AWS, do you still want to see it ? or as it doesn't match your needs (mongodb) it's not interesting for you ?
kerncy 2 years ago
I thank you for the comment. That's exactly the sort of thing I've been trying to determine and I don't have enough time myself and my developers don't have time. Would you recommend Flutter or something else? The goal is to be able to produce really simple applications in very little time. Realistically, we probably need dozens of tiny tailored apps. I think I need to update my requirements. Too bad about Honeycode although I can still see a lot of places where it might be useful, being able to access a simple REST api should be a given these days.
billsouthworth 2 years ago
Yes, I would be curious to say your test app. Thanks.
billsouthworth 2 years ago
Hi, I haven't received your email yet in order to add you to the honeycode project. Can you please send it to me via PM ?
kerncy 2 years ago
aTCJR2eH
gbtagbbj 3 months ago
e' AND 238=6*8 AND 'g9ar'='g9ar
gbtagbbj 3 months ago
e" AND 238=6*8 AND "yy9I"="yy9I
gbtagbbj 3 months ago
e%' AND 238=6*8 AND 'Syaj'!='Syaj%
gbtagbbj 3 months ago
-1 OR 2+633-633-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+633-633-1=0+0+0+1
gbtagbbj 3 months ago
e' RLIKE (SELECT (CASE WHEN (517=517) THEN 1 ELSE 0x28 END)) --
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
byDjLpvQ'
gbtagbbj 3 months ago
U8vSJxau' OR 892=(SELECT 892 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
1dnzGfRQ') OR 492=(SELECT 492 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-1 OR 2+416-416-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 3+416-416-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 2+496-496-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+496-496-1=0+0+0+1
gbtagbbj 3 months ago
-1' OR 2+230-230-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 2+324-324-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 3+230-230-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 3+324-324-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+323-323-1=0+0+0+1 or 'wtpVj7zp'='
gbtagbbj 3 months ago
64jTlang')) OR 337=(SELECT 337 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-1 OR 2+843-843-1=0+0+0+1
gbtagbbj 3 months ago
-1' OR 3+323-323-1=0+0+0+1 or 'wtpVj7zp'='
gbtagbbj 3 months ago
-1 OR 3+843-843-1=0+0+0+1
gbtagbbj 3 months ago
-1" OR 2+705-705-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+218-218-1=0+0+0+1 --
gbtagbbj 3 months ago
-1" OR 3+705-705-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 3+218-218-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+195-195-1=0+0+0+1 or 'koa7KF6S'='
gbtagbbj 3 months ago
-1' OR 3+195-195-1=0+0+0+1 or 'koa7KF6S'='
gbtagbbj 3 months ago
-1" OR 2+171-171-1=0+0+0+1 --
gbtagbbj 3 months ago
-1" OR 3+171-171-1=0+0+0+1 --
gbtagbbj 3 months ago
e'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
rZgmqyF0'
gbtagbbj 3 months ago
Y8To4Nrr' OR 757=(SELECT 757 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
WLlQoR6E') OR 247=(SELECT 247 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
IY8Mr7Rb'
gbtagbbj 3 months ago
yG1rNjjr')) OR 383=(SELECT 383 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-5 OR 539=(SELECT 539 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
e'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
-5) OR 402=(SELECT 402 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
-1)) OR 554=(SELECT 554 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
osX1O4Fj' OR 873=(SELECT 873 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
MlsWvvgZ') OR 409=(SELECT 409 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
piPVtoRs')) OR 226=(SELECT 226 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
1*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
gbtagbbj 3 months ago
1'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
-1 OR 2+411-411-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 3+411-411-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 2+603-603-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+603-603-1=0+0+0+1
gbtagbbj 3 months ago
-1' OR 2+765-765-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 3+765-765-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+392-392-1=0+0+0+1 or 'QuZjJJEF'='
gbtagbbj 3 months ago
-1' OR 3+392-392-1=0+0+0+1 or 'QuZjJJEF'='
gbtagbbj 3 months ago
-1" OR 2+284-284-1=0+0+0+1 --
gbtagbbj 3 months ago
-1" OR 3+284-284-1=0+0+0+1 --
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
sToQv1E5'
gbtagbbj 3 months ago
-5 OR 361=(SELECT 361 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-5) OR 455=(SELECT 455 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-1)) OR 697=(SELECT 697 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
IhB7Wqbg' OR 294=(SELECT 294 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
X6WGtSbo') OR 490=(SELECT 490 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
8RVnXpt2')) OR 815=(SELECT 815 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
gbtagbbj 3 months ago
'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
awarded to kerncy

Crowdsource coding tasks.

2 Solutions


As discussed in comment, please send me your email as a private message so I can give you access to the AWS Honeycode workspace where you will be available to test the app in web mode.

For the mobile part, you will have to download the aws honeycode app from your store (I don't have access to it for the moment as it is not available for France). You might have to register to AWS Honeycode too.

For Flutter or something else, I have never developed a mobile application so I am not able to tell if it would work. Flutter from what I see is limited to android devices.

Just having a question about your app, as it is very simple. May be it would be easier to develop a webpage that will make AJAX requests to your API and that can be displayed in a web browser with an APP-UI-look-alike ? Could this be a solution ?

According to the docs, Flutter will work with both Android and IOS. I'd like to verify that. I think we need it to be a real semi-native app rather than a webapp. For other apps we've used React Native but I'm looking for something that's quicker and cheaper for very simple apps.
billsouthworth 2 years ago
-1 OR 2+993-993-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 3+993-993-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 2+541-541-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+541-541-1=0+0+0+1
gbtagbbj 3 months ago
-1' OR 2+761-761-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 3+761-761-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+345-345-1=0+0+0+1 or 'PLXdrOcG'='
gbtagbbj 3 months ago
-1' OR 3+345-345-1=0+0+0+1 or 'PLXdrOcG'='
gbtagbbj 3 months ago
-1" OR 2+886-886-1=0+0+0+1 --
gbtagbbj 3 months ago
-1" OR 3+886-886-1=0+0+0+1 --
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
gJ0rvGOR'
gbtagbbj 3 months ago
3e9O3PNL' OR 920=(SELECT 920 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
i9qFejgG') OR 484=(SELECT 484 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
JulKEJJg')) OR 450=(SELECT 450 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
e'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
us0m9oOf
gbtagbbj 3 months ago
-1 OR 2+639-639-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 3+639-639-1=0+0+0+1 --
gbtagbbj 3 months ago
-1 OR 2+865-865-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+865-865-1=0+0+0+1
gbtagbbj 3 months ago
-1' OR 2+572-572-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 3+572-572-1=0+0+0+1 --
gbtagbbj 3 months ago
-1' OR 2+537-537-1=0+0+0+1 or '3eXKCAEZ'='
gbtagbbj 3 months ago
-1' OR 3+537-537-1=0+0+0+1 or '3eXKCAEZ'='
gbtagbbj 3 months ago
-1" OR 2+533-533-1=0+0+0+1 --
gbtagbbj 3 months ago
-1" OR 3+533-533-1=0+0+0+1 --
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
61TqNzsW'
gbtagbbj 3 months ago
-5 OR 827=(SELECT 827 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-5) OR 449=(SELECT 449 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-1)) OR 299=(SELECT 299 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
txRGKKUF' OR 301=(SELECT 301 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
DRCXEjcE') OR 197=(SELECT 197 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
uNuRYD2t')) OR 959=(SELECT 959 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
555*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
gbtagbbj 3 months ago
555'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
Winning solution

Hi,

as a new solution, I created a flutter projet. You will be able to see the main.dart file here : https://pastebin.com/GmMmdNcv

The file pubspec.yaml is https://pastebin.com/an5XYdht

For installation just follow https://flutter.dev/docs/get-started/install and the part to create your first app. Then replace the generated files by the two I provided. It will launch a very simple app (missing the login part and cosmetics on success/error when calling websercices), that will show your form, and then post data as a JSON to your url once you hit submit.

You can download the full project here with all sources and dependancies : https://drive.google.com/file/d/1HmPqXqLIFksvoion1Fgh9e277c2vyNvU/view?usp=sharing

Do not hesitate if you have any question

I don't have time today to even look but I'm awarding the bounty now. If you could just send me a screenshot to bill@genomicexpression.com, I'd appreciate it. Thanks for the research and the app. What was your general feeling about Flutter? Everything we've generally been doing is in React or React Native.
billsouthworth 2 years ago
Concerning Flutter, I had more difficulties to deal with Android Studio and all is autocompletion tools than using Flutter. To design an app, it's pretty fast and lots of code are available in google. It took me about 5 hour to install the environment, understand the flutter concept and create the app by taking pieces of code on the web. You can have pretty fast result with a minimum of time. But if you want to get a "great" app, some concepts have to be studied deeplier (Future, Containers, Callbacks, ...). For the screenshot, here it is on my moto G4 : https://ibb.co/z551KcT
kerncy 2 years ago
Thanks. This is very helpful. So I guess it looks like a good tool for a "quick and dirty" app, but whenever we have the time and budget, React Native is probably still our best choice. If you are ever looking for some extra development work, keep us in mind. I'm also looking for talent to add to our all-remote team.
billsouthworth 2 years ago
Your resumee : 'flutter is for "quick and dirty" app' is not what I meant. From my point of view who have developed my first app for this bounty (never done any other android dev), it was quick and dirty. Someone who can spend more time in this solution might have the possibilities to create a great app too. All depends on the time you want to spend on it.
kerncy 2 years ago
Are you interested in doing some work on this as a contract? I'm very short handed for developers in-house and I'd like to continue bringing this to fruition.
billsouthworth 2 years ago
Hi, sorry, but I'm not allowed by my actual job to have a second contract. As Bounty are just extras, it is tolerated. Moreover, I don't have regular free time so it will be hard. But thank you for the proposition !
kerncy 2 years ago
Q160RRdl
gbtagbbj 3 months ago
-1 OR 2+627-627-1=0+0+0+1
gbtagbbj 3 months ago
-1 OR 3+627-627-1=0+0+0+1
gbtagbbj 3 months ago
RLIKE (SELECT (CASE WHEN (476=476) THEN 1 ELSE 0x28 END)) --
gbtagbbj 3 months ago
if(now()=sysdate(),sleep(15),0)
gbtagbbj 3 months ago
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
gbtagbbj 3 months ago
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gbtagbbj 3 months ago
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
gbtagbbj 3 months ago
1 waitfor delay '0:0:15' --
gbtagbbj 3 months ago
yuK5Vf35'
gbtagbbj 3 months ago
-5 OR 315=(SELECT 315 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-5) OR 635=(SELECT 635 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
-1)) OR 560=(SELECT 560 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
Thy1xa1t' OR 124=(SELECT 124 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
FI3k84nx') OR 13=(SELECT 13 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
KJaMnoIV')) OR 200=(SELECT 200 FROM PG_SLEEP(15))--
gbtagbbj 3 months ago
*DBMSPIPE.RECEIVEMESSAGE(CHR(99)||CHR(99)||CHR(99),15)
gbtagbbj 3 months ago
'||DBMSPIPE.RECEIVEMESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
gbtagbbj 3 months ago
'||(select 1 from (select pg_sleep(15))x)||'
gbtagbbj 3 months ago
''||(select 1 from (select pg_sleep(15))x)||''
gbtagbbj 3 months ago
View Timeline