Code Monkey home page Code Monkey logo

geosrv's Introduction

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.

geosrv's People

Contributors

kepkap avatar vlkolmakov avatar kevinmichaelchen avatar jasonprado avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.