Skip to content

Instantly share code, notes, and snippets.

@Bergbok
Last active August 21, 2025 10:45
Show Gist options
  • Save Bergbok/93cc263959eb6baa02b088a5c13d5538 to your computer and use it in GitHub Desktop.
Save Bergbok/93cc263959eb6baa02b088a5c13d5538 to your computer and use it in GitHub Desktop.
NAMPO Event Planning

NAMPO Event Planner

NAMPO (NAtional Maize Producers Organization) hosts a large agricultural event annually and wants to streamline their event planning system.
They currently rely on a restrictive third-party for providing their database, use spreadsheets for handling their exhibitors and use ticketpro.co.za for selling tickets.

Planning Flow

  1. Send out invitation forms to exhibitors.
  2. After some time, check who is interested and send out payment information.
  3. After some time, check who has made their payment and add them to the exhibitor list.
  4. Handle cancellations and exhibitor request suchs as moving stall location until cutoff date.
  5. Export required information.
  6. Display interactive map on site?

Requirements

  • Web forms that submit to database.
  • Management interface for small number of admins.
  • (?) Ticket buying system.

Implementation Options

a. Use existing event planning systems

  • Hi.Events:
    • + FOSS
    • + Easy to selfhost
    • + Pretty user interface
    • + Handles ticket booking
    • + Simple user management
    • - 0.75% / $0.40 fee per ticket sale
    • - Ticket booking uses Stripe, which isn't commonly used in South Africa
    • - Can't handle exhibitor management
    • - Can't handle interactive map
  • Indico
    • (sandbox)
    • + FOSS
    • + Developed by CERN
    • - Complex selfhosting steps
    • - Overwhelming user interface
  • EventHub
    • + Seems like it could handle all requirements
    • - Insanely expensive ($1500)
  • ExpoFV
    • + Nice interactive map
    • + Nice exhibitor management
    • - Expensive monthly subscription ($120-$280)
  • Whova
    • + Seems like it could handle all requirements
    • - Pricing unknown, you have to request a quote. Probably expensive.

b. Implement bespoke planning system

  • Pros/Cons

    • + Data backup & replication handled automatically
    • + No vendor lock-in
    • + No running costs
    • - Has to be made from scratch
  • Components

    • Static forms that submit to D1 or Turso database for exhibitors to create bookings.
    • Admin Page
      • Interactive map with plot information
      • Print/export booking information
      • Move/swap booked plots
      • Database view

Database Design

Contacts

ID (PK) Name Email Phone
int string string string

Exhibitors

ID (PK) Name FromArea ContactID (FK)
int string string int

Bookings

ID (PK) PlotID (FK) ExhibitorID (FK) Year Paid InvoiceID
int int int int bool int

Plots

ID (PK) Xmeters Ymeters Price Location Description
int float float float string (eg. BKB Exhibition Centre) string

Forms

Biosecurity 28 Day Declaration

Waar diere afkomstig is van gebied waar Bek-en-klouser aktief voorkom, moet die kuddeveearts die kudde ondersoek gedurend die 28-dae kwarantyntydperk om te bevestig dat die korrekte prosedure gevolg is. Is 'n Bek-en-Klouseer vrye area kan die observasie en verklaring deur die eienaar self aangeteken word. Die korrekte volg van prosedure bly die verantwoordelikheid van die eienaar van die diere.

Field Type Optional
Skou/Ekspo Naam string
Provinsie enum
Is gebied Bek-en-Klouser vry? bool
Eienaar Naam string
Selfoon Nr string
Epos string
Veearts Naam string Yes
Veearts Nommer string Yes
Veearts Praktyk string Yes
Veearts Praktyk Nr string Yes
Verklaring Vir enum (Skape, Bokke, Beeste)
Ondersoek Adres string

Diere waarvoor verklaring gemaak word en deur my ondersoek is:

Dier Oorplaatjie Nr Ras Geslag Ouderdom Opmerking
string int string enum float string

Verklarings

- Excluding Bevestig, Handtekening & Opmerking columns

Siekte ApplicableTo Verklaring
Beesbrusellose Beeste Die kudde waaruit die skoudiere kom is binne die voorafgaande 12 maande getoets vir beesbrusellose, en al die diere wat getoets is se resultate het bevestig dat die kudde op die datum van die toets vry was vir die siekte.
Beestuberkulose Beeste Die kudde waaruit die skoudiere kom is binne die voorafgaande 24 maande getoets vir beestuberkulose, en al die diere wat getoets is se resultate het bevestig dat die kudde op die datum van die toets vry was van die siekte.
Geslagsiektes Beeste Kuddebulle waaruit die skoudiere kom is binne die voorafgaande 24 maande getoets vir geslagsoordraagbare siektes, en al die manlike diere wat getoets is se resultate het bevestig dat al daardie manlike diere op die datum van die toets vry was van die siektes.
Parasietbeheer Beeste, Kleinvee Diere sal ten minste een week voor hul vertrek na die skou, behandel word teen inwendige parasiete met 'n middel soos deur my aanbeveel.
Parasietbeheer Beeste, Kleinvee Tydens my ondersoek was daar geen sigbare eksterne parasiete of aansteeklike veltoestande aanwesig nie, baie spesifiek tekens van brandsiekte by skape. Diere sal ten minste een week voor hul vertrek na die skou behandel word teen uitwendige parasiete met 'n middel soos deur my aanbeveel.
Kwarantyn all Die protokol is in plek en word toegepas vir al die skoudiere. Die diere was vir 'n minimum tydperk van 28 dae afgesonder en is daagliks waargeneem vir enige tekens van siekte. Spesiale fokus is geplaas op siektetekens wat moontlike bek-en-klouseer kan aandui. Alle rekords is met my gedeel. Indien die diere binne 'n korter periode as 28 dae na 'n volgende skou of ekspo gaan, moet die daaglikse observasie van bek-en-klouseer voortgesit en gedokumenteer word tot en met die volgende skou of ekspo. Hierdie observasie tesame met die 28 dae afteken van die vorige skou moet ingedien word.
Algemene siektetoestand van kudde all Al die diere op die skoulys is deur my ondersoek en geen van die diere het op die dag van ondersoek, sigbare tekens van siekte getoon nie.
Algemene verklaring all Ek het all diere op bogenoemde lys self ondersoek op die plaas soos hierbo vermeld, minder as 30 dae voor die geleentheid waarvoor hierdie verklaring gedoen moet word.
Algemene verklaring all Ek het die aangehegte biosekuriteitsplan gelees en myself vergewis van die vereistes soos uiteengesit.

Geteken op hierdie _______ dag van _______ te _______
Handtekening _______
Hoedanigheid _______

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment