Skip to content

ShmooConTix/ticket-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 

Repository files navigation

ShmooCon Ticket Bot PoC πŸŽ«πŸ€–

This is a proof-of-concept bot to automatically purchase tickets for ShmooCon, a conference that is notoriously hard to get tickets for. This repository serves as a directory for everything that has been orchestrated.

Caution

This project is provided for research and educational purposes only. It is intended solely as a proof of concept. The author is not responsible for any misuse or actions taken by end users based on this code. Use at your own risk. We are not affiliated with ShmooCon in any way.

About

This project was an attempt to see what a working ticket bot would look like for ShmooCon, considering that it was the last year the conference was occurring. A lot of effort was put into this project over the years, including a feature for automatically answering the riddles using AI. Everything was written in TypeScript, and I would consider this overengineered (but that just makes it even more fun!).

A talk was even done on this very thing! (~2 hour mark)

Architecture

Everything was run with Docker. Below is the architecture for the latest proof-of-concept:

  • dashboard: Served as the "user-facing" portion of the bot and was where configuration (accounts, URLs, etc.) was managed. Built with NextJS and a very nice UI.
  • bot-ts: The actual "bot," which used Playwright to execute its commands. Used a "stages" system to execute its tasks. Handles errors incredibly and communicates with the API.
  • ticket-server: Acted as a replicated mock version of the ShmooCon ticket server, as using the real ShmooCon ticket server would be unwanted. Built with Bun, SQLite, Elysia, and React.
  • api: Did the "heavy lifting" / processing for the bot. Handled AI responses, configuration, and user management. Communicated with bot-ts, extension, and dashboard. Built with Bun, SQLite, and Elysia.
  • extension: Sent the riddle to the API, retrieved the answer, and input it. Meant for a human version (which was not the final version, still a cool concept though). THIS PART WAS MORE OF A CONCEPT AND IS NOT PART OF THE FINAL VERSION.

Below is a diagram of the above (for the final version): image

Contributing

This project / experiment is over and is not open to changes. Please contact me if you have questions.

About

ShmooCon Ticket Bot Proof of Concept (PoC) - FOR EDUCATIONAL AND RESEARCH PURPOSES ONLY

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published