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.
In order to install one of our binary releases, you must have a linux system already set up with:
- PHP 8.5 or later
- Apache 2.4
- MySQL 5.7 or later
- Solr 7.4
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.
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:
- Copy
infra/site_config.docker.phptocrm/data/site_config.php. - 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.
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
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
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
The files in this project are released under the GNU Affero GPLv3. Details are in LICENSE