This is a sports betting backend implemented in Kotlin and Spring Boot. It features a GraphQL API and a WebSocket subscription API.
This is a work in progress. It is not yet ready for production use yet.
This apps fetches live and pre-match odds from bets-api.com. Register with them using my referral link to support this project.
Demo betting frontend: https://www.parabolicbet.com/
The frontend codebase is in my ultrabet-ui repository
- Set results to bets
- pay out winnings
- Add a 2nd application (gradle subproject) that contains a secured GraphQL API for placing bets and other actions that require authentication.
- Map internal errors to GraphQL errors that show properly in the client
- GraphQL subscriptions
- Make it update market_option.last_updated_at
- Entities (for JPA)
- Repositories
- Queries
- Mutations
- Import feeds from bets-api.com
- Admin queries and mutations
- Bet should have several MarketOptions (long bet)
- Deploy somewhere
- Pagination TBD when building the UI
- add completedEvents query
- scheduled update of completed events. Canceled events are now left non-completed.
- Live event visualization
- Bet builder ala Bet365
- Bet types
- Right
- Parlay
- System
- Multifeed
- Back Office
- Risk management (alerts, limits, etc)
- Bet list with voiding
- Player list?
- Wallet integration
- Multiple languages
- add a 'source' field to the Market entity, to identify the bookmaker. Event.markets edge should be able to filter based on source.
- import each event only once
- Rename to parabolicbet.com
- Live events polling should be more frequent than pre-match events
- Should also request scores when live
- Check
completed
field when polling scores. When completed -> set result and pay out winnings - Show all score updates on current score mouse hover
- Add results page to show completed events
- limits
- alerts
- bet invalidations