Coder Social home page Coder Social logo

logicpull's Introduction

LogicPull gives you the tools to quickly create advanced question and answer interviews for end-users. The answers are then combined with templates to produce all the documents you need. Take the tour to find out more about what LogicPull.

Features

LogicPull was initially developed to save time and money creating the many legal documents needed for a court preceding. It has since expanded to handle the assembly of PDF, DocX, RTF and XML documents for any project. It is a cloud based automated document assembly service. We give you the tools to quickly create an advanced question and answer interview to be completed by an end user, which in turn creates an answer set to be combined with a template to produce documents.

  • Multiple Document Formats Supported
  • Create Complex Branching Logic
  • Keep your Data and Documents in the Cloud
  • Save Progress on Client Interviews
  • Attach Custom Templates to Guided Interviews
  • Preview your Work Before it Goes Live
  • Send Processed Documents Automatically

Demo

  1. Basic
    • Viewer: The Résumé Builder is just one of the endless guided interviews which can be built.
    • Editor: This is the tool used to create the Resume Builder.
  2. Advanced
    • Viewer: Shows more of the features that LogicPull offers.
      • Nested Looping
      • Field Validation
      • Saving and resuming interviews
      • Advanced Functions
      • Popovers and embedded Youtube videos
    • Editor: The tool used to create the advanced demo.

Docs

FAQ

  • What exactly can I do with LogicPull?

    You can collect answers to dynamic questions through a form built with our editor, then combine those answers with a template to produce PDF, RTF, XML or DocX documents.

  • What are templates?

    LogicPull uses EJS to combine with answer sets to produce the documents you need. Please see this article for more information on how to work with templates.

  • Do I need a technical background to use LogicPull?

    LogicPull tries to make it as easy as possible to create, edit, and manage guided interviews. Writing templates does require a basic understanding of how conditional logic works.

  • What browsers does LogicPull support?

    • Google Chrome
    • Apple Safari 3.0+
    • Mozilla Firefox 3.6+
    • Opera 9.5+
    • Microsoft Internet Explorer 7.0+
    • iOS 2.0+

Installation

A full installation tutorial on a Ubuntu 12.04.3 64 bit server is available here. To build LogicPull locally, please see this article.

System Requirements

The minimum memory requirement for LogicPull, and all its components is 256 MiB of memory. With only the minimum amount of memory available, the interviews will take longer to process than normal, but will complete successfully. This minimum requirement is dependent on the number of users connected to the server, and the complexity of the tasks being performed.

Software Requirements

LogicPull uses the software packages listed below in our server side tech stack. For detailed instruction on how to install LogicPull on a server, please see here.

Package Description License
MongoDB 2.0.4 Database used to store all interviews, and answer sets. AGPL
nodeJS 0.8.8 Server side JavaScript platform. MIT
stunnel 3.4.22 Decryption for SSL traffic. GPL
nginx 1.1.19 Server for static resources. BSD
varnish 3.0.2 Used to cache resources. BSD
graphviz 2.26.3 Open source graph visualization software, used in editor. EPL
Apache FOP 1.1 Document assembler. Apache

The below node modules are built into LogicPull and can be installed by running npm install.

Package Description License
express Web application framework for nodeJS MIT
socket.io Real-time connection library. MIT
wysihtml5 JavaScript text editor. MIT
d3 JavaScript Library for manipulating documents. MIT
graphviz JavaScript Wrapper for Graphviz system. MIT
bcrypt Password hashing. MIT
ejs JavaScript templating engine. MIT
mongoose Object modeling for mongodb. MIT
connect-mongo Database driver. MIT
esprima JavaScript parser. BSD
escodegen Code generator for parsed JavaScript. BSD
async Asynchronous JavaScript library. MIT
nodemailer Module for sending emails. MIT
moment Date library for parsing, validating, manipulating, and formatting dates. MIT
accounting Library for number, money and currency formatting. MIT
forever CLI tool to ensure scripts run continuously. MIT
jQuery JavaScript library used on front end. MIT
jQuery DatePicker JavaScript date picker. MIT

TODO

Manager

  • Add functionality to remove users from the manager
  • Add functionality to update a users privileges

Editor

  • Complete Validations. The following validations are not yet implemented.
    • min_date
    • max_date
      To perform validation for these properties, use 'after logic' and check the date using dateDifference().
  • Add descending order into number dropwdown in the editor
  • Add drop down list of months as a default in the date field
  • Create undo function
  • Add a variable lookup/finder in the editor
  • Select multiple nodes from graph and move
  • Disallow duplicate field names

Viewer

  • Allow users to change a past variable without having to go back to that question and start from there

Known Issues

  • The Settings button in the editor view does not work when the debug preview is running.
  • Once a date is entered into the viewer, it cannot be cleared, only changed.
  • When adding question text in the editor, the 'Toggle HTML' button does not reset when the question is closed. To prevent any issues, make sure the default compiled view is visible when exiting the question.
  • Adding format in the editor may interfere with the parsers ability to recognize templates. For example, when bolding text, the editor may insert <%<bold> someVar %></bold>. This would prevent the parser to recognize the variable someVar since the <bold> tag was inserted in between the template tags <% %>. To prevent this, you can switch to 'HTML View' and move the bold tag to outside the template tag. This is a rare bug that seems to come up only when re-bolding text.

Possible Improvements

  • Replace ejs templating engine with more robust solution
  • Replace apache FOP with XMLMind
  • Use Twitter BS 3
  • Use mardown instead of wysihtml5 in the editor

License

The platform code for LogicPull is released under the Affero General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Your Content

Any and all audio, text, photos, pictures, graphics, stylesheets, comments, and other content, data or information that you upload, store, transmit, submit, exchange or make available to or via the Platform (hereinafter "Your Content") is generated, owned and controlled solely by you, and not by LogicPull. LogicPull does not claim any ownership rights in Your Content, and you hereby expressly acknowledge and agree that Your Content remains your sole responsibility.

Liability for Content

You are solely responsible for all of Your Content that you upload, post or distribute to, on or through the Platform, and to the extent permissible by law, LogicPull excludes all liability with respect to all Content (including Your Content) and the activities of its users with respect thereto. LogicPull and its subsidiaries, affiliates, successors, assigns, employees, agents, directors, officers and shareholders hereby exclude, to the fullest extent permitted by law, any and all liability which may arise from any Content uploaded to the Platform by users, including, but not limited to, any claims for infringement of intellectual property rights, rights of privacy or publicity rights, any claims relating to publication of defamatory, pornographic, obscene or offensive material, or any claims relating to the completeness, accuracy, currency or reliability of any information provided by users of the Platform. By using the Platform, you irrevocably waive the right to assert any claim with respect to any of the foregoing against LogicPull or any of its subsidiaries, affiliates, successors, assigns, employees, agents, directors, officers or shareholders.

Author

@ChrisZieba

Copyright

Copyright 2013 Chris Zieba

logicpull's People

Contributors

chriszieba avatar mehmetaergun avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.