Coder Social home page Coder Social logo

mbpictures / tessera Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 2.0 2.88 MB

Open source and ready to use ticket shop with lots of customization abilities and feature rich admin dashboard. Several payment providers (stripe, paypal, sofort) are available out of the box and new ones can be added with ease.

License: MIT License

TypeScript 84.06% SCSS 0.77% HTML 4.19% JavaScript 10.82% Dockerfile 0.16%
nextjs ready-to-use ticket-booking ticket-selling ticket-server

tessera's Introduction

Logo Welcome to Tessera ๐Ÿ‘‹
Your open source ticket shop

License: MIT Build Status CI Status Codecov Docs badge

Open source and ready to use ticket shop with lots of customization abilities and feature rich admin dashboard. Several payment providers (stripe, paypal, sofort) are available out of the box and new ones can be added with ease.

๐Ÿ  Homepage

โœจ Demo

โšก๏ธ Quickstart

๐Ÿ“ฅ Install

npm install

โ–ถ๏ธ Run

  1. Create a .env file containing all values of .env.example except the optional ones
  2. Set up a database (further instructions here)
  3. If you're not using postgresql please update the provider flag inside the schema.prisma
  4. Optional: Configure payment providers in .env (e.g. stripe, sofort, paypal)
  5. Optional: Configure email service to send invoices and digital digits (e.g. gmail)
  6. Push prisma db schema to your database and generate prisma client with:
    prisma db push
    prisma generate
  7. (OPTIONAL) seed the database with demo configuration:
     prisma db seed
  8. Start the server at port 3000 using:
    npm run build
    npm run start:default
  9. Open the ticketshop at the url in the console
  10. Open the admin page at URL/admin
  11. Create your first admin user with the register button (the first user is granted with admin permissions)

๐Ÿณ Setup Docker

  1. Pull the image using docker pull ghcr.io/mbpictures/nextjs-ticketshop
  2. Create a container docker create --name nextjs-ticketshop -p 3000:3000 --add-host=host.docker.internal:host-gateway nextjs-ticketshop
  3. Update the host of your database URL to postgresql://USERNAME:[email protected]:PORT/DATABASE?schema=public if you want to use the database running on your host OS. If you want to use a database container, replace host.docker.internal by the name of your database container and add a docker network.
  4. Copy your environments file inside the container: docker cp .env nextjs-ticketshop:/ticketshop/.env
  5. Start the container docker start nextjs-ticketshop
  6. You can access your ticketshop at http://localhost:3000

๐ŸŽฏ Features

  • Select events, seats and collect customer information (address, e-mail, etc)
  • Three delivery possibilities: Download (Template Ticket with QR), Postal delivery and box office
  • Payment: PayPal, stripe (iban & credit card), sofort and invoice
  • Sending emails (with templates) containing invoice and/or tickets
  • Easy to use admin section with event management, seat map editor, viewing orders, marking invoices as payed
  • RESTful API to manage events and orders with third party tools or webhooks
  • Customizable ticket shop UI with import function for MUI themes
  • Multi-Language Support and translation editor
  • Ticket control webapp (to scan and verify downloaded tickets)
  • Notifications (e.g. for new orders)
  • Event scheduling
  • Google Wallet API for event tickets (needs environment variables)

๐Ÿ”œ Planned

  • Customizeable webhooks (to automate receipt of payment detection etc.)

If you miss some features, which are not planned, please create an issue โ—

๐Ÿ‘จโ€๐Ÿ’ป Tech stack

  • This project uses React for frontend
  • MUI as UI library
  • Next.JS is used as WebSDK and as server backend
  • All data is stored in a database (e.g. Postgre) and with prisma as ORM accessed
  • Integration testing is done with cypress
  • Continuous Integration using GitHub Actions

๐Ÿ“ Documentation

You can find a detailed documentation here

๐Ÿ‘ฅ Author

๐Ÿ‘ค Marius Butz

โญ๏ธ Show your support

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.