66 lines
No EOL
3 KiB
Markdown
66 lines
No EOL
3 KiB
Markdown
# 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)* |