This project demonstrates a taxi API that implements ordering a taxi from point A to point B.
All features are covered by tests using Codeception and PHPUnit.
Important! This project is intended for demonstration purposes only and should not be used in a production environment. Although implementing validation and authorization mechanisms is planned, it is not a top priority at the moment.
- Debug UI (moved to separate repository)
- API documentation at
/api/doc
- Simulate driver/user actions
- Registration and authentication
- Driver profile activation
- Geocoding and reverse geocoding
- OpenStreetMap Nominatim service
- Location tracking
- Route planning
- OpenStreetRoute self-hosted service
- Route rendering
- Cost estimation
- Simple distance-based cost estimation
- Advanced cost estimation
- Payment processing
- Stripe integration
- Hold payment until the order is completed
- Charge payment if the order is completed
- Refund payment if the order is cancelled
- Driver matching
- Shortest distance matching strategy
- Fastest delivery time matching strategy
- Retry matching if no drivers are available
- Order management
- Order creation
- Order cancellation
- Order completion
- Rating system
symfony serve
- Download OSM data from OSM - use Overpass API to export large chunk of data
- (optional) Update permissions:
sudo chown -R 1000:1000 var/ors-docker
- Put the data into
var/ors-docker/files/map-odesa-test.osm
or change the file name invar/ors-docker/config/ors-config.yml:102
- Run
docker-compose up
to start the service (REBUILD_GRAPHS
should beTrue
to rebuild the graphs)
- TBD
Custom OSM tiles: https://leaflet-extras.github.io/leaflet-providers/preview/
-
Build API documentation:
php bin/console nelmio:apidoc:dump --format=html > api.html php bin/console nelmio:apidoc:dump --format=json > api.json
-
Do not use the same name for Response DTO constructor argument and property name, because NelmoApiDocBundle will use the constructor argument type for documentation.