No description
Find a file
2025-06-04 15:16:20 +02:00
.bolt 2cnd 2025-06-04 15:14:02 +02:00
public firt commit 2025-06-04 15:13:40 +02:00
server firt commit 2025-06-04 15:13:40 +02:00
src firt commit 2025-06-04 15:13:40 +02:00
.gitignore 2cnd 2025-06-04 15:14:02 +02:00
eslint.config.js firt commit 2025-06-04 15:13:40 +02:00
index.html firt commit 2025-06-04 15:13:40 +02:00
package-lock.json firt commit 2025-06-04 15:13:40 +02:00
package.json firt commit 2025-06-04 15:13:40 +02:00
postcss.config.js firt commit 2025-06-04 15:13:40 +02:00
README.md thx 2025-06-04 15:16:20 +02:00
tailwind.config.js firt commit 2025-06-04 15:13:40 +02:00
tsconfig.app.json firt commit 2025-06-04 15:13:40 +02:00
tsconfig.json firt commit 2025-06-04 15:13:40 +02:00
tsconfig.node.json firt commit 2025-06-04 15:13:40 +02:00
vite.config.js firt commit 2025-06-04 15:13:40 +02:00
vite.config.ts firt commit 2025-06-04 15:13:40 +02:00

Handball Ticketing Web Application

This is a web application for managing and booking tickets for handball matches. It features an admin panel for managing matches and seating, and a user-facing interface for browsing matches and purchasing tickets.

Features

Admin Panel

The admin panel allows administrators to manage matches, seating, and uploaded ticket files.

  • Secure Access: Protected by a password (can be set up on first access).
  • Match Management: Add new matches with details such as name, date, location, total seats, price (optional), and booking deadline.
  • Seat Management:
    • Upload PDF files for each seat (e.g., containing seat maps or specific ticket details).
    • Automatic extraction of seat direction (e.g., OUEST, SUD) and number from filenames in the format DIRECTION_NUMBER.pdf.
    • Option to manually set or override the seat number during upload.
    • View a list of existing matches.
    • Delete existing matches, which also removes associated seats, tickets, and uploaded PDF files.

User Interface

The user-facing part of the application allows users to browse and book tickets.

  • Match Listing: View a list of upcoming handball matches.
  • Match Details: See detailed information for each match, including date, location, available seats, price, and booking deadline.
  • Seat Selection: Visually select desired seats from the available options.
  • Booking Process: Provide contact information (name, email, phone) to book selected seats.
  • Ticket Delivery: Choose to receive the ticket(s) as a PDF download or via email.
  • PDF Tickets: Generated PDF tickets include match details, seat information (direction and number), and customer details.
  • Dark Theme: The application has a dark theme for a modern look.
  • Contact Information: A contact email is provided in the footer.

Technical Details

  • Backend: Developed with Express.js.
  • Frontend: Built with React.
  • Database: Uses MariaDB.
  • File Storage: Handles PDF file uploads for seats and tickets.
  • Emailing: Integrates with Nodemailer to send tickets via email.
  • PDF Generation: Uses pdfkit to create ticket PDFs.
  • Styling: Utilizes Tailwind CSS for a responsive and modern design.

Setup and Installation

To configure the database and email settings, create a .env file in the server directory with the following variables:

DB_HOST=your_database_host
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_NAME=your_database_name

EMAIL_HOST=your_email_server_host
EMAIL_PORT=your_email_server_port
EMAIL_USER=your_email_address
EMAIL_PASS=your_email_password
EMAIL_FROM=your_sending_email_address

Replace the placeholder values with your actual database and email server credentials.

(Instructions on how to set up and run the project - placeholder for now)

Usage

(Instructions on how to use the admin panel and book tickets - placeholder for now)