decide.nolog.cz/README.md

64 lines
3 KiB
Markdown
Raw Normal View History

2014-07-06 22:29:50 +02:00
croodle
=======
2015-01-20 01:03:24 +01:00
[![Build Status](https://travis-ci.org/jelhan/croodle.svg?branch=master)](https://travis-ci.org/jelhan/croodle)
2015-01-20 00:58:34 +01:00
2014-07-06 22:29:50 +02:00
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.
2014-07-06 22:29:50 +02:00
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.
2014-07-06 22:29:50 +02:00
Croodle is inspired by [ZeroBin](https://github.com/sebsauvage/ZeroBin) and of course by Doodle.
2014-07-06 22:29:50 +02:00
Security notice
2014-11-25 16:15:11 +01:00
---------------
2014-07-06 22:29:50 +02:00
As any other web application based end-to-end encryption Croodle could be attacked by an injection of maluse 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 ot the encryption key used and send it to a server under his controll.
2014-07-06 22:29:50 +02:00
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 to Croodle.
* trust the server.
2014-07-06 22:29:50 +02:00
You could check for an attack like this by using an development tool for your browser and check if unencrypted data of your poll or the encryption key is send over network or is stored in a cookie or the localStorage of your browser for later send.
2014-07-06 22:29:50 +02:00
Requirements
2014-11-25 16:15:11 +01:00
------------
2014-07-06 22:29:50 +02:00
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. Croodle stores the data in textfiles, so there is no need for a database server like mySQL.
2014-07-06 22:29:50 +02:00
Due to security reasons you should have SSL encryption enabled and provide a valid certificate.
2014-11-25 16:15:11 +01:00
Build process and installation
------------------------------
2015-04-04 01:52:56 +02:00
Production builds are provided [here](https://github.com/jelhan/croodle/releases).
If you like to build yourself you have to install node.js package management tool [npm](https://www.npmjs.org/), [bower](http://bower.io/) and [ember-cli](http://www.ember-cli.com/) before.
2014-07-06 22:32:23 +02:00
```shell
git clone git@github.com:jelhan/croodle.git
cd croodle
npm install
2014-11-25 16:15:11 +01:00
bower install
2015-04-04 01:52:56 +02:00
ember build --prod
2014-07-06 22:29:50 +02:00
```
2014-07-06 22:34:03 +02:00
Afterwards copy all files in /dist folder to your werbserver.
2014-07-06 22:29:50 +02:00
Make sure that data/ folder is writeable by the web server.
2014-07-06 17:37:54 +02:00
2014-07-06 22:29:50 +02:00
You should consider to force an SSL encrypted connection.
2015-04-04 01:52:56 +02:00
Running tests
-------------
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.
Development server has to be started before and listen on `localhost:4200`.
2015-04-04 11:06:52 +02:00
Run development server by `ember server`. `php-cgi` has to be installed.