Skip to content

Commit e0e5e45

Browse files
Update docs best I can
1 parent deaaa37 commit e0e5e45

21 files changed

Lines changed: 185 additions & 77 deletions

File tree

CONTRIBUTING.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,34 @@
22

33
## Project Background and Context
44

5-
TODO
5+
This project is a part of the [Document Assembly Line](https://assemblyline.suffolklitlab.org/) as a part of the Suffolk LIT Lab.
6+
7+
This project is primarly meant as an intermediatary between programs that want to e-file document with courts and
8+
E-Filing Managers, specifically Tyler Technologies[^1]. While this project is [open source](LICENSE), we don't have control
9+
over access to Tyler Technologies' servers, which will make it difficult to use or test this software if you aren't a part of
10+
the Assembly Line team.
11+
12+
While we still welcome contributions and can help debug issues and patches, we cannot help with getting access keys from Tyler.
13+
You can reach out to [Tyler's eFile and Serve](https://www.tylertech.com/products/enterprise-justice/efile-serve) team
14+
to learn more.
615

716
## Building and Running
817

918
See the [README.md] and [docs/setup.md] for more details on how to build locally, and [docs/developing.md] for technical
1019
details to keep in mind when writing code.
20+
21+
## Making PRs
22+
23+
To make a PR on our GitHub project, follow [this guide from GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
24+
25+
When you make your PR, don't forget to make sure that your changes pass our
26+
continuous integration (CI). The CI scripts are found in `.github/workflows`,
27+
but in general you should run the following commands before making a PR:
28+
29+
* `mvn -Preproducible verify` (build the Java project)
30+
* `mvn compile javadoc:javadoc` (build the Javadoc documentation)
31+
* `docker build .` (build the Docker image)
32+
* `mvn spotless:apply` (formats your code)
33+
34+
35+
[^1]: While we have intentions of expanding to work with additional EFMs, the only one we work with is Tyler's implementation of ECF 4.

Dockerfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
FROM maven:3.8-eclipse-temurin-21 AS build
22
ARG CI_COMMIT_SHA
33
LABEL git-commit=$CI_COMMIT_SHA
4-
# The `[]` is an optional COPY: doesn't copy if those files aren't there (https://stackoverflow.com/a/46801962/11416267)
5-
# They are needed for Tyler API usage
64
COPY pom.xml /app/
75
COPY EfspCommons /app/EfspCommons/
86
COPY TylerEcf4 /app/TylerEcf4/

EfspCommons/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# EFSP Commons
2+
3+
The Java project with common classes not related to any specific type of application that are used in all other packages.

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/stdlib/NonEmptyString.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.Optional;
44

5+
/** A class that is guaranteed to contain a non-empty/non-blank/non-null string. */
56
public class NonEmptyString {
67
private final String data;
78

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/stdlib/RandomString.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,28 @@ public class RandomString {
1313

1414
/** Generate a random string. */
1515
public String nextString() {
16-
for (int idx = 0; idx < buf.length; ++idx) buf[idx] = symbols[random.nextInt(symbols.length)];
16+
for (int idx = 0; idx < buf.length; ++idx) {
17+
buf[idx] = symbols[random.nextInt(symbols.length)];
18+
}
1719
return new String(buf);
1820
}
1921

2022
public static final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
21-
2223
public static final String lower = upper.toLowerCase(Locale.ROOT);
23-
2424
public static final String digits = "0123456789";
25-
2625
public static final String alphanum = upper + lower + digits;
2726

2827
private final Random random;
29-
3028
private final char[] symbols;
31-
3229
private final char[] buf;
3330

3431
public RandomString(int length, Random random, String symbols) {
35-
if (length < 1) throw new IllegalArgumentException();
36-
if (symbols.length() < 2) throw new IllegalArgumentException();
32+
if (length < 1) {
33+
throw new IllegalArgumentException();
34+
}
35+
if (symbols.length() < 2) {
36+
throw new IllegalArgumentException();
37+
}
3738
this.random = random;
3839
this.symbols = alphanum.toCharArray();
3940
this.buf = new char[length];

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/stdlib/SQLFunction.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
import java.sql.SQLException;
44

5+
/**
6+
* A "Function" function type that could throw a SQLException.
7+
*
8+
* <p>Necessary because the built-in Function interface doesn't allow throwing checked exceptions.
9+
*
10+
* @param <T> the input type for this interface
11+
* @param <R> the type returned by this interface
12+
* @see edu.suffolk.litlab.efsp.stdlib.SQLGetter
13+
*/
514
@FunctionalInterface
615
public interface SQLFunction<T, R> {
716
R apply(T input) throws SQLException;

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/stdlib/SQLGetter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
import java.sql.SQLException;
44

5+
/**
6+
* A "Supplier" function type that could throw a SQLException.
7+
*
8+
* <p>Necessary because the built-in Supplier doesn't allow throwing checked exceptions.
9+
*
10+
* @param <R> the type returned by this interface
11+
*
12+
* @see edu.suffolk.litlab.efsp.stdlib.SQLFunction
13+
*/
514
@FunctionalInterface
615
public interface SQLGetter<R> {
716
R get() throws SQLException;

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/stdlib/StdLib.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package edu.suffolk.litlab.efsp.stdlib;
22

33
import java.util.Optional;
4-
import org.slf4j.Logger;
5-
import org.slf4j.LoggerFactory;
64

75
/** Things that really should just be in the standard lib. */
86
public class StdLib {
9-
private static final Logger log = LoggerFactory.getLogger(StdLib.class);
10-
11-
/** Quick wrapper to get an env var as an optional. */
7+
/** Wrapper to get an env var as an optional: there if present, empty if not. */
128
public static Optional<String> GetEnv(String envVarName) {
139
String val = System.getenv(envVarName);
1410
if (val == null || val.isBlank()) {

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022 Suffolk Legal Innovation and Technology Lab
3+
Copyright (c) 2026 Suffolk Legal Innovation and Technology Lab
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Docker env files can't be directly used in `bash`, so if you are running things
2525
2626
### Making API Tokens
2727
28-
When running locally, run `./local_create_api_key.sh`.
28+
When running locally, run `./scripts/local_create_api_key.sh`.
2929
3030
The API token to add to the docassemble config will be printed out.
3131

0 commit comments

Comments
 (0)