Skip to content

openmarketplaceengine/openmarketplaceengine

Repository files navigation

Open Marketplace Engine

A matchmaking system for labor platforms.

Lines Of Code Build & Test GitHub go.mod Go version of a Go module GoReportCard

Go Postgres Redis

Table of Contents
  1. About The Project
  2. Project Status
  3. Getting Started
  4. API
  5. Deployment
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About the Project

Open Marketplace Engine (OME) will provide matching and marketplace services to labor platforms such as rideshare services. OME integrates with other components of a gig labor platform to track and store realtime data such as worker location pings and incoming job requests. The service routes jobs to available workers and serves as a source of truth for the job state machine.

OME is designed to do the heavy lifting of a labor platform, including providing geography services for e.g. rider/driver matching. OME is not intended to provide an entire labor platform; features like user models, authentication, and user-facing interfaces are non-goals.

OME is being developed for use in the rideshare platform developed by The Drivers Cooperative. If you are interested in adopting OME in your platform, please get in touch.

Project Status

As of January 2022, OME has begun active development. Tentative milestones include:

  • Milestone 1: Worker status & pings
  • Milestone 2: Point-to-point job tracking and assignment
  • Milestone 3: Persistence
  • Milestone 4: Basic geographic model
  • Milestone 5: Basic dispatch

Getting Started

Dependencies can be launched using docker-compose:

$ docker-compose up

You can run the OME service itself with:

OME_PGDB_ADDR=postgres://postgres:$(whoami)@localhost:5432/$(whoami) go run main.go

Makefile

Run make to list all make tasks.

$ make

echo-env                       Echo environment variables
clean                          Clean
nuke                           Clean with -modcache
build                          Build binary
checkstyle                     Run quick checkstyle (govet + goimports (fail on errors))
test                           Run tests
test-cover                     Run tests with -covermode
test-race                      Run tests with -race
test-bench                     Run tests with -bench

Configuration

Coming soon

export OME_SERVICE_PORT='10000'

export OME_REDIS_STORE_HOST='localhost:6379'
export OME_REDIS_STORE_USERNAME=default
export OME_REDIS_STORE_PASSWORD=secret

API

OME will publish a gRPC API for updating worker and job states. The API is under development.

Deployment

OME will be available as a container image. Track the issue

Contributing

Contributions are welcome! Please communicate actively on the projects board before beginning work, as most coordination is currently being done in sidechannels.

Coming soon: Contributor guidelines, code of conduct, and CLA

License

Assigning a license to the OME source is currently a work-in-progress. Inspiration is being taken from the CoopyLeft License and the Business Source License.

Contact

To get in touch with the OME team, you can:

As the project picks up we will consider a Discord/Slack setup as well.

Acknowledgements

OME is being developed and funded by The Drivers Cooperative, a driver-owned rideshare cooperative in New York City, USA. You can donate to the operations of the cooperative here.

About

Matchmaking & marketplace services for cooperative logistics platforms

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages