No description
Find a file
2016-08-14 18:00:15 +02:00
api Fixes #111 2016-08-14 14:41:48 +02:00
app Fix: CSP style-src: 'unsafe-inline' violation 2016-08-13 18:46:46 +02:00
config Update to chartjs 2.x 2016-08-12 23:09:43 +02:00
public Update to chartjs 2.x 2016-08-12 23:09:43 +02:00
server rewritten api using Slim Framework 2015-08-01 18:42:48 +02:00
tests Update to chartjs 2.x 2016-08-12 23:09:43 +02:00
.bowerrc first steps to ember-cli 2014-10-30 21:44:22 +01:00
.editorconfig update ember-cli to 1.2.1 and ember to 1.10 2015-04-02 12:56:55 +02:00
.ember-cli first steps to ember-cli 2014-10-30 21:44:22 +01:00
.gitignore remove auto generated files from repository 2016-04-11 01:00:59 +02:00
.jscsrc update ember-suave and fix some coding style 2016-08-11 22:47:17 +02:00
.jshintrc upgrade ember-cli to 0.1.7 2015-01-18 18:06:47 +01:00
.travis.yml use npm 3.x in CI (travis) 2016-08-12 23:09:43 +02:00
.watchmanconfig upgrade ember-cli to 1.13.13 2015-12-07 20:24:22 +01:00
bower.json Update to chartjs 2.x 2016-08-12 23:09:43 +02:00
ember-cli-build.js broccoli-merge-trees not needed anymore since app.toTree() supports multiple trees as argument 2016-08-14 18:00:15 +02:00
LICENSE Starting to move to Ember App Kit 2014-07-06 17:37:54 +02:00
package.json broccoli-merge-trees not needed anymore since app.toTree() supports multiple trees as argument 2016-08-14 18:00:15 +02:00
README.md Link to new ZeroBin 2016-07-04 14:03:48 +02:00
testem.js updates ember, ember data and ember data model fragments and fixes some container deprecation 2016-08-12 23:09:37 +02:00
testem.json Fix SauceLab tests for iPhone 2016-06-20 21:15:42 +02:00

croodle

Build Status Code Climate

Sauce Test Status

Croodle is a web application to schedule a date or to do a poll on a general topics. Stored content data like title and description, number and labels of options and available answers and names of users and there selections is encrypted/decrypted in the browser using 256 bits AES.

This is an alpha version. Changes could brake backward compatibility. Also it is not well tested and some features are missing. It is not ment for productive use yet.

Croodle is inspired by ZeroBin and of course by Doodle.

Security notice

As any other web application based end-to-end encryption Croodle could be attacked by an injection of malicious code on serverside or threw a man-in-the-middle attack. If an attacker could inject for example JavaScript, he would be able to read decrypted content in the browser or the encryption key used and send it to a server under his controll.

Therefore you have to

  • use an encrypted connection to the server hosting Croodle. In most use cases this will be an httpS connection. We strongly recomend people hosting Croodle to force an encrypted connection.
  • trust the server.

You could check for an attack like this by analysing the source code retrieved from server and/or using developer tools of your browser and check what data is send over the network or stored in cookies, localStorage or similar browser techniques.

Requirements

Croodle is designed to have as few as possible requirements on the server it is running on. Croodle runs on almost every web space with PHP >= 5.6. Croodle stores the data in textfiles, so there is no need for a database server like mySQL.

Due to security reasons you should have SSL encryption enabled and provide a valid certificate.

Build process and installation

Production builds are provided here.

If you like to build yourself you have to install node.js package management tool npm, bower, ember-cli and composer before.

git clone git@github.com:jelhan/croodle.git
cd croodle
npm install
bower install
cd api/ && composer install --no-dev && cd ..
ember build --prod

Afterwards copy all files in /dist folder to your werbserver.

After installation

  • data/ folder has to be writeable by web server, but must not be accessible publicy. That means protect it in your webserver configuration!
  • HTTPS connection should be forced. You should consider using HTTP Strict Transport Security (HSTS) and HTTP Public Key Pinning (HPKP).
  • Content-Security-Policy (CSP) should be used. Default CSP headers are provided in .htaccess file but commented out.
  • Execute php api/cron.php on a regular basis to delete outdated polls. A cronjob running once a day should be fine.

Running tests

Ember

Prefered way is to run tests against PhantomJS, Chrome and Firefox by ember test --server. Results are reported in command-line and browser. Files are watched for changes.

If you only like to run tests ones against PhantomJS in command-line you could use ember test. This is also used in CI.

Api

Api tests are provided by Codeception. To run them change current directory to /api and execute ./vendor/bin/codecept run. You have to install composer development requirements before (composer install without --no-dev option).

License

croodle is MIT Licensed.