docassemble é um sistema expert, livre e em código aberto, usado para entrevistas guiadas e montagem de documentos (document assembly). Ele fornece um web site que conduz entrevistas com usuários. Baseado na informação coletada, as entrevistas podem gerar para os usuários documentos em PDF, RTF, ou DOCX, que podem ser baixados ou enviados por e-mail.
Embora o nome enfatize a montagem de documentos (document assembly), as entrevistas docassemble não precisam necessariamente montar um documento. Elas podem enviar um cadastro, direcionar o usuário para outros recursos na internet, store entradas do usuário, interagir APIs, ou simplesmente fornecer informação.
docassemble foi criado por um advogado/programador com o objetivo de automatizar o trabalho jurídico, mas é uma plataforma de propósito geral que podem encontrar aplicações numa variedade de campos.
Gather touchscreen signatures and embed them in documents.
Use machine learning to process user input.
Use optical character recogntion to process images uploaded by the user.
Offer interviews in multiple languages.
Develop applications that involve more than one user, such as mediation or counseling interviews.
Use the power of Python to extend the capabilities of your interviews.
Do things behind the scenes of the interview, even when the user is not logged in.
Deploy your interviews on multiple machines to handle high traffic.
Interviews are developered as YAML files. Within the YAML files, the text of the interview questions and documents is formatted with Markdown, and the logic of the interview flow is expressed with if/then/else statements in Python.
YAML is a text format for expressing information in a way that is both human-readable and machine readable.
then you get text that looks like this:
It is very important that you obtain your free credit report as soon as possible.
Python is a language designed to be readable and easy to learn. Interview developers do not need to have any prior experience with Python or computer programming in order to create docassemble interviews. The only Python statements developers may need to write are if/then/else statements that are very close to plain English. For example:
Although docassemble has extensive documentation, you may have questions about how to use it. To get help from the community of developers and other users, you can chat in real time with knowledgeable developers on the docassemble Slack group. If you find a bug, you can submit an issue on GitHub. You can also e-mail the developer.
In June 2018 and June 2019, the docassemble community convened for Docacon, a one-day docassemble conference. There have been sessions on docassemble at a variety of conferences on law and technology.
Interview developers do not have to design the “flow” of the interview; docassemble will automatically determine what questions to ask, and the order in which to ask them, based on what information is necessary to gather. The system will refrain from asking unnecessary questions. For example, if the interview contains a conditional statement such as:
then the user will be asked if he is disabled, and will only be asked
for his age if he says he is not disabled. Developers need to provide a
question for every variable (e.g., there need to be questions that
user.age) but docassemble will
automatically figure out when and whether to ask those questions.
This allows developers to concentrate on the end result rather than worrying about how to construct the interview process. Developers who are lawyers can “practice at the top of their license” by spending their time thinking about the law (a lawyer function) rather than thinking about the interview process (a non-lawyer function).
Though this automatic interview flow is a powerful feature, sometimes interview developers have a particular preference about the order of questions. docassemble allows them to use the automatic system as much or as little as they want; if they want to dictate a specific order of questions, they can do so.