Git Product home page Git Product logo

davidmintz / court-interpreters-office Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 2.0 25.81 MB

web application for managing a busy court interpreters office.

License: MIT License

PHP 19.61% HTML 4.05% CSS 7.02% JavaScript 62.50% Shell 0.12% Python 0.21% Dockerfile 0.03% Less 3.08% SCSS 3.39%
court-interpreters-office us-district-court php7 doctrine-orm zendframework zend-mvc zf3-mvc laminas-mvc court-interpreting

court-interpreters-office's Introduction

InterpretersOffice

is a web application for managing busy court interpreters offices (in the English-speaking United States judicial system).

Developed and used by the Interpreters Office for the US District Court, Southern District of New York, InterpretersOffice is freely available to any other court interpreter offices that are interested in using it. The motivation for creating it is that there is to our knowledge no software available, commercial or otherwise, specifically designed for managing a busy staff court interpreters office.

We should also mention, though it may seem obvious, that this an Anglophone-centric project. Court interpreters are required in a vast number of language combinations around the world. But this app assumes English as the language of the court.

please note

This project is out of date and should be considered semi-abandoned. That means yours truly, the author, would like to work on it but has no plans to do so in the immediate future. That could change if someone were to express interest in using this application. Nevertheless...

it will install and run under PHP 8.1

but you must install with the command composer install --ignore-platform-reqs.

features

The administrative interface allows authenticated users to manage the calendar for their office: view, add, update and delete events involving court interpreters. Events have attributes like date, time, place, language, judge, docket number, type of proceeding or ancillary event (e.g., attorney-client interview), and of course, the interpreter(s) assigned. You can also record metadata such as the identity of the person making the request and the date and time it was made.

Among other features:

  • You can search your database based on all these criteria (date range, docket, judge, language, etc.) and run activity reports.

  • Support for quick and painless emailing of templated assignment details, confirmation and cancellation notices, etc., from within the application -- no need to copy/paste into your email program.

  • An optional Requests module which, when enabled,

    • allows users outside your Interpreters Office to log in and manage their own requests for interpreting services, a convenience to them that vastly reduces the amount of data entry required of the Interpreters and eliminates a major source of errors.
    • can be configured to react automatically to certain events, e.g., when a user cancels a scheduled event, the schedule is automatically updated and the interpreter(s) are notified.
  • You can create notes relevant to a particular day or week to facilitate administration and intra-office communication, and configure their visibility, size and position to suit your taste -- analogous to a physical post-it note, but tidier and more powerful.

  • You can create annotations based on docket numbers, so that you can flag any especially noteworthy aspects of a particular case.

requirements

If you're considering adopting this software for managing your own interpreters office, you'll be pleased to know that the requirements, in addition to the application source code itself, are straightforward. In lay terms: you will need standard hardware and software for serving a web application. That means a computer on a network with its firewall configured to allow web traffic; installed on that computer, a properly configured web server such as Apache; MySQL or MariaDB as a database server (others will likely work, but we haven't gone there yet); and the programming language PHP, minimum version 7.3. On the client side, users will need no more than a standard web browser and network access to the server where the application is installed.

If you're planning to run InterpretersOffice on your court's intranet, your system administrators should readily understand this stuff. If you opt instead to install it on a commercial web hosting service, that will work as well, because as we said, the underlying software requirements are standard.

With docker having become such a thing, there's a good chance that we will eventually dockerize this application. In English, this means even less to worry about in terms of what else has to be installed and set up on the computer where it resides.

The entire software stack -- operating system, web and database servers, application code -- is built on open-source software and available to you free of charge. If you're running InterpretersOffice on your organization's network, a single inexpensive commodity PC should be powerful enough to do the job.

All of this is to say that in terms of cost, good news: InterpretersOffice and the supporting software are completely free; the hardware you'll need is inexpensive.

installation

Currently, installation requires some manual setup. We plan to make this more convenient in future releases. If you're a technical person and want to give it a shot, by all means feel free -- and contact me if you have questions. We have some installation instructions at the project website, interpretersoffice.org.

Essentially, you need clone the repository (https://github.com/davidmintz/court-interpreters-office.git) or download the source code; using the industry-standard PHP dependency manager composer, install the the software dependencies; create your mysql database and a mysql user/password for the application to use; initialize the database with a supplied SQL script; and finally, there are a couple of configuration files to edit and directories to be created and made server-writeable.

known issues and limitations

The SDNY Interpreters Office has been successfully running the current major version ofInterpretersOffice since April 2020; predecessor versions have been in use since 2000. It is stable and production-ready. There are still a few ragged edges which, once smoothed out, should improve long-term maintainability and performance. The following are for the most part invisible to end users:

  • The JQuery-based Javascript is old-school and though it works fine, it should be migrated to webpack.
  • The ways in which similar problems are handled in various parts of the application are not always consistent, as I was learning more about Doctrine ORM as the project progressed.
  • InterpretersOffice has been designed with the US federal court system in mind. It is not currently well-suited to other judiciary systems, although we could and would change this in the future -- especially if there is interest.
  • The logic involved in email templating and the implementation of the Notes (MOTD/MOTW) module is needlessly complicated.
  • The web application framework that we use -- Laminas, formerly known as Zend -- is not as popular, well-known, and easy to use as its competitors. If I had it to do over, I would prefer Symfony.

demonstration

Yes! A demonstration site is available. Please contact me for details.

questions? comments?

Feel free to contact me with any questions or suggestions: [email protected]

the author

My name is David Mintz and until my retirement in July 2020 I was a Spanish interpreter on staff at the Interpreters Office of the US District Court, Southern District of New York, located in New York City. My career as a court interpreter lasted over 30 years. As a staff interpreter I was motivated to pick up web application development by the complete lack of software for managing an interpreters office.

acknowledgments

Our server-side code is written in PHP and relies heavily on the Laminas MVC Framework (formerly Zend) and the Doctrine Object Relational Mapper. The front end makes use of Bootstrap front-end framework, the jQuery Javascript library, and more. We are boundlessly grateful to the people who make these superb tools available.

court-interpreters-office's People

Contributors

davidmintz avatar dependabot[bot] avatar tomhanderson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

court-interpreters-office's Issues

make event, interpreter admin forms configurable

-- provide UI for editing configuration that controls whether certain fields are used for interpreter form (BOP form submission, fingerprints, oath, etc.)

-- event form: provide config option for "end time" field

revise admin/interpreters edit form

multiple date validation error messages
ugly jumping on form submit
pointless(?) re-authentication when Vault is enabled
use xhr for the whole thing, not just validation when switching tabs

devise way to move all demo data forward in time

code a way to move the former "today" when the data was imported to the current date, to make a better simulation. otherwise, unless you do another wholesale import, it will get stale in short order.

Notes module: spurious "no note for this date"

seems to happen when logging in fresh with no session settings, and loading /admin/notes. happens when loading edit form directly (not xhr) and MOTD entity is fetched but not MOTW or vice-versa.,

session validation failure can throw a ServiceNotCreatedException

Zend\ServiceManager\Exception\ServiceNotCreatedException: Service with name "Authentication" could not be created. Reason: Session validation failed in /opt/www/court-interpreters-office/vendor/zendframework/zend-servicemanager/src/ServiceManager.php on line 765

happened after rebooting the computer

"notes" module

get started on a discreet module for notes, a/k/a, MOTD, MOTW

search interface idea

on clicking "search" in main nav, show dialog prompting for docket and also providing a link to "advanced..." options

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.