flipside-org / aw-datacollection Goto Github PK
View Code? Open in Web Editor NEWThe Airwolf application that handles data collection.
Home Page: http://demo.flipside.org/airwolf
License: BSD 3-Clause "New" or "Revised" License
The Airwolf application that handles data collection.
Home Page: http://demo.flipside.org/airwolf
License: BSD 3-Clause "New" or "Revised" License
Models are responsible for saving entities to the database. Every time a new field is added to an entity, the save method in the model needs to be updated.
Ideally there would be a way to generalize this, maybe using public fields as fields that go in the database,.
Considering using the following?
tests/...
=> tests/phpunit/...
.
Mind there is a casperjs
subfolder that should stay there.
Having data stored in the browser poses security issues.
A user that gets access to the computer can change the data stored in the local storage.
As a cc operator starting a survey him/her should be presented with:
When cancelling a collection the cc operator should be prompted with:
When starting collection the user should be presented with:
Set status
Scenario:
A callcenter operator is filling a big form and the call drops when he's almost finished.
Should he be able to save it as a draft and continue later on, or just discard the data.
Update Build Spec with survey fields.
When a survey has a xml file a button to perform a test run should be shown.
The user should be presented with a form equal to the final one, but upon click on the submission button, only the validation should run.
Two changes are needed in pyxform.
We should consider forking pyxform and update it when needed.
Vagrant box didn't have the required OS packages and configs for this. Not sure if it solves the code igniter part of it, but we can now send emails via OS.
Steps to be replicated vagrant config:
$ sudo apt-get install coreutils mailutils sendmail
$ sudo sendmailconfig
Test with:
$ echo "This will go into the body of the mail." | mail -s "Hello world" [email protected]
Implement method to assign call tasks to cc operators
Right now the password is being hashed with sha1().
There are rainbow tables for these functions and we can not assume users will use safe passwords.
Implement passwords hashing with salt and a cost factor.
Right now, fields have no minimum length set.
User password, for example, should have a minimum length.
To be able to quickly test, modify and share a working version, the enketo library was added to the project just by copying files.
This library should be used as a git submodule.
CodeIgniter MongoDB Session Library
A PHP MongoDB query builder library
Create the users entity and some fixture data
Check the enketo form_model, understand what it does, how it works and implement something similar.
The text presented to the cc operator when collecting data should be set per survey, when creating/editing the survey.
Extend Users Roles.
Recover password functionality
A callcenter operator will be able to continue to collect data even if the connection drops (Given that he has enough number to call stored.)
However if he navigates away from the page he won't be able to come back. The page will not be available offline.
Do we really need that?
The callcenter operator will only be assigned a limited amount of numbers so, even if we have offline support, he will only be able to submit data until the numbers run out.
when a call task is assigned but there's no status, unassigned it after X amount of time.
A user (A), without connection, submits data and goes away.
The data is stored in the browser's localstorage.
The next day, another user (B) logs in the same computer and does data collection. The data from the previous user (A) should not be lost.
Right now an error will be thrown because the user (B) submitting the data collected by the user (A) is not assigned to that call task.
Option 1
Do not submit the data and store it in the browser until the other user (A) comes back.
Option 2
Store in the browser the id of the user (A) that collected the data. When the data is submitted, check if who collected is assigned to that call task. Several changes needed (Ex: author of call task status)
Every option has significant security flaws. Since the data is stored in the browser whoever gets access to the browser can change the data.
There should be an option to notify an user when his account is created.
Using CasperJS http://casperjs.org/
Validate if status is selected when halting collection.
Implement method and validations to add status to a call task activity array.
Add some logging throughout the code, for critical operation:
This should be able to be controlled enabled at the following levels:
Related with #31
Move email settings (admin email and name) to a config file
Implement single data collection.
This data collection will be started from the call activity page and will be used for one respondent at a time.
Follow up from #8
Full offline support is not needed. Instead ask for confirmation when the user is leaving the page and the connection is down.
Several tasks depend on survey statuses.
If possible use a config file to set the defaults for JsSettings.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.