Awesome
Chouette
Chouette is a java project for handling public transport (PT) data in different formats: Neptune, NeTEx, GTFS and provides 3 main services:
- Import PT data files from Neptune, NeTEx and GTFS formats
- Export PT data to Neptune, NeTEx, GTFS, KML and GeoJson formats
- Validate PT data
The Import, Export and Validation services are provided as Web Services and performed asynchronously.
The Chouette Web Service API is specified here :
- [Interface Specification Document](./doc/interface/Chouette-API serveur IEV-1.0.pdf)
- inputs and outputs data structures Jobs, Reports
Chouette is used by :
- Chouette2 , a standard-based PT planned data management web application.
- CVDTC , a web platform for PT planned data conversion and validation
Format documentations are available for:
- Neptune
- www.normes-donnees-tc.org
- NeTEx
- www.normes-donnees-tc.org
- GTFS
- General Transit Feed Specification Reference
- www.normes-donnees-tc.org
The Chouette java project is split into modules :
- chouette-iev : REST server (ear)
- mobi.chouette.command : Command mode standalone program (Conversion and Validation actions)
- mobi.chouette.common : common classes and interfaces
- mobi.chouette.dao : Dao implementation for model persistence (EJB)
- mobi.chouette.dao.iev : Dao implementation for iev persistence (EJB)
- mobi.chouette.exchange : Common classes, interfaces and commands for data exchange
- mobi.chouette.exchange.converter : Specific commands for conversion
- mobi.chouette.exchange.geojson : Specific commands for GeoJson data export
- mobi.chouette.exchange.gtfs : Specific commands for GTFS data exchange and validation
- mobi.chouette.exchange.hub : Specific commands for HUB data exchange
- mobi.chouette.exchange.kml : Specific commands for KML data export
- mobi.chouette.exchange.neptune : Specific commands for Neptune data exchange and validation
- mobi.chouette.exchange.netex : Specific commands for NeTEx data exchange (experimental local agreement)
- mobi.chouette.exchange.sig : Specific commands for GeoJson and kml data export at same time
- mobi.chouette.exchange.validator : Specific commands for common data validation
- mobi.chouette.model : JPA entities modelisation for public transport model
- mobi.chouette.model.iev : JPA entities modelisation for iev jobs
- mobi.chouette.persistence.hibernate : Hibernate specific tools
- mobi.chouette.service : Job and tasks managment
- mobi.chouette.schema.checker : Access control implementation for Chouette GUI
- mobi.chouette.ws : REST API implementation
For more information see the Architecture Documentation , in French.
Installation instructions for the command line standalone program are available here
Release Notes
The Chouette release notes (in French) can be found in CHANGELOG file
Requirements
This code has been run and tested on Travis with :
- oraclejdk7
- oraclejdk8
- openjdk7
- openjdk8
- postgres 9.4 + postgis 2.3
- wildfly 9.0.2
Chouette External Dependencies
Chouette V3.x requires Postgresql V9.4 or above
On Debian/Ubuntu/Kubuntu OS :
sudo apt-get install postgresql-9.4
sudo apt-get install postgresql-9.4-postgis-2.3
sudo apt-get install openjdk-7-jdk
For installation from sources :
sudo apt-get install git
sudo add-apt-repository ppa:natecarlson/maven3
sudo apt-get update
sudo apt-get install maven3
sudo ln -s /usr/share/maven3/bin/mvn /usr/bin/mvn
if apt-get update
fails, modify file :
/etc/apt/sources.list.d/natecarlson-maven3-trusty.list
and replace trusty
by precise
Chouette Installation
On Debian, Chouette can also be installed as a package : see debian packages
Prerequisite
Create Postgres user and databases
Installation from sources
Get git repository :
git clone -b Vx_y git://github.com/afimb/chouette
cd chouette
Test :
mvn test -DskipWildfly
Deployment :
change the data storage directory (USER_HOME by default) :
copy properties file iev.properties in /etc/chouette/iev/ directory
change property iev.directory
value to desired directory
change property iev.started.jobs.max
value to limit parallel jobs processing (default = 5)
change property iev.copy.by.import.max
value to limit parallel single line import by import job (default = 5)
For existing chouette_iev deployment : update postgres / wildfly configuration
deploy ear (wildfly must be running)
mvn -DskipTests install
Installation from the binaries
download chouette_iev.x.y.z.zip from maven repository
change the data storage directory (USER_HOME by default)
copy the properties file iev.properties into /etc/chouette/iev/ directory
change the iev.directory
value to the desired directory
change the iev.started.jobs.max
value in order to limit the max number of parallel jobs (default = 5)
. For an existing chouette_iev deployment prior to 3.2 : update the postgres / wildfly configuration
in the wildfly installation repository :
bin/jboss-cli.sh --connect --command="deploy (path to ...)/chouette.ear"
Chouette command installation and usage
More Information
An exhaustive technical documentation in French is avalailable here
License
Chouette is licensed under the CeCILL-B license, a copy of which can be found in the LICENSE file.
Support
Users looking for support should file an issue on the GitHub issue tracking page, or file a pull request if you have a fix available.