├── LICENSE ├── README.md ├── categories.md ├── historic_index.html ├── images ├── agin.jpg ├── bonardi.jpg ├── brooks.jpg ├── cantrell.jpg ├── castor.jpg ├── cronin.jpg ├── damico.jpg ├── devlin.jpg ├── duncan.jpg ├── faig.jpg ├── godard.jpg ├── hofrichter.jpg ├── holt.jpg ├── hughes.jpg ├── jackson.jpg ├── macglinchey.jpg ├── milward.jpg ├── naming_vid.png ├── perez.jpg ├── richardson.jpg ├── rigdon.jpg ├── roth.jpg ├── rush.jpg ├── shannon.jpg ├── sinead.jpg ├── slomovics.jpg ├── souza.jpg ├── taltos.jpg ├── tamburino.jpg ├── titcomb.jpg ├── walton.jpg └── weber.jpg ├── index.html ├── internal_object_names.md ├── labeling-fields.md ├── labeling-pdf-fields.md ├── labeling_fields_guideline.md └── sample_docs ├── military_affidavit.pdf └── military_affidavit.yml /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Legal Innovation and Technology Lab 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # This repository is obsolete 2 | 3 | This repository is maintained only as a historical record. Please visit https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/ for current documentation and information this project. 4 | -------------------------------------------------------------------------------- /categories.md: -------------------------------------------------------------------------------- 1 | # Allowed court types 2 | 3 | * Boston Municipal Court 4 | * District Court 5 | * Superior Court 6 | * Probate and Family Court 7 | * Housing Court 8 | * Land Court 9 | * Juvenile Court 10 | * Appeals Court 11 | 12 | # Allowed categories of forms 13 | 14 | * Housing 15 | * Family Law 16 | * Domestic Violence / Safety of self 17 | * Health and Mental Health 18 | * Safety of others 19 | * Guardianship 20 | * Consumer and Debt 21 | * Employment / Unemployment 22 | * Immigration 23 | * Income and benefits 24 | * Education 25 | * Other -- write in another if these categories don't match 26 | * Criminal Law (civil issues in a criminal context - prisoner's rights) 27 | -------------------------------------------------------------------------------- /historic_index.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | COVID-19 Response: The Document Assembly Line Project 7 | 8 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
44 | 45 |
LIT Logo
46 |

Legal Innovation & Technology Lab
@ Suffolk Law School

47 | 48 | 62 | 63 |

The Document Assembly Line Project

64 | 65 |
66 |

67 | This project is an assembly line to rapidly create mobile-friendly accessible versions of online court forms and pro se materials in multiple-languages for key areas of urgent legal need amid the COVID-19 crisis. We're operating out of Suffolk Law's Legal Innovation and Technology Lab in cooperation with the Massachusetts Access to Justice Commission's COVID-19 task force. Though we're focused on MA specific content, we're sharing our work on GitHub in the hopes that our efforts can be replicated in other jurisdictions. All novel code we generate will be licensed under an MIT License, and we're intentionally building on the open source docassemble platform. Here's what we're doing, and how you can help. 68 |

69 |

70 | Note: the situation is quickly evolving, and everything here could change at any moment. 71 |

72 | 73 |

What We Have Built: MassAccess

74 | 75 |

76 |

The MassAccess site is the public-facing fruit of our labor, providing forms for MA court filing.

77 |

78 | 79 | 80 |

How You Can Help

81 | 82 |

83 | We've set up an assembly line so folks can slot into roles that best fit their skills. All of our coordination takes place over on 84 | . All you have to do to become part of the team is join the A2J Slack, add yourself to the #assembly-line channel, and introduce yourself. Once you're there, we'll help find something for you to do. 85 |

86 | 92 | 93 |

What We Are Doing

94 |

95 | In the near term, we'll be producing docassemble interviews for a subset of existing court forms. We will be focusing on those forms most needed in the crisis. Interviews will be hosted on a server maintained by the Lab for the courts. Court personnel will be given secure direct access to completed forms on the server. Consequently, the public will be able to initiate and file these forms with the court from their phones or a computer without the need to save, print, sign and mail or upload documents. 96 |

97 |

98 | Overtime, we will expand the number of forms offered and work to provide more context and assistance to users working through the interview. That is, at first, our interviews will just be mobile-friendly versions of existing forms that one doesn't need to mail or deliver in person. This, however, will change over time as more context is added to help guide users through the process. 99 |

100 |

101 | Our current workflow is as follows (and though we make the workflow sound linear, we're running most of these tasks in parallel): 102 |

103 |
    104 |
  1. The court and other stakeholders identify and give us copies of existing forms to automate. We're actively working on convening these stakeholder groups and expect to have more forms from the court soon.
  2. 105 |
  3. We will do some light preprocessing, but mostly we're just throwing forms into a collection and batch processing them to auto generate docassemble templates. The expectation is that we're dealing primarily with PDF files. 106 | 111 |
  4. 112 |
  5. We're also training subject matter experts (e.g., law students, lawyers, paralegals et al.) on how to add context to the templates and having them do just that, reordering things, grouping questions, and providing copy for the end user. Note: this is very much about producing MVPs (minimum viable products). For now, that's just online versions of existing forms.
  6. 113 |
  7. We then review, iterate as needed, and publish "finished" versions to the server, allowing the court to access the data directly so as to avoid the need for printing and mailing or using insecure methods like email.
  8. 114 |
  9. "Finished" versions of content are then translated into multiple languages, reviewed, and published to the server.
  10. 115 |
116 | 117 |

Collaboration Tools

118 |

119 | We have two public Slack Channels: 120 |

121 | 125 | 126 |

Work assignments and to do items are maintained on our Trello boards:

127 | 133 |
134 |

Meetings

135 |

We have daily meetings during the work week via Zoom at 12:30pm Eastern. You can find recordings of these, along with training videos and the like, in the embedded playlist below. To get the Zoom link, you'll need to join the A2J Slack. Alternatively, you can find them all online here.

136 | 137 |
138 | 139 |
140 |
141 | 142 |

Our Team

143 | 144 |

People

145 |

Not everyone on the team is on Twitter, but here's a Twitter list made up of team members. New folks are joining the team every day, and though we try to keep this list up-to-date, like this entire project, it is ever changing.

146 |
147 | 148 | 149 | 168 | 169 |
170 | 171 |
172 |

173 | Warren Agin

174 |

Lawyer who plays with data. Practiced bankruptcy, corporate and internet law for 28 years. Now managing director for Elevate Services' Digital Strategy & Solutions group.

175 |

176 | Twitter | 177 | LinkedIn 178 |

179 |
180 | 181 | 182 |
183 | 184 |
185 |

186 | Kate Barry, DocAssembly Line 209A Czar

187 |

Staff attorney in the family law unit at Greater Boston Legal Services.

188 |
189 | 190 | 191 |
192 | 193 |
194 |

195 | Mia Bonardi

196 |

Mia Bonardi is a 2L at Suffolk University Law School.

197 |

198 | LinkedIn 199 |

200 |
201 | 202 | 203 |
204 | 205 |
206 |

207 | Matthew Brooks, DocAssembly Line Project Manager Emeritus

208 |

Matt Brooks is a staff attorney at Greater Boston Legal Services who focuses on consumer debt issues. He is also an occasional docassemble developer, a former Equal Justice Works Fellow, and a former law clerk for the Bankruptcy Court for the Northern District of Texas. He once rode The Cyclone rollercoaster in Coney Island 135 times in a row to raise an embarrassingly small amount of money for charity. The experience haunts him to this day.

209 |

210 | LinkedIn 211 |

212 |
213 | 214 | 215 |
216 | 217 |
218 |

219 | Chandler Burnham

220 |

Chandler is a Massachusetts native currently attending Boston University School of Law. Prior to law school, he worked for a Boston based tech company after studying biology at University of Massachusetts Amherst.

221 |

222 | LinkedIn 223 |

224 |
225 | 226 | 227 |
228 | 229 |
230 |

231 | Esme Caramello

232 |

Faculty Director at the Harvard Legal Aid Bureau, Member of the Access to Justice Commission and its COVID-19 Task Force

233 |

234 | University Listing 235 |

236 |
237 | 238 |
239 | 240 |
241 |

242 | Jack Castor

243 |

Jack Castor is a rising 2L at Suffolk University Law School. Jack is amazing at playing Tetris and has even surpassed Steve Wozniak's infamous high score. Everyone is impressed with his Tetris skills.

244 |

245 | LinkedIn 246 |

247 |
248 | 249 |
250 | 251 |
252 |

253 | David Colarusso, Director of the Legal Innovation and Technology Lab, Practitioner-in-Residence

254 |

David Colarusso is the Director of Suffolk University Law School's Legal Innovation and Technology Lab. An attorney and educator by training, he has worked as a public defender, data scientist, software engineer, and high school physics teacher. He is the author of a programming language for lawyers, QnA Markup, an award winning legal hacker, ABA Legal Rebel, and Fastcase 50 honoree. In 2017 he was named one of the ABA's top legal tweeters.

256 |

257 | Personal Website | 258 | Twitter | 259 | LinkedIn | 260 | LawArXiv 261 |

262 |
263 | 264 | 265 |
266 | 267 |
268 |
269 |

270 | Michael Cronin

271 |

Michael is a 2021 J.D. Candidate at Suffolk University Law School. He is the President of the Real Estate and Trusts and Estates student association at Suffolk and graduated from Wheaton College in 2016 where he was a 4 year varsity soccer athlete and Philosophy Major.

272 |

273 | LinkedIn 274 |

275 |
276 | 277 | 278 |
279 | 280 |
281 |
282 |
283 |

284 | Jodi Cantrell, Title 285 |

286 |

Jodi is a 4L at Suffolk University Law School in Boston and has more than 20 years of IT experience. As a former IT Director with Thermo Fisher Scientific, Jodi lead the North American Employee Experience group consisting of the Desktop and Site Support teams, as well as leading the Global IT Service Desk. She also held various project management roles within the IT Organization and played a key role in leading system integrations following Thermo Fisher's acquisition of Life Technologies in 2014. Prior to joining Thermo Fisher in 2011, Jodi spent 10 years in various IT leadership functions with America West Airlines and US Airways. Jodi completed her Bachelor's degree in Broadcast Journalism from Arizona State University..

287 |

288 | LinkedIn 289 |

290 |
291 | 292 | 293 |
294 | 295 |
296 |

297 | Charlotte Damico

298 |

I am a 3L at Drexel Law School in Philadelphia, PA. Looking forward to helping out!

299 |

300 | LinkedIn 301 |

302 |
303 | 304 | 305 |
306 | 307 |
308 |

309 | Rose Devlin

310 |

Rose is the lead UX/UI designer at Theory and Principle, a legal technology product design and development firm based in Portland, Maine. She has been a designer for 12 years, starting her career as a graphic designer in San Francisco and then moving on to user experience design in 2013. Rose has designed products ranging from large eCommerce sites, to health care products, to applications in the justice space. She is skilled at Sketch and InVision prototyping, moodboards and typography, illustration, and user flows. She has a BFA in Communications Design from Syracuse University’s School of Visual and Performing Arts and is a regular contributor to local User Experience Professional Association chapters.

311 |

312 | LinkedIn 313 |

314 |
315 | 316 |
317 | 318 |
319 |

320 | Hadley Duncan

321 |

I am a 3L in Quinten Steenhuis's Lawyer Smart Machine course. Prior to law school I worked for a public relations firm in Boston. I attended Trinity College for undergraduate school and played varsity lacrosse and field hockey during my four years there.

322 |

323 | LinkedIn 324 |

325 |
326 | 327 |
328 | 329 |
330 |

331 | Alex Faig

332 |

3L at William & Mary Law School; grew up in Richmond, Virginia.

333 |

334 | LinkedIn 335 |

336 |
337 | 338 |
339 | 340 |
341 |

342 | Lance Godard

343 |

After three decades inside and outside of law firms around the world providing a broad range of marketing, communications, and business development solutions, Lance recently took up coding to join the movement using technology to disrupt the profession, change the ways lawyers provide services, and provide access to justice for the underrepresented.

344 |

345 | Personal Website | 346 | LinkedIn 347 |

348 |
349 | 350 |
351 | 352 |
353 |

354 | Michael Hofrichter

355 |

Outgoing Executive Director for Houston Volunteer Lawyers. Former Operations/Tech at HVL where I did some major HotDocs projects, Docassemble projects, integrated Docassemble into our LegalServer configuration, and other database customizations. Basically held every job at HVL in the decade I worked there and got my first full-time job there because I was a self-taught techie when they needed someone. I went to law school at the University of Houston, undergrad at Brandeis University, and grew up in New Jersey. Outside of work, I'm an ultimate frisbee enthusiast and father of two young kids.

356 |

357 | Twitter | 358 | LinkedIn 359 |

360 |
361 | 362 |
363 | 364 |
365 |

366 | Abigail Holt

367 |

UK Barrister and part-time First-Tier Tribunal Judge Oxford University - MA Jurisprudence Inns of Court School of law - Barrister-at-law Manchester University - MA Healthcare Law and Ethics Kings College, London - Post-graduate Diploma European Law Regents University, London - Diploma in Mediation and ADR My practice at the Bar is pulmonary disease litigation, clinical negligence and all medical cases (including regulation of healthcare professionals) and general personal injury. From my judicial experience, I have knowledge of human rights, immigration, asylum and elements of EU law and international conventions. Executive Committee of the European Circuit of the Bar (Treasurer)

368 |

369 | Professional Website 370 |

371 |
372 | 373 |
374 | 375 |
376 |

377 | Fionola Hughes

378 |

Fionola is a Law and French Graduate from the National University of Ireland, Galway and Sciences Po University, France.

379 |

380 | LinkedIn 381 |

382 |
383 | 384 |
385 | 386 |
387 |

388 | Dan Jackson

389 |

390 | Dan Jackson directs the NuLawLab at Northeastern University School of Law, an interdisciplinary innovation laboratory working to merge creative arts and law to create new models of legal empowerment. Dan is a 1997 graduate of Northeastern Law and a 1990 graduate of Northwestern University. Following a postgraduate clerkship with The Hon. Hugh H. Bownes at the U.S. Court of Appeals for the First Circuit, Dan worked for 13 years with the law firm of Bingham McCutchen, ultimately serving as the firm’s director of attorney development after practicing in the employment law group. Prior to law school, Dan worked as a designer for theater. He continues to do so, most recently with the Provincetown Tennessee Williams Theater Festival and The Provincetown Theater. 391 |

392 |

393 | LinkedIn 394 |

395 |
396 | 397 |
398 | 399 |
400 |

401 | Maeve MacGlinchey, DocAssembly Line Project Manager

402 |

Maeve is a South African attorney and notary with four years experience in litigation and transactional law. She resigned from practice at the beginning of 2020 to pursue her interest in improving access to justice and the supply of legal services through the use of technology.

403 |

404 | Twitter | 405 | LinkedIn 406 |

407 |
408 | 409 |
410 | 411 |
412 |

413 | Michelle, DocAssembly Line Project Manager

414 |

Coder interested in creating with people, not for them.

415 |

416 | 417 | Twitter 418 |

419 |
420 | 421 |
422 | 423 |
424 |

425 | Matt Milward

426 |

Matt is a rising 2L at Suffolk University Law School.

427 |

428 | LinkedIn 429 |

430 |
431 | 432 |
433 | 434 |
435 |

436 | Noelle Lussier

437 |

Fourth year evening student at Suffolk University Law School

438 |
439 | 440 | 441 |
442 | 443 |
444 |

445 | Pablo Perez

446 |

Right to Counsel Coordinator at the Eviction Defense Collaborative, San Francisco

447 |

448 | Twitter 449 |

450 |
451 | 452 |
453 | 454 |
455 |

456 | James Richardson

457 |

James is a third-year law student at Suffolk University Law School. He is a part of Suffolk's Accelerator to Practice Program and is interested in the use of technology in small firm practice.

458 |

459 |

460 |
461 | 462 |
463 | 464 |
465 |

466 | Blake Rigdon

467 |

A rising 2L at Suffolk University Law School with an interest in civil litigation and legal technology.

468 |

469 | LinkedIn 470 |

471 |
472 | 473 |
474 | 475 |
476 |

477 | Caroline Robinson

478 |

Caroline Robinson co-directs the Massachusetts Legal Aid Websites Project, and runs MassLegalHelp.org (MLH), based at Massachusetts Law Reform Institute (MLRI). The Websites Project uses technology to increase access to justice for low-income and vulnerable Massachusetts residents. MLH is Massachusetts legal aid programs' collaborative effort to provide relevant, easy-to-read, civil legal information and tools for Massachusetts residents. Prior to joining MLRI, she was Community Content Developer and Artimedia and InTouch Kirklees, a national prototype digital television project integrating community and official information for low income and vulnerable people, in the United Kingdom. She is a Returned Peace Corps Volunteer and has been advocating survivors of domestic violence since 1981.

479 |

480 | LinkedIn 481 |

482 |
483 | 484 |
485 | 486 |
487 |

488 | Liza Rosenof, Legal Research & Innovation Librarian

489 |

Before coming to Suffolk in 2015, Liza worked as a reference librarian at the Western New England School of Law Library in Springfield, MA. While still in law school, Liza served as an articles editor on the Boston College Environmental Affairs Law Review. She also interned at the Northeastern University School of Law Library and worked part-time at the Honan-Allston branch of the Boston Public Library during library school.

490 |

491 | LinkedIn | 492 | University Listing 493 |

494 |
495 | 496 | 497 |
498 | 499 |
500 |

501 | Samuel Roth

502 |

Sam is a 2L student at Suffolk University Law School having previously graduated from the University of Rochester with a B.A. in history.

503 |

504 | LinkedIn 505 |

506 |
507 | 508 | 509 |
510 | 511 |
512 |

513 | Melanie Rush

514 |

Melanie Rush is a recent graduate of Brandeis University with experience in history, politics, and social justice research. She joined this awesome project through her research internship at the Massachusetts Appleseed Center for Law & Justice. Since then, Melanie has taken on the role of Research and Policy Assistant at Massachusetts Appleseed, working on policy areas including access to justice, language access, and youth homelessness. In her free time, she enjoys watching an unhealthy amount of television, baking chocolate chip cookies, dancing, and catching up on recent historical works.

515 |

516 | LinkedIn 517 |

518 |
519 | 520 | 521 |
522 | 523 |
524 |

525 | Tyler Shannon

526 |

Tyler is a licensed architect in Massachusetts where he leads the data science and research practice of a 100-person architecture and design firm. His work overlaps areas of urban planning, housing and transportation policy, real estate and technology. Tyler is currently in the early stages of the Law School application process and is looking forward to getting more involved in the legal community. Tyler lives in the South End of Boston with his wife and cat.

527 |

528 | Twitter | 529 | LinkedIn 530 |

531 |
532 | 533 | 534 |
535 | 536 |
537 |

538 | Michael Slomovics

539 |

Michael is a third-year student at Yale Law School. He is from NYC where he plans on living after law school.

540 |

541 | LinkedIn 542 |

543 |
544 | 545 | 546 |
547 | 548 |
549 |

550 | Aubrie Souza

551 |

Aubrie is a 2L at Suffolk University Law School.

552 |

553 | LinkedIn 554 |

555 |
556 | 557 |
558 | 559 |
560 |

561 | Quinten Steenhuis, Clinical Fellow, Legal Innovation and Technology Lab

562 |

Quinten Steenhuis is a clinical fellow at Suffolk Univeristy Law School in their Legal Innovation and Technology Lab. Quinten has practiced housing and eviction defense law since 2008, and has been a professional programmer and web application developer since 2001. He speaks at area law schools and blogs frequently on the topic of legal technology. He works on projects addressing social justice and access to justice with technology focusing on the topic of housing and evictions. Quinten is an active member of his local community, serving as an appointed member of the City of Cambridge's Recycling Advisory Committee, serving on the Access to Justice Commission's working group on housing through the Justice for All initiative, founding a neighborhood political action group, and serving as the long-time president of a Scrabble club in Somerville, MA. He received his B.Sc. in Logic and Computation with an additional B.Sc. in Political Science from Carnegie Mellon University and J.D. from Cornell Law School.

563 |

564 | Personal Website | 565 | Twitter | 566 | GitHub | 567 | LinkedIn 568 |

569 |
570 | 571 |
572 | 573 |
574 |

575 | Henry Sturm

576 |

577 | I'm a 3L at Northeastern University School of Law and the resident legal design apprentice with the NuLaw Lab. Alongside NUSL's Domestic Violence Institute, I am working to help our DV Clinic rapidly respond to the COVID crisis and the likely increase in intimate partner violence during the stay-at-home period. We are doing this by using technology like the Doc Assembly Line to connect with potential clients in Dorchester, MA, which is what brought me to this project. 578 |

579 | Most importantly, I'm a proud Texan and a pet-parent to 3 cats and 1 dog. 580 |

581 |

582 | LinkedIn 583 |

584 |
585 | 586 | 587 |
588 | 589 |
590 |

591 | Jason Swadel

592 |

2L at Suffolk University Law School; Massachusetts native.

593 |
594 | 595 |
596 | 597 |
598 |

599 | Nicholas Taltos

600 |

Nick is a rising 3L at Cardozo Law School in New York. He participated in Cardozo's Mediation Clinic and is currently an Executive Editor for the ADR Competition Honor Society. His interest in Access to Justice stems from research assistance he provided for a professor writing about the necessity of Access to Justice material for pro se litigants in mediation. Nick enjoys Tai Chi, improv, and writing.

601 |

602 | LinkedIn 603 |

604 |
605 | 606 |
607 | 608 |
609 |

610 | Vincent Tamburino

611 |

Vincent Tamburino is a 3L rising law student at Suffolk University Law School. At Suffolk, Vincent participates in the Business Law Concentration and plans to practice transactional work in New York after he graduates. A proud graduate of Syracuse University, Vincent completed the unthinkable, graduating with a triple major in Political Science, European History & Italian Language and Literature. Once Vincent graduates from Suffolk Law in 2021, he plans on returning to his home state of New York where he will be able to wear his Saquon Barkley jersey in public.

612 |

613 | LinkedIn 614 |

615 |
616 | 617 |
618 | 619 |
620 |

621 | Philip Titcomb

622 |

Philip is originally from Massachusetts and currently a 2L at New York University School of Law. He previously attended Cornell University, where he studied Industrial & Labor Relations.

623 |

624 | LinkedIn 625 |

626 |
627 | 628 |
629 | 630 |
631 |

632 | Sinéad Vaughan

633 |

Sinéad Vaughan is an International Law, Sociology and Politics graduate from the National University of Ireland, Galway and Leiden University, the Netherlands.

634 |

635 | LinkedIn 636 |

637 |
638 | 639 |
640 | 641 |
642 |

643 | Katharine Walton

644 |

Kat is a second-year law student at the University of Illinois School of Law. She plans to practice in Chicago after she graduates. In her free time, she enjoys reading mystery novels.

645 |

646 | LinkedIn 647 |

648 |
649 | 650 | 651 |
652 | 653 |
654 |

655 | Tyler Weber

656 |

Tyler is a 3L at Suffolk University Law School. Prior to law school Tyler studied Public Relations at SUNY Fredonia near Buffalo, NY.

657 |

658 | LinkedIn 659 |

660 |
661 | 662 | 663 |
664 |

Organizations

665 | 666 |

The following organizations and groups have generously donated the time of their employees/members.

667 | 668 | 682 |
683 | 684 |
685 | 689 | 690 | 691 | 692 | -------------------------------------------------------------------------------- /images/agin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/agin.jpg -------------------------------------------------------------------------------- /images/bonardi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/bonardi.jpg -------------------------------------------------------------------------------- /images/brooks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/brooks.jpg -------------------------------------------------------------------------------- /images/cantrell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/cantrell.jpg -------------------------------------------------------------------------------- /images/castor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/castor.jpg -------------------------------------------------------------------------------- /images/cronin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/cronin.jpg -------------------------------------------------------------------------------- /images/damico.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/damico.jpg -------------------------------------------------------------------------------- /images/devlin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/devlin.jpg -------------------------------------------------------------------------------- /images/duncan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/duncan.jpg -------------------------------------------------------------------------------- /images/faig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/faig.jpg -------------------------------------------------------------------------------- /images/godard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/godard.jpg -------------------------------------------------------------------------------- /images/hofrichter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/hofrichter.jpg -------------------------------------------------------------------------------- /images/holt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/holt.jpg -------------------------------------------------------------------------------- /images/hughes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/hughes.jpg -------------------------------------------------------------------------------- /images/jackson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/jackson.jpg -------------------------------------------------------------------------------- /images/macglinchey.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/macglinchey.jpg -------------------------------------------------------------------------------- /images/milward.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/milward.jpg -------------------------------------------------------------------------------- /images/naming_vid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/naming_vid.png -------------------------------------------------------------------------------- /images/perez.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/perez.jpg -------------------------------------------------------------------------------- /images/richardson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/richardson.jpg -------------------------------------------------------------------------------- /images/rigdon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/rigdon.jpg -------------------------------------------------------------------------------- /images/roth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/roth.jpg -------------------------------------------------------------------------------- /images/rush.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/rush.jpg -------------------------------------------------------------------------------- /images/shannon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/shannon.jpg -------------------------------------------------------------------------------- /images/sinead.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/sinead.jpg -------------------------------------------------------------------------------- /images/slomovics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/slomovics.jpg -------------------------------------------------------------------------------- /images/souza.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/souza.jpg -------------------------------------------------------------------------------- /images/taltos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/taltos.jpg -------------------------------------------------------------------------------- /images/tamburino.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/tamburino.jpg -------------------------------------------------------------------------------- /images/titcomb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/titcomb.jpg -------------------------------------------------------------------------------- /images/walton.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/walton.jpg -------------------------------------------------------------------------------- /images/weber.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/images/weber.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /internal_object_names.md: -------------------------------------------------------------------------------- 1 | # Names of internal objects 2 | 3 | ## Names for people 4 | 5 | This list is very similar to the [list available here](https://github.com/SuffolkLITLab/doc-assembly-line/blob/master/labeling-pdf-fields.md#information-about-people). 6 | 7 | One major difference: plural rather than singular variable names. Why? in a PDF file, it's tricky to use `array` syntax. So instead, we append a number to the end of the variable name to represent the first/second/third/etc. In a Docx template, we don't have that limit. 8 | 9 | 1. `users` 10 | 1. `other_parties` 11 | 1. `plaintiffs` 12 | 1. `defendants` 13 | 1. `petitioners` 14 | 1. `respondents` 15 | 1. `spouses` 16 | 1. `children` 17 | 1. `parents` 18 | 1. `guardians` 19 | 1. `caregivers` 20 | 1. `guardians_ad_litem` 21 | 1. `attorneys` 22 | 1. `translators` 23 | 1. `witnesses` 24 | 1. `debt_collectors` 25 | 1. `creditors` 26 | 27 | To access the _first_ user in the list, use the syntax `users[0]`. You can access attributes of the `users[0]` like this: `users[0].attribute_name`. This is the same approach for each of the other lists. 28 | 29 | ## Attributes and methods that go along with people 30 | 31 | ### Special MAVirtualCourt methods and attributes 32 | Docassemble has the built-in [`Individual`](https://docassemble.org/docs/objects.html#Individual) class. 33 | The MAVirtualCourt project adds a few attributes and methods via the `VCIndividual` class. 34 | 35 | * VCIndividual.`previous_addresses` is an object of type `AddressList`. 36 | * `phone_numbers()` prints out a formatted list of phone numbers, labeled as `(cell)` or `(other)` 37 | 38 | `PeopleList` is a list of VCIndividuals, with the special methods 39 | 40 | * `names_and_addresses_on_one_line()` 41 | * `familiar()` prints out the first name of each person in the list, using the function `comma_and_list`. 42 | * `familiar_or()` prints out the first name of each person in the list, using the function `comma_and_list` but replacing the word "and" with the word "or" before the last person in the list. 43 | 44 | These are not quite built-in attributes, but `basic-questions.yml` will provide definitions for these: 45 | 46 | * `users[0].gender_female` is True if `user.gender` is female, and False otherwise (also for `users[1]`, `defendants[9]`, etc.) 47 | * `users[0].gender_male` is True if `user.gender` is male, and False otherwise 48 | * `users[0].gender_other` is True if `user.gender` is any value other than male or female. 49 | * `users[0].signature` will prompt for the user's signature 50 | 51 | ### Built-in attributes 52 | 53 | Here is a summary of some of the useful methods and attributes of an [`Individual`](https://docassemble.org/docs/objects.html#Individual), gathered together. Note some of these 54 | are attributes that are actually objects, and thus documented in different sections of the Docassemble documentation. 55 | 56 | * `name.first`, `name.middle`, `name.last`, and `name.suffix` 57 | * `birthdate` 58 | * `phone_number` 59 | * `mobile_number` 60 | * `gender` 61 | * `address.address` (Street address), `address.unit`, `address.city`, `address.state`, `address.zip` and other attributes of an `Address` object. 62 | 63 | ## Other special variables 64 | 65 | * `courts` is a list of MACourt objects. You will almost always only use `courts[0]`. 66 | * `courts[0]` will print out the full name of the court, e.g., `Brighton Division, Boston Municipal Court` 67 | * `courts[0].name` will also print out the full name of the court. 68 | * `courts[0].department` 69 | * `courts[0].division` 70 | * `courts[0].phone` 71 | * `courts[0].fax` 72 | * `courts[0].location.latitude` 73 | * `courts[0].location.longitude` 74 | * `courts[0].has_po_box` 75 | * `courts[0].description` 76 | * `courts[0].address`, which includes `courts[0].address.county` 77 | 78 | * `docket_numbers` a list of strings 79 | * `signature_date` 80 | 81 | ## Variables that need to be defined if you are building an interview from scratch to deliver to the court 82 | 83 | * `basic_questions_intro_screen` is the first variable you should list in your mandatory interview order control block 84 | * `user_role` is an optional variable. You can define it to "plaintiff" or "defendant" if you know in advance which role the user will have 85 | * `allowed_courts` is a list of court names. See below for a list of all possible values: 86 | ``` 87 | code: | 88 | allowed_courts = [ 89 | "Boston Municipal Court", 90 | "District Court", 91 | "Superior Court", 92 | "Housing Court", 93 | "Probate and Family Court", 94 | "Juvenile Court", 95 | "Land Court", 96 | ] 97 | ``` 98 | * `preferred_court` is an optional variable (unusued until we get approval for final court selector). It can be set to the name of ONE of the available trial court departments. 99 | * `final_form_to_file`: this variable should represent the final attachment as a PDF. 100 | * `form_to_sign`: this variable should represent the final attachment as a PDF, without a signature. 101 | 102 | ### Customizing whether there is one/many or no items in a list 103 | 104 | Sometimes you may want to avoid the "are there any" question. For example: if there is always at least one opposing party. 105 | 106 | ``` 107 | code: | 108 | # set the number of other parties to exactly one 109 | other_parties.there_are_any = True 110 | other_parties.there_is_another = False 111 | ``` 112 | 113 | If the docket number is never known in advance: 114 | 115 | ``` 116 | code: | 117 | docket_numbers[0] = '' 118 | docket_numbers.auto_gather = False 119 | docket_numbers.gathered = True 120 | ``` 121 | 122 | ### How to trigger additional signatures 123 | 124 | `signature_fields` is a list of strings representing variable names. 125 | 126 | Adding signature field for all of the clients: 127 | 128 | ```python 129 | signature_fields = [] 130 | for client in clients: 131 | signature_fields.append(client.intrinsicName) 132 | ``` 133 | 134 | Adding a custom item to the list: 135 | 136 | `signature_fields = ["my_signature"]` 137 | 138 | ### How to make a signature block optional in a Docx template 139 | 140 | Version with only one person signing: 141 | 142 | {% raw %} 143 | ```jinja2 144 | {%p if defined('users[0].signature') %} 145 | {{ users[0].signature }} 146 | {%p endif %} 147 | ``` 148 | {% endraw %} 149 | 150 | Version for multiple signers: 151 | {% raw %} 152 | ```jinja2 153 | {%p if defined('users[0].signature') %} 154 | {%p for user in users %} 155 | {{ user.signature }} 156 | {%p endfor %} 157 | {%p endif %} 158 | ``` 159 | {% endraw %} 160 | 161 | ### Variables used for sending files to court 162 | 163 | The below all need to be PDFs. Generally, do this in code. But if you have an interview with only 164 | one PDF, you can use these variable names directly. 165 | 166 | A way to turn a Docx attachment into a pdf is with `pdf_concatenate(my_docx_variable_name)` 167 | 168 | 169 | * form_to_file_no_cover 170 | * form_to_sign (optional--only for preview screen) 171 | * final_form_to_file: the basic-questions file automatically combines form_to_file_no_cover with the cover page to create this. Normally never need to deal with this variable at all. 172 | 173 | These variables can all be created automatically for you by the basic-questions file, but you may not like those results. Make 174 | the first two manually for most interviews. 175 | 176 | You should also define this variable: 177 | * download_titles as a Python list. Like this: `download_titles = ["My form title", "My second form title"]` 178 | 179 | ### Review screen 180 | 181 | * review_all_sections 182 | 183 | We have a button by default on download/signature pages that refers to "review_all_sections" event. 184 | 185 | You can make this a review screen for your form. If you don't, it will be a list of all of the navigation sections for your form. 186 | 187 | ```yaml 188 | --- 189 | event: review_all_sections 190 | question: | 191 | Review of your answers 192 | subquestion: | 193 | 194 | ${showifdef('form_to_sign')} 195 | 196 | % if defined('form_delivery_complete'): 197 | **Warning: your form has already been delivered.** Any changes you make 198 | will _not_ be sent to the court. 199 | 200 | % endif 201 | Click a section to revisit the answers from that section. 202 | 203 | % for section in section_links(nav): 204 | * ${section} 205 | % endfor 206 | 207 | Press "${word("Resume")}" to resume the 208 | interview. 209 | buttons: 210 | ${word("Resume")}: continue 211 | ``` 212 | 213 | 214 | ### Preview and Final Download Screen with Send to Court buttons 215 | ```yaml 216 | --- 217 | id: review before signature 218 | need: form_to_sign 219 | continue button field: [PLACEHOLDER: PREVIEW SCREEN VARIABLE] 220 | question: | 221 | Nearly finished 222 | subquestion: | 223 | You are almost done! Please click on the form below. It will open in a new window so you 224 | can review it and make sure it is correct. 225 | 226 | Don't forget to come back to this page to click to the final step of signing and sending 227 | the form to the court. 228 | 229 | ${form_to_sign } 230 | 231 | progress: 95 232 | --- 233 | id: download form 234 | event: download 235 | comment: | 236 | The attachment email screen relies on final_form_to_file being defined. This 237 | will be built from the interview_metadata dictionary's contents, but if you 238 | add any addenda you will want to set this in a code block somewhere that takes 239 | priority over basic-questions.yml. 240 | decoration: file-download 241 | question: | 242 | % if not defined('email_success') or not email_success: 243 | Review, Download, and Send Form 244 | % else: 245 | Form delivered 246 | % endif 247 | subquestion: | 248 | % if not defined('email_success') or not email_success: 249 | Thank you ${users[0]}. Your form is ready to send to the court. **It is not 250 | delivered until you complete the delivery process below.** 251 | 252 | 1. Click the preview image below to open the form in a new window. Correct any errors using the "Make changes" button below. 253 | 1. Download and save or print a copy of this form for your 254 | records. 255 | 1. Click the "Submit to ${courts[0]}" button to send it to the court. 256 | 1. You will have a chance to add instructions to the clerk and see the cover page before final delivery. 257 | % else: 258 | If you do not hear from the court in 1 business day, call the Trial Court’s 259 | Emergency HelpLine 833-91-COURT (833-912-6878). 260 | 261 | The Emergency HelpLine is open: 262 | 8:30am - 4:30pm, 263 | Monday - Friday. 264 | % endif 265 | 266 | ${ form_to_file_no_cover } 267 | 268 | ${action_button_html(url_action('review_all_sections'), icon='edit', label=word("Make changes"))} 269 | 270 | % if not defined('email_success') or not email_success: 271 | ${ action_button_html( url_action('form_delivery_complete'), id_tag="submitToCourt", label="Submit to " + str(courts[0].name), icon=send_icon, size="md", color="primary")} 272 | 273 | Or download/email below: 274 | % else: 275 | Your email has already been delivered to ${courts[0]} 276 | 277 | [:file-download: Download with cover page](${final_form_to_file.url_for()}) 278 | % endif 279 | progress: 100 280 | attachment code: [PLACEHOLDER: ATTACHMENT VARIABLE] 281 | section: download 282 | ``` 283 | -------------------------------------------------------------------------------- /labeling-fields.md: -------------------------------------------------------------------------------- 1 | # Field Label Names for Docx and PDF files 2 | 3 | _Label names to use when editing fields in Adobe Acrobat or the Documate Field Renamer_ 4 | 5 | 6 | 7 | **Table of contents** 8 | 9 | 1. [The basics](#field-labels-the-basics) 10 | 1. [Information about people](#information-about-people) 11 | 1. [Court information](#court-information) 12 | 1. [Signature date](#signature-date) 13 | 1. [Custom labels](#custom-field-labels) 14 | 1. [Advanced lessons](#field-labels-advanced-lessons) 15 | 1. [Custom date fields](#custom-dates) 16 | 1. [More than one of a person or item](#more-than-one) 17 | 1. [Automatically filling fields](#fields-that-the-program-can-fill-in-by-itself) 18 | 19 | [![](https://suffolklitlab.org/doc-assembly-line/images/naming_vid.png)](https://youtu.be/qpfZon2M-GU) 20 | Video of overview: [The Basics of Naming Fields](https://youtu.be/qpfZon2M-GU) 21 | 22 | 23 | # What? 24 | 25 | 26 | 1. Explanations of the use of pre-determined names you should use when labeling fields in a PDF to make automation possible. 27 | 1. A refence guide for those pre-determined names. 28 | 3. Rules (and some guidelines) for making [custom labels](#custom-field-labels), since most of your labels will be custom labels. 29 | 30 | **You should use the pre-defined labels in here exactly as they appear and only for the specific purposes described below.** 31 | 32 | Don't work on memorizing this material, though. You can take in what's in here and come back to look up specifics later when it you need them. 33 | 34 | 35 | # Why? 36 | 37 | We can create polished multi-lingual plain-language text and questions for all of these pre-set names. Any form that uses these names will get those polished questions automatically. 38 | 39 | Also, when a user is completing multiple forms at the same time, if all these names match on all the forms, they will only have to answer each of the questions once. If three forms ask for a first name but use different label names, the user would have to answer that question three times. 40 | 41 | Please contact us if you think we missed a commonly used field name that we might add to these automated names. 42 | 43 | If you have more questions, please ask us in the Slack channel. 44 | 45 | # Field labels: The basics 46 | 47 | 48 | 49 | To make label names, we stich together bits of words with meanings. We do that in English too - there are `lamp`s and there's the color `red`. We put those together to describe a `red lamp`. In our labels, that might look a bit more like `lamp_red`. We might call `lamp` a prefix and `red` a suffix, though that kind of language might get complicated if we get into things like `lamp_red_tall`. 50 | 51 | These label rules work like that too - you'll combine prefixes and suffixes to build your labels, so look out for that pattern: `prefix_suffix` 52 | 53 | **Note:** Every field label in a PDF has to be unique. They cannot be repeated. We'll talk more about that later, but it's good to remember. In a Microsoft Word docx file, there is no rule that the fields need to be unique. 54 | 55 | ## Figure out who is using your form 56 | 57 | Every form is used by someone. Most forms have parties to a case. Some are not filed with a court, so they may only have 58 | a single user. Some are not filed with a court, but still have a user and an opposing or "other" party. 59 | 60 | For example: in a Motion to Vacate Default Judgment, the user of the form is always going to be the defendant. In a form that creates a new case, 61 | the user of the form is always going to be the plaintiff or petitioner. 62 | 63 | ## Information about people 64 | 65 | ### Label parties to the case with party-specific labels 66 | 67 | The person who is using your form and the person who your form's user is opposing should always get one of the 68 | special labels below: 69 | 70 | **Note:** We made PDF labels singular because you can't work with lists in many PDF editors. Docx variables representing people are all plural. 71 | Internally, all variables representing people are plural. 72 | 73 | PDF label | Docx label | Use case 74 | ----------|------------|---------- 75 | `user` | `users`, `user[0]`, or `user[n]` (where `n` is any whole number; use sequentially | Will display the full name of the person who is filling out the online form 76 | `other_party` | `other_parties`, `other_parties[0]`, or `other_parties[n]` | The person suing or being sued by the person filling out the form; someone on the "other side" of the case. 77 | `plaintiff` | `plaintiffs`, `plaintiffs[0]`, `plaintiffs[n]` | Plaintiff in the case if we don't know if the plaintiff is the user or other party. 78 | `defendant` | `defendants`, `defendants[0]`, `defendants[n]` | Defendant in the case if we don't know if the defendant is the user or other party. 79 | `petitioner` | `petitioners`, `petitioners[0]`, `petitioners[n]` | Petitioner in the case if we don't know if the petitioner is the user or other party. 80 | `respondent` | `respondents`, `respondents[0]`, `respondents[n]` | Plaintiff in the case if we don't know if the plaintiff is the user or other party. 81 | 82 | If the form has room for two people on one side of the case, you can reference `user1` and `user2` (on a PDF) or `users[0]` and `users[1]` (in a Docx). It's 83 | important to always use one of these 4 labels for people who are actually part of the case, since we use those internally in many many places in our standard 84 | questions and to communicate information to the court. 85 | 86 | Never use names like: 87 | 88 | * Tenant 89 | * Landlord 90 | * Parent 91 | 92 | etc. that can be converted into party labels, like `Plaintiff` or `Defendant`, if the form is being used by the 93 | tenant or landlord or parent. Every form should have at least one of the 6 party labels above. 94 | 95 | It's best to use `user`/`users` and `other_party`/`other_parties` when you know that the form is always used by a plaintiff or defendant. For example, 96 | a form that is always used by a tenant in an eviction case will normally get labeled with `user`/`users` any place that the form mentions 97 | either `tenant` or `defendant`. In any form that starts a new case, we can always label the PDF with `user` where the `plaintiff` name goes. 98 | 99 | ### Use one of these exact prefixes for other "people" on the form when at all possible 100 | 101 | You may want to use other kinds of labels on the form for miscellaneous people who are 102 | associated with the form, but are not parties to the case. Using one of these labels below 103 | that we have pre-selected tells our tool that these are people, so we can handle things like addresses, 104 | birthdates, etc. correctly. 105 | 106 | We can freely add more labels to this list if you need them for your form. Ideally, talk to us about that 107 | before running your form through the wizard. 108 | 109 | Never use any of the labels below when the person identified by the label is a party to the case. 110 | For example, if they are the person using the form or the person who is on the opposing side of the case 111 | from the user of the form. 112 | 113 | PDF label | Docx label | Use case 114 | ----------|------------|---------- 115 | `spouse` | `spouses`, `spouses[0]`, `spouses[n]` | A spouse whose information goes on the form but is not a party to the case. 116 | `child` | `children`, `children[0]`, `children[n]` | Any child whose information goes on the form. 117 | `parent` | `parents`, `parents[0]`, `parents[n]` | A parent who is not a party to the case. 118 | `guardian` | `guardians`, `guardians[0]`, `guardians[n]` | A guardian who is not a party to the case. 119 | `caregiver`| `caregivers` | 120 | `guardian_ad_litem` | `guardians_ad_litem` | 121 | `attorney` | `attorneys` | 122 | `translator` | `translators` | 123 | `witness` | `witnesses` | 124 | `debt_collector` | `debt_collectors` | 125 | `creditor` | `creditors` | 126 | 127 | These are are considered the `prefix`es we described before. 128 | 129 | `unknown_role` isn't something our program will account for, but it's a name you can use when you don't know what role name to use. It can remind you (or alert other folks) to get a consult from someone who would know more. 130 | 131 | ### People suffixes 132 | 133 | When these are people, they have similar things we want to record about them. For example, their first name (`name_first`). These will be our `suffixes`. When a field is for a `plaintiff`'s first name, you will combine the two: `plaintiff_name_first`. 134 | 135 | These are pre-defined words you can use as field labels for a plaintiff: 136 | 137 | Label to use in the PDF | When to use it 138 | ------------------------|----------------------------------- 139 | `plaintiff` | Label for a field that asks for the plaintiff's full name 140 | `plaintiff_name` | The same - label for a field that asks for the plaintiff's full name 141 | `plaintiff_name_first` | Label for a field that asks for the plaintiff's first name 142 | `plaintiff_name_middle` | Label for a field that asks for the plaintiff's middle name 143 | `plaintiff_name_last` | Label for a field that asks for the plaintiff's last name 144 | `plaintiff_name_suffix` | Label for a field that asks for the suffix of the plaintiff's name 145 | `plaintiff_gender` | Label for a text field asking for the plaintiff to write in their gender 146 | `plaintiff_gender_female` | Label for a checkbox for a "female" gender choice 147 | `plaintiff_gender_male` | Label for a checkbox for a "male" gender choice 148 | `plaintiff_birthdate` | Label for a single field for the plaintiff's date of birth 149 | CONTACT INFORMATION | 150 | `plaintiff_address_address` | Label for a field that asks for the plaintiff's house address 151 | `plaintiff_address_unit` | Label for a field that asks for the plaintiff's apartment number 152 | (deprecated) `plaintiff_address_street` | Label for a field that asks for the plaintiff's house address. Use `plaintiff_address_address` instead 153 | (deprecated) `plaintiff_address_street2` | Label for a field that asks for the plaintiff's apartment number. Use `plaintiff_address_unit` instead 154 | `plaintiff_address_city` | Label for a field that asks for the plaintiff's city address 155 | `plaintiff_address_state` | Label for a field that asks for the plaintiff's state 156 | `plaintiff_address_zip` | Label for a field that asks for the plaintiff's zipcode 157 | `plaintiff_email` | Label for a field that asks for the plaintiff's email address 158 | `plaintiff_phone` | Label for a field that asks for the plaintiff's phone number 159 | SIGNATURE 160 | `plaintiff_signature` | Label for a single field for the plaintiff's signature 161 | 162 | 163 | 164 | 165 | 166 | **What if you need to use a field again, though?** As we said, each field label in a PDF needs to be unique, but some forms ask for a field multiple times. For example, the plaintiff's name might come up more than once. In those cases, you add two underscores (`__`) and a number. This will go on the very end of the label, after all the suffixes. So, `prefix_suffix__2`, `prefix_suffix__3`, and so on: 167 | 168 | Label to use in the PDF | When to use it 169 | ------------------------|----------------------------------- 170 | `plaintiff_name_first__2` | Label for the second field that asks for that plaintiff's first name 171 | `plaintiff_name_first__3` | Label for the third field that asks for that plaintiff's first name 172 | `plaintiff__2` | Label for the second field that asks for that plaintiff's full name 173 | `plaintiff__3` | Label for the third field that asks for that plaintiff's full name 174 | 175 | And so on. 176 | 177 | 178 | 179 | **How about the other person/organization types you told me about?** 180 | 181 | All these pre-defined suffixes work the same for all of the person/organization types we listed. 182 | 183 | Label to use in the PDF | When to use it 184 | ------------------------|----------------------------------- 185 | `defendant` | Label for a field that asks for the defendant's full name 186 | `spouse_signature` | Label for a field that asks for the spouse's signature 187 | `spouse_signature__2` | Label for a field that asks for the spouse's signature a second time 188 | 189 | And so on. 190 | 191 | 192 | 193 | 194 | ## Court information 195 | 196 | We have some pre-defined words for court information too. 197 | 198 | Label to use in the PDF | When to use it 199 | ------------------------|----------------------------------- 200 | `docket_number` | A label for a field for the form filler to write a docket number. (Not for the court!) 201 | `court_name` | A label to write the full name of the court. E.g., Dorchester Division, Boston Municipal Court. 202 | `court_county` | A label to write the county that the court is in. Note: in many forms, this says 'ss' where the county should go. 203 | 204 | 205 | 206 | You can see `prefix`es and `suffix`es here too. `court` and `name`. They follow similar rules. 207 | 208 | **Note 1:** `docket_number` here is ONLY for the client(s). It's not for 'court use only' areas of the form. 209 | 210 | **Note 2:** Just ignore/delete any drop-down menus for court names in existing court forms. We'll replace that with the name of the court, written out as a new field. You can likely cover up the field by setting a white background. 211 | 212 | ## Signature date 213 | 214 | Label to use in the PDF | When to use it 215 | ------------------------|----------------------------------- 216 | `signature_date` | A label for the field to write the date the document was signed. 217 | 218 | 219 | ## But I need to use that label! 220 | 221 | What if you have a field that needs one of these special labels? 222 | 223 | This is one of the trickier problems. If you find yourself needing one of these "special" labels for another field, you'll need to find another name for it. For example, you can make a custom label that's slightly different and more specific label, like `plaintiff_age_at_time_of_conviction`. Learn more about [making custom labels](#custom-field-labels) further down. 224 | 225 | ## Custom field labels 226 | 227 | Most of your labels will be custom labels, but there are still some rules to follow. Also, we can do some automation with custom labels too if they follow certain patterns. 228 | 229 | ### _Important Rules_ 230 | 231 | Some things you really need to do or it will be very hard to write code for the labels: 232 | 233 | 1. Field names **must start with a letter or underscore** (`_`) - not a number or anything else. 234 | 1. Field names can only include **letters, numbers, and underscores**. No spaces or any other character. 235 | 1. When you run across a large area that gives room for writing a paragraph, make sure it's one big field. If it's divided into multiple lines, put a message about it in its trello card or on the Slack #assembly-line channel. 236 | 237 | 238 | 239 | ### _Useful label conventions_ 240 | 241 | Code is also about communicating with each other. The label names you come up with now are ones people will need to work with in the future. You don't have to do too much, but try not to label things with Adobe's defaults or `field1`, `field2`, and so on. 242 | 243 | Here are some suggestions for making helpful labels: 244 | 245 | * Please use all lowercase letters for **all labels**. The coders will really appreciate it. 246 | * Separate multiple words in a label with an underscore: `plaintiff_does_love_pie` 247 | * Make the labels descriptive. 248 | * If they can be descriptive _and_ short, that's even better. 249 | * Avoid acronyms and abbreviations, other than very common ones such as `id` for identification. 250 | * When you have several related fields in a row, it could help with automation if you make your own `prefix` and `suffix`es. Make a `prefix` out of the the feature that groups them together, e.g. `asset_checking`, `asset_savings`, etc. It makes alphabetical sorting easier. 251 | 252 | ** Additional `suffix`es to help with automation:** 253 | 254 | * Use verb/noun pairs for checkboxes. For example, `plaintiff_is_parent`, `defendant_speaks_spanish`, `petitioner_has_assets`, etc. 255 | * For checkboxes with a yes/no pair, add `_yes` and `_no` to the end as an _extra_ suffix. E.g., `defendant_knows_english_yes` and `defendant_knows_english_no` - `prefix_suffix_suffix` 256 | 257 | 258 | # Thank you! 259 | 260 | Thank you for joining us to help make a difference in people's lives! 261 | 262 | 263 | # Field labels: Advanced lessons 264 | 265 | Again, don't try to memorize these. After your first read through, use this more like reference material. 266 | 267 | ## Custom dates 268 | 269 | ``` 270 | "Forms keep asking for dates in really weird ways." 271 | - A coder 272 | ``` 273 | 274 | Labels for fields that are asking for a full date should generally end in `_date` (e.g. `incident_date`), but some forms want you to put dates in differently. For example, they want the day, month, or year given separately. 275 | 276 | (Remember that `prefix_birtdate` and [`signature_date`](signature_date) are pre-determined labels.) 277 | 278 | Let's pretend everyting is about an `incident` just to simplify these examples. 279 | 280 | Label to use in the PDF | When to use it 281 | ------------------------|----------------------------------- 282 | `incident_date` | A label for a field to write the full date of the incident. 283 | `incident_date_day` | A label for a field to write the day of the month of the incident. 284 | `incident_date_month` | A label for a field to write the month of the incident. 285 | `incident_date_day_month` | A label for a field to write both the day and the month of the incident. (Yes, we have run into this) 286 | `incident_date_4_digit_year` | A label for a field to write the 4-digit year of the incident (e.g. 2018). 287 | `incident_date_2_digit_year` | A label for a field to write the 2-digit year of the incident (e.g. 18 as in 02/03/**18**). 288 | 289 | 290 | 291 | 292 | 293 | ## More than one 294 | 295 | What if there are two plaintiffs or three docket numbers? Or multiples of any other item? 296 | 297 | This program can hanlde plural values. If we want to talk about more than one "plaintiff", we can say which plaintiff we mean - the first one, the second one, the third one, and so on. We add a number as part of our prefix. 298 | 299 | Label to use in the PDF | When to use it 300 | ------------------------|----------------------------------- 301 | `plaintiff1_name_first` | Label for a field that asks for the first plaintiff's first name 302 | `plaintiff2_name_first` | Label for a field that asks for the second plaintiff's first name 303 | 304 | Each of those "plaintiffs" can have any of the suffixes that were described above. Here's an example of some fields a second plaintiff might be filling in. 305 | 306 | Label to use in the PDF | When to use it 307 | ------------------------|----------------------------------- 308 | `plaintiff2` | Label for a field that asks for the second plaintiff's full name 309 | `plaintiff2_gender` | Label for a text field asking for the second plaintiff to write in their gender 310 | `plaintiff2_signature` | Label for a single field for the second plaintiff's signature 311 | 312 | And so on. The same pattern works with other prefixes, like `child`, `defendant`, and `witness`. 313 | 314 | Label to use in the PDF | When to use it 315 | ------------------------|----------------------------------- 316 | `docket_number3` | Label for a field that asks for the third docket number 317 | `child3_name_first` | Label for a field that asks for the third child's first name 318 | `defendant4_name_first` | Label for a field that asks for the fourth 'party's first name 319 | `witness6_name_first` | Label for a field that asks for the sixth witness's first name 320 | 321 | You can combine this rule with `__`. For example, you can combine the prefix of the third `plaintiff` with the post-suffix of the second appearance of a field. That is 322 | 323 | Label to use in the PDF | When to use it 324 | ------------------------|----------------------------------- 325 | `plaintiff2__3` | Label for the third appearance of the second plaintiff's full name. 326 | `plaintiff2_signature__3` | Label for the third appearance of the second plaintiff's signature. 327 | 328 | 329 | ## Fields that the program can fill in by itself 330 | 331 | If someone puts in their birthdate, why would they have to put in their age somewhere else? The program can figure out how old they are, so it can fill that in by itself. There are some other things it will know how to print as well. 332 | 333 | 339 | 340 | Label to use in the PDF | When to use it 341 | ------------------------|----------------------------------- 342 | `plaintiff_age` | Label for a field where the plaintiff's age will be inserted automatically 343 | `plaintiff_address_on_one_line` | Label for a field where the plaintiff's address will be inserted on one line 344 | `plaintiff_address_city_state_zip` | Label for a field where the plaintiff's city, state, and zip will be inserted on one line 345 | `plaintiff_address_block` | Label for a field where the plaintiff's full address will be inserted on 3 lines 346 | 347 | There are some lists we can automatically print onto the PDF too. 348 | 349 | Label to use in the PDF | When to use it 350 | ------------------------|----------------------------------- 351 | `plaintiffs` | Label for a field to list all the plaintiffs. 352 | `defendants` | The same for defendants. 353 | `respondents` | The same for respondents 354 | 355 | The finished form will show a list of names that makes sense. For example, if there were two (Susan and Talia), you would see "Susan and Talia", and so on. 356 | 357 | For the curious: `plaintiff_name__2` and such things work like this under the hood. 358 | 359 | # Congratulations! 360 | 361 | You have made it to the end of all of the current documentation! You've got moxie, that's for sure, and it'll serve you well in life! 362 | -------------------------------------------------------------------------------- /labeling-pdf-fields.md: -------------------------------------------------------------------------------- 1 | See [https://github.com/SuffolkLITLab/doc-assembly-line/blob/master/labeling-fields.md](https://github.com/SuffolkLITLab/doc-assembly-line/blob/master/labeling-fields.md) 2 | -------------------------------------------------------------------------------- /labeling_fields_guideline.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /sample_docs/military_affidavit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuffolkLITLab/doc-assembly-line/62d89e74d93b9f641386cc88afd9074d8ac89acb/sample_docs/military_affidavit.pdf -------------------------------------------------------------------------------- /sample_docs/military_affidavit.yml: -------------------------------------------------------------------------------- 1 | comment: | 2 | The metadata section controls the tab title and saved interview title. You can delete this section if you include this YAML file in another YAML file. 3 | metadata: 4 | title: | 5 | Military Affidavit 6 | short title: | 7 | Military Affidavit 8 | --- 9 | comment: | 10 | This section is used by MAVirtualCourts to control how some of the questions work. 11 | mandatory: True 12 | code: | 13 | interview_metadata # make sure we initialize the object 14 | if not defined("interview_metadata['military_affidavit']"): 15 | interview_metadata.initializeObject('military_affidavit') 16 | interview_metadata['military_affidavit'].update({ 17 | 'title': 'Military Affidavit', 18 | 'short title': 'Military Affidavit', 19 | 'description': 'Use this online form to complete a military affidavit to comply with the Servicemembers Civil Relief Act.', 20 | 'original_form': '', 21 | 'allowed courts': [ 22 | 'Boston Municipal Court', 23 | 'District Court', 24 | 'Housing Court', 25 | 'Juvenile Court', 26 | 'Land Court', 27 | 'Probate and Family Court', 28 | 'Superior Court', 29 | ], 30 | 'categories': [ 31 | 'Consumer and Debt', 32 | 'Domestic Violence / Safety of self', 33 | 'Education', 34 | 'Employment / Unemployment', 35 | 'Family Law', 36 | 'Guardianship', 37 | 'Health and Mental Health', 38 | 'Housing', 39 | 'Immigration', 40 | 'Income and benefits', 41 | 'Rights of incarcerated/formerly incarcerated', 42 | ], 43 | 'logic block variable': 'military_affidavit', 44 | 'attachment block variable': 'military_affidavit_attachment', 45 | 'typical role': 'unknown', 46 | }) 47 | --- 48 | include: 49 | - docassemble.MAVirtualCourt:basic-questions.yml 50 | --- 51 | features: 52 | navigation: True 53 | --- 54 | sections: 55 | - review_military_affidavit: Review your answers 56 | --- 57 | id: interview_order_military_affidavit 58 | code: | 59 | # This is a placeholder to control logic flow in this interview 60 | 61 | basic_questions_intro_screen 62 | military_affidavit_intro 63 | # Set the allowed courts for this interview 64 | allowed_courts = interview_metadata["military_affidavit"]["allowed courts"] 65 | nav.set_section('review_military_affidavit') 66 | # Below sets the user_role by asking a question. 67 | # You can set user_role directly instead to either 'plaintiff' or 'defendant' 68 | user_ask_role 69 | court_department 70 | parties_are_serving 71 | facts 72 | user_bbo 73 | courts[0].division 74 | plaintiffs 75 | defendants 76 | str(docket_numbers) 77 | str(users[0]) 78 | signature_date 79 | military_affidavit_preview_question # Pre-canned preview screen 80 | basic_questions_signature_flow 81 | users[0].signature 82 | military_affidavit = True 83 | --- 84 | comment: | 85 | This question is used to introduce your interview. Please customize 86 | id: Military Affidavit 87 | continue button field: military_affidavit_intro 88 | question: | 89 | Military Affidavit 90 | subquestion: | 91 | Use this online form to complete a military affidavit to comply with the Servicemembers Civil Relief Act. 92 | --- 93 | id: Placeholder preview screen 94 | continue button field: military_affidavit_preview_question 95 | question: | 96 | Placeholder preview screen 97 | subquestion: | 98 | Here is a preview of the form you'll sign on the next page. 99 | 100 | ${military_affidavit_attachment['preview']} 101 | --- 102 | id: Screen one 103 | question: | 104 | Screen one 105 | subquestion: | 106 | Placeholder text 107 | fields: 108 | - 'Court department': court_department 109 | --- 110 | id: Information about Military Service 111 | question: | 112 | Information about Military Service 113 | subquestion: | 114 | Tell us what you know about each party and whether they are currently serving in the United States Military or state militia. 115 | fields: 116 | - 'At least one of the parties is currently serving in the military': parties_are_serving 117 | datatype: yesno 118 | - 'Names of parties currently serving in the military': serving_parties 119 | input type: area 120 | - 'At least one of the parties is not currently serving in the military': parties_not_serving 121 | datatype: yesno 122 | - 'Names of parties who are not currently serving in the military': not_serving_parties 123 | input type: area 124 | - 'Names of parties who you are not sure whether or not they are currently serving in the military': unsure_serving_parties 125 | input type: area 126 | --- 127 | id: What facts are you using to support this affidavit? 128 | question: | 129 | What facts are you using to support this affidavit? 130 | subquestion: | 131 | Placeholder text 132 | fields: 133 | - 'Facts': facts 134 | input type: area 135 | --- 136 | id: BBO number 137 | question: | 138 | BBO number 139 | subquestion: | 140 | If you are an attorney with a BBO number, please fill it in below. 141 | fields: 142 | - 'User bbo': user_bbo 143 | --- 144 | progress: 100 145 | mandatory: True 146 | id: Placeholder download screen 147 | question: | 148 | Placeholder download screen 149 | subquestion: | 150 | Placeholder 151 | 152 | ### Next steps 153 | 154 | 1. Step 1 155 | 1. Step 2 156 | 157 | Below is a preview of your form. 158 | 159 | ${military_affidavit_attachment['final'] } 160 | need: military_affidavit 161 | attachment code: military_affidavit_attachment['final'] 162 | --- 163 | objects: 164 | - military_affidavit_attachment: DADict 165 | --- 166 | attachment: 167 | variable name: military_affidavit_attachment[i] 168 | name: Military Affidavit 169 | filename: Military_Affidavit 170 | skip undefined: True 171 | pdf template file: military_affidavit.pdf 172 | fields: 173 | - "court_division": ${ courts[0].division } 174 | - "plaintiff": ${ plaintiffs } 175 | - "defendant": ${ defendants } 176 | - "docket_numbers": ${ str(docket_numbers) } 177 | - "user_name_full": ${ str(users[0]) } 178 | # If it is a signature, test which file version we're expecting. leave it empty unless it's the final attachment version 179 | - "user_signature": ${ users[0].signature if i == 'final' else '' } 180 | - "signature_date": ${ signature_date } 181 | - "user_name_full__2": ${ str(users[0]) } 182 | - "court_department": ${ court_department } 183 | - "parties_are_serving": ${ parties_are_serving } 184 | - "serving_parties": ${ serving_parties } 185 | - "parties_not_serving": ${ parties_not_serving } 186 | - "not_serving_parties": ${ not_serving_parties } 187 | - "unsure_serving_parties": ${ unsure_serving_parties } 188 | - "facts": ${ facts } 189 | - "user_bbo": ${ user_bbo } 190 | --- 191 | id: military_affidavit review screen 192 | event: review_military_affidavit 193 | question: | 194 | Placeholder Review Screen 195 | subquestion: | 196 | Edit your answers below 197 | review: 198 | - Edit: court_department 199 | button: | 200 | Court department: 201 | ${ court_department } 202 | - Edit: parties_are_serving 203 | button: | 204 | At least one of the parties is currently serving in the military: 205 | ${ word(yesno(parties_are_serving)) } 206 | - Edit: serving_parties 207 | button: | 208 | Names of parties currently serving in the military: 209 | > ${ single_paragraph(serving_parties) } 210 | - Edit: parties_not_serving 211 | button: | 212 | At least one of the parties is not currently serving in the military: 213 | ${ word(yesno(parties_not_serving)) } 214 | - Edit: not_serving_parties 215 | button: | 216 | Names of parties who are not currently serving in the military: 217 | > ${ single_paragraph(not_serving_parties) } 218 | - Edit: unsure_serving_parties 219 | button: | 220 | Names of parties who you are not sure whether or not they are currently serving in the military: 221 | > ${ single_paragraph(unsure_serving_parties) } 222 | - Edit: facts 223 | button: | 224 | Facts: 225 | > ${ single_paragraph(facts) } 226 | - Edit: user_bbo 227 | button: | 228 | User bbo: 229 | ${ user_bbo } 230 | - Edit: courts[0].division 231 | button: | 232 | courts[0].division: 233 | ${ courts[0].division } 234 | - Edit: plaintiffs 235 | button: | 236 | plaintiffs: 237 | ${ plaintiffs } 238 | - Edit: defendants 239 | button: | 240 | defendants: 241 | ${ defendants } 242 | - Edit: docket_numbers 243 | button: | 244 | docket_numbers: 245 | ${ docket_numbers } 246 | - Edit: users[0] 247 | button: | 248 | users[0]: 249 | ${ users[0] } 250 | - Edit: users[0].signature 251 | button: | 252 | users[0].signature: 253 | ${ users[0].signature } 254 | - Edit: signature_date 255 | button: | 256 | signature_date: 257 | ${ signature_date } 258 | --------------------------------------------------------------------------------