Developing

See setup.md to first install the required dependencies and be able to run the server.

Working with Docassemble

If you are developing integrations to the E-file Proxy on a docassemble server, you need to install the following packages: 1. docassemble.AssemblyLine 1. docassemble.EFSPIntegration

See the docs for the docassemble-EFSPIntegration package at the main Assembly Line documentation.

Writing Code

There are two server files that provide important features that can help you understand the server: * AdminUserService.java. * FilingReviewService.java.

See architecture.md for a description of the general architecture of the program.

Adding Libraries

You can search for dependencies using Maven's search site, and see more details about a package on MVNRepository.

To add new libraries, edit pom.xml and add an entry to <dependencies>. Here is an example of when we added the sendgrid library:

        <dependency>
            <groupId>com.sendgrid</groupId>
            <artifactId>sendgrid-java</artifactId>
            <version>4.7.2</version>
        </dependency>

General Tips

This REST/JAX book is a good place to learn about the basics of JAX.

Committing your code and making PRs

We accept code and doc contributions! Below are the technical details that will help your code fit right in. The full context of this project might help you understand our goals / non-goals.

Formatting code

Java and POM formatting is done with Spotless.

mvn spotless:apply

Formatting checking is automatically run whenever mvn compile is run.

Linting the code (Optional)

We (sometimes) use Spotbugs as a java linter, but it's not strictly enforced at the moment. To find linter errors, run this:

mvn spotbugs:spotbugs
mvn spotbugs:gui

The later command will open a GUI to see all of the bugs that it's found.