Kide.app Ticket Bot
Ticket reservation bot for Kide.app
Bot is available here: KideAppBot.com
- Once setup, only event url is needed
- Reserves smartly maximum amount of tickets of each ticket variant for given event (see activity diagram for details)
- Handles automatically waiting for ticket sale to begin if it hasn't yet
- Doesn't bloat the kide.app api with unnecessary requests
Table of contents
Introduction
It has always been hard to get tickets to student parties in Tampere Finland. I built the first version of this bot in Septempber 2020 to test my coding skills by building a PWA application that acts as a bot that reserves maximum amount of tickets for a given event. The app went viral which lead me to make part of its private.
This app works with kide.app and therefore requires your kide.app bearer token to work. Apart from that, only event url is needed. I'm planning to make this even more straightforward in the future. As it is a Progressive Web Application it means that you can run it on almost any device that has a browser.
Usage
- NOTE: This version sends your bearer token to my server that then uses it to reserve tickets from KideApp. I will never store your bearer token nor use it for anything else than reserving the tickets. By using the bot you agree to this.
- Head to KideAppBot.com
- find your bearer token
- At https://kide.app/ (when logged in) open web inspector
- Application tab > Local Storage > https://kide.app
- Copy the value of row that has key "authorization.token", excluding apostrophes
- Set your kide.app bearer token in app settings.
- The value will be saved to local storage which means that you won't have to set it again as long as the url stays the same and you are using that same device.
- Copy event url from https://kide.app/
- Each event should start with https://kide.app/events/
- Press "Start" button and watch the bot go
Technical details
This is the second major version of the bot. It is a monorepo that uses PNPM workspaces and turborepo to manage the project. It has a frontend and a backend. They communicate through TRPC Subscriptions using websockets. The project is made modular using PNPM workspaces which means that different parts of the application are split to their own reusable packages.
- Monorepo using PNPM workspaces + turborepo
- Frontend: SvelteKit + Skeleton
- Backend: TRPC + Typescript
- Realtime communication between Frontend and Backend using TRPC WebSocket subscriptions
Running locally
Note: If you only want to use the bot this section is not necessary!
- Clone the repo and install with
pnpm install
- requires PNPM package manager
- Run from root directory with
pnpm dev
- Navigate to http://localhost:8080/ with browser
- Follow the instructions in the usage
Deep dive
Here is some information about how the project is structured and how the bot works.
Project dependency structure:
Activity diagram:
Contribution
Feel free to contribute! I'm workign on open sourcing as much as possible and making the project in general maintainable and well documented.
The project uses Conventional Commits, see: conventionalcommits.com
Troubleshooting
Finding your bearer token
- Navigate to https://kide.app, sign in, right click anywhere on the page and select
inspect
- Select
Application
tab - Open
Local Storage
and under ithttps://kide.app
- Your bearer token will be Value of Key
authorization.token
. Exclude apostrophes