Google Summer of Code 2021 - accordproject/techdocs GitHub Wiki

Accord Project: Google Summer of Code 2021 Ideas List

Below are a list of project ideas organised by technical areas relevant to the Accord Project: user interface, data modelling, languages and compilers, blockchain, and natural language processing.

We also welcome students' input on those projects or alternative project proposals in the different areas listed below and in scope with the goals of the Accord Project.

Model Editing and Transformation

CiceroMark to DOCX (OOXML)

Description: Export an Accord Project extended markdown document to MS Word .docx format, ensuring that extensions (such as clauses) are preserved upon re-import. This will allow more flexibility and portability with round trip transformation of docx files to markdown and back which contain smart clause templates

Challenges: Complex nested model (and JSON) transformation. Advanced JavaScript. Understand internals of DOCX format and how to manipulate it using a JavaScript API

Skills: JavaScript

Mentor: Jolene Langlinais, Aman Sharma, Dan Selman, Tom Brooke

Signing Templates and Signing Contracts

Description: It would be lovely to be able to sign templates. (to authenticate the source). And to sign contracts (to authenticate the contract signatories). More context can be found in the Issues around signing the contract / identify & digital signatures, signature blocks in the document itself, and signing the template archive

Challenges: We have a stalled PR open on this that can be used as a starting point

Skills: JavaScript, Node, Cryptography

Mentor: Martin Halford, Tom Brooke

Template Editing and Developer Experience

Contract Editor Pop-ups

IDEA REMOVED: Due to changed life circumstances, original mentors are unable to dedicate enough time to support this project in Google Summer of Code 2021.

Description: Add pop-ups to Contract Editor UI for editing variables in contracts. Providing a modal pop-up to edit variables would be useful as it would constrain users from entering bad data. The variables could be rendered as links in the contract text, and clicking on a variable should open the appropriate pop-up. Find more context in this Issue

Challenges: The main hurdle is to create a pop-up that works for one specific variable and data type. This would need to be accessible and thoroughly tested. We can then move on and use this as a template for further variable data support. Form field validation, multiple data types such as address, currency, date/time, etc.

Skills: JavaScript, React, SlateJS

Mentor: Jolene Langlinais, Diana Lease, Michael Grover

Programming Languages, Blockchain and Compilation

Manage Templates via Hyperledger Fabric

Description: Allow templates to be deployed to Fabric

Challenges: Hyperledger Fabric v2.x chaincode

Skills: Hyperledger Fabric, Docker, JavaScript, Node

Mentor: Dan Selman

Language and Detection

Automatic Identification of Contract Data Types with NLP

Description: Mapping between the natural language text of a contract and attempting to classify data types such as monetary amounts, dates and legal specific terms such as agreement parties etc. into cicero variables from the existing model library

Challenges: NLP for entity extraction, Weak Labelling using the Snorkle Framework, combining Machine Learning and heuristics

Skills: Python, Natural Language Processing, Weak Labelling

Mentor: Niall Roche, Alastair Moore

Multilingual Templates (Multi-Locale)

Description: Add multiple grammars to a template, one per locale

Challenges: Cicero archive format extension, API changes. Default date/time/money formats

Skills: JavaScript, Node

Mentor: Dan Selman