Coder Social home page Coder Social logo

james-camilleri / box-office Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 3.19 MB

A theatre booking system built on Sanity.io and SvelteKit, using Stripe for payments. Supports box-office bookings, discount codes, reports, and ticket scanning during the event.

TypeScript 56.53% JavaScript 9.13% HTML 0.14% Svelte 29.47% SCSS 4.34% CSS 0.39%

box-office's People

Contributors

james-camilleri avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

wesleypearson

box-office's Issues

Add capability for exporting tickets individually (perhaps as PDFs)

Some complimentary tickets need to be handed out to large numbers of people, which is a bit tricky when they're all on the same email. Back-end functionality for exporting them as PDFs or individual images would be useful. (I don't really want to attach PDFs to emails because people will start printing tickets).

Tidy up build process

The exported plugins and setup scripts are being compiled by Vite, which is either unnecessary or causes actual problems (such as with the 'unplugin' icons vite plugin). It might make sense to rework this at some point.

Fix stupid favicon error

The logs are full of Not found errors for a favicon (even though I thought I specifically removed any references to a favicon). It's filling the logs with mess.

image

Link payment IDs to invoice to track refunds

It's currently not very easy to trace a charge back to a stripe invoice, especially if tracing of refunds is required. Some reference to the invoice should be added to the payment.

Export (and import) Sanity CSS separately

Sanity css is currently lumped in with some (but not all?) of the SvelteKit css, for some reason. The SvelteKit css shouldn't really be exported at all, and the sanity css should be put in a sensible place and re-exported cleanly. Relates to #8.

Transitive dependencies are broken for `web` site

A number of transitive dependencies, including @floating-ui, @portabletext/toolkit, @svelteuidev, dijkstrajs and encode-utf8 fail to be resolved when running a dev server for the ticketing front-end in a spawned project. Manually installing the packages seems to solve the problem, but it shouldn't be necessary.

New shows create duplicate Stripe customers

This might not be the case anymore, but deploying box-office for a new show, with a fresh database, was creating duplicate Stripe customers. This isn't great. (Especially if it blows everything up, but I can't remember if it does.)

Reporting is broken

Reporting is currently giving weird values, and the styles are also out of whack.

Internal price handling uses JS floating-point

This is bad. We're bound to have rounding errors at some point, and Stripe expects everything in integer values anyway so we might as well do the smart thing and use integers internally.

Add checkbox to add email to newsletter

A little checkbox on the checkout page to add emails to the theatre company's mailing list. Just store a boolean, then emails can be given to theatre company for manual addition after the show.

Add pre-selection link capability

Loading the ticketing platform with URL parameters for 'show' and 'seats' should preselect the seats on-screen. The 'seats' parameter should be encrypted and processed on the server to allow for selecting reserved seats (assuming they aren't already sold).

Lots of duplicate payments (incomplete)

The front-end seems to be starting a lot of incomplete payments, a lot of payments seem to to come in pairs - one incomplete one followed by a successful one. Requires further investigation.

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.