Skip to content
 
 

Repository files navigation

uReport is a CRM web application with an Open311 (GeoReport v2) endpoint that should meet the needs of smaller municipalities wishing to deploy Open311 and/or a lightweight constituent management tool. Context-switched feeds (XML, JSON, etc) allow it to easily be integrated into existing environments.

Installation

In order to install one of our binary releases, you must have a linux system already set up with:

There are many ways to set up and install your own linux webserver. Our way is not the only way, though. It's well worth reading up on all the technologies and deciding what you need for your own hosting.

Installing with Docker

The easiest way to set up a development environment is with Docker. We recommend installing Docker for Desktop. Make sure that the commands docker and docker-compose are added to your system path. Then, in your repo directory:

  1. Copy infra/site_config.docker.php to crm/data/site_config.php.
  2. In the repo directory, run docker-compose up --build.

You should see the application running at http://localhost:8080/tickets.

To run unit tests in Docker:

docker compose exec -w /var/www/html/crm app vendor/bin/phpunit -c src/Test/phpunit.xml --testsuite Unit

To run test coverage analysis:

docker compose exec -w /var/www/html/crm app vendor/bin/phpunit -c src/Test/phpunit.xml --testsuite Unit --coverage-text

To run PHPStan:

docker compose exec -w /var/www/html/crm app vendor/bin/phpstan analyse -l 5 --memory-limit 1G

Once you've got hosting sorted out, you can follow the Wiki instructions to install uReport on your webserver.

Running Tests

Tests are written using PHPUnit. You can run them from the root installation directory.

Unit tests are safe run any time. The do not alter the database or touch the hard drive of a deployment.

Integration tests are intended to be run against a production deployment to make sure everything is configured correctly and working. (Database connections, Image uploads, Solr queries, External webservices, etc.) These tests will make queries and write files to the hard drive of the deployment. However, they are non-destructive, read-only queries and are safe.

Database tests SHOULD NOT BE RUN against production. These check the implementation of data apis and will alter and delete data. Only run these against a dev or test instance.

SITE_HOME=/path/to/data/dir phpunit -c src/Test/Unit.xml
SITE_HOME=/path/to/data/dir phpunit -c src/Test/Integration.xml
SITE_HOME=/path/to/data/dir phpunit -c src/Test/Database.xml

Developing uReport

We are always open to new collaborators. If you are customizing uReport, we welcome pull requests on Github.

To get started developing uReport, there are some additional requirements in order to build a working copy from source.

  • composer
  • sassc
  • GNU gettext command line tools
  • bash

Questions and Feedback

Online documentation is in this project's Wiki

If you find this software acting in unexpected ways, please create an issue in our Issue Tracker.

If you want to contribute to the project, join us on our Google Group

License

The files in this project are released under the GNU Affero GPLv3. Details are in LICENSE

About

Issue tracking and constituent relationship management system with an Open311 (GeoReport v2) endpoint designed for local governments

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages