2015-11-16 22:25:39 +00:00
TellForm
2015-12-12 20:08:48 +00:00
========
2015-06-29 22:51:29 +00:00
2016-04-23 18:31:38 +00:00
Current stable release: v1.3.0
2015-11-16 22:25:39 +00:00
2015-11-23 19:19:02 +00:00
[![Build Status ](https://travis-ci.org/whitef0x0/tellform.svg?branch=master )](https://travis-ci.org/whitef0x0/tellform)
2015-12-12 20:08:48 +00:00
[![Dependency Status ](https://gemnasium.com/whitef0x0/tellform.svg )](https://gemnasium.com/whitef0x0/tellform)
[![Code Climate ](https://codeclimate.com/github/whitef0x0/tellform/badges/gpa.svg )](https://codeclimate.com/github/whitef0x0/tellform)
2015-11-13 01:00:18 +00:00
2015-12-12 20:08:48 +00:00
TellForm is an *opensource alternative to TypeForm* built ontop of nodejs that can create stunning forms from PDFs or from scratch
2015-08-21 01:10:06 +00:00
2016-04-22 01:32:40 +00:00
##Demo Forms
2016-04-22 23:14:19 +00:00
[Job Application Example ](https://stage.tellform.com/#!/forms/571a76b856d64f9e4ca73ca1 )
2016-04-22 23:08:20 +00:00
2016-04-22 23:08:10 +00:00
[Contact Form Example ](https://stage.tellform.com/#!/forms/57196d592601ed12074eecc0 )
2016-04-22 01:32:40 +00:00
## Features
2015-08-21 01:10:06 +00:00
2016-04-22 22:55:53 +00:00
###Currently following features are implemented:
2015-08-21 01:16:35 +00:00
-User login system to manage forms
-User CRUD
-Form CRUD
-11 possible types of form fields
-Editable startpage
2015-11-06 19:12:00 +00:00
-Push form data to OsacrHost EMR
2015-08-21 01:16:35 +00:00
-Create forms from FDF-formatted PDFs (unstable)
-Save form submissions as FDF-formatted PDFs (unstable)
-Toggle forms as private (viewable only if logged in as Form's user) or public (viewable by anyone)
-Drag and drop functionality to editing form field order
-Editable form submissions (half-done)
2015-08-21 01:10:06 +00:00
2016-04-22 01:32:40 +00:00
###TODO:
2015-08-21 01:16:35 +00:00
-Implement encryption for all form data
-Integrate AWS for PDF saving
-Add Typeform API integration
2015-11-06 19:12:00 +00:00
-Add plugin/3rd party integration support (ala Slack)
2015-08-21 01:16:35 +00:00
-Create wiki for easy installation and setup
-Create mockups for different user view designs
2015-08-21 01:10:06 +00:00
2015-06-29 22:51:29 +00:00
2015-07-09 22:15:34 +00:00
## Quickstart
2015-06-29 22:51:29 +00:00
2015-07-09 22:15:34 +00:00
Install dependencies first.
2015-06-29 22:51:29 +00:00
```bash
$ npm install
2015-07-09 22:15:34 +00:00
$ bower install
2015-06-29 22:51:29 +00:00
```
2015-11-23 19:19:02 +00:00
Setup environment.
```bash
$ grunt build
```
2016-04-12 06:04:21 +00:00
Create your .env file. It should look like this
```
2016-04-24 21:10:53 +00:00
GOOGLE_ANALYTICS_ID=yourGAID
PRERENDER_TOKEN=yourPrerender.ioToken
COVERALLS_REPO_TOKEN=yourCoveralls.ioToken
MAILER_EMAIL_ID=SMTP_Injection
2016-04-12 06:04:21 +00:00
MAILER_FROM=noreply@yourdomain.com
2016-04-24 21:10:53 +00:00
MAILER_PASSWORD=your_sparkpost_apikey
MAILER_SERVICE_PROVIDER=SparkPost
2016-04-12 06:04:21 +00:00
BASE_URL=yourdomain.com
2015-08-21 01:03:05 +00:00
```
2016-04-21 19:10:00 +00:00
Create this directory or you will get errors.
2016-04-12 06:04:21 +00:00
2015-06-29 22:51:29 +00:00
```
2016-04-21 19:10:00 +00:00
mkdir uploads/pdfs
```
Edit the 'env' config in gruntfile.js to make sure your .env file is being used. If you don't include this your app won't run
To run development version:
```$ grunt default```
To run production version:
```$ grunt production```
2015-06-29 22:51:29 +00:00
Your application should run on port 3000, so in your browser just go to [http://localhost:3000 ](http://localhost:3000 )
## Testing Your Application
You can run the full test suite included with MEAN.JS with the test task:
```
$ grunt test
```
This will run both the server-side tests (located in the app/tests/ directory) and the client-side tests (located in the public/modules/*/tests/).
To execute only the server tests, run the test:server task:
```
$ grunt test:server
```
And to run only the client tests, run the test:client task:
```
$ grunt test:client
```
2015-07-30 00:42:55 +00:00
Currently the live example uses heroku github deployments. The Docker file is out of date and does not work. If someone wishes to get it working feel free to submit a pull request.
2015-06-29 22:51:29 +00:00
2015-11-23 21:06:02 +00:00
To calculate your total test coverage with Istanbul, run the coverage task
2015-11-23 19:19:02 +00:00
```bash
$ grunt coverage
```
2015-11-23 21:06:02 +00:00
To calculate your server-side test coverage with Istanbul, run the coverage task
```bash
$ grunt coverage:server
```
To calculate your client-side test coverage with Istanbul, run the coverage task
```bash
$ grunt coverage:client
```
2015-06-29 22:51:29 +00:00
## Running in a secure environment
To run your application in a secure manner you'll need to use OpenSSL and generate a set of self-signed certificates. Unix-based users can use the following command:
```bash
$ sh ./scripts/generate-ssl-certs.sh
```
Windows users can follow instructions found [here ](http://www.websense.com/support/article/kbarticle/How-to-use-OpenSSL-and-Microsoft-Certification-Authority ).
After you've generated the key and certificate, place them in the *config/sslcerts* folder.
## Credits
2015-12-12 20:08:48 +00:00
Inspired/built off the great work of the [MeanJS team ](https://github.com/mean/ ).