diff --git a/FEATURES.md b/FEATURES.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/README.de.md b/README.de.md index 234ff0582e..69e2c59b8d 100644 --- a/README.de.md +++ b/README.de.md @@ -1,180 +1,206 @@
-
-💖 **Hat dir Hi.Events geholfen?** -⭐ Bitte gib uns einen Stern auf GitHub, um das Projekt zu unterstützen! ⭐ +Hi.Events - Open Source Event Ticketing Platform -
+# Hi.Events -

- Hi.Events Logo -

+### Open-Source-Plattform für Event-Ticketing und -Management + +Verkaufen Sie Tickets online für Konferenzen, Nachtleben-Events, Konzerte, Club-Nights, Workshops und Festivals. +Self-hosted oder Cloud. Ihre Events, Ihre Marke, Ihre Daten. -

Hi.Events

-

Open-Source-Plattform für Eventmanagement und Ticketverkauf – ideal für Events jeder Größe

+[Cloud testen →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Live-Demo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Dokumentation](https://hi.events/docs?utm_source=gh-readme) · [Website](https://hi.events?utm_source=gh-readme) -[![Hi.Events teilen](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![X (ehemals Twitter) folgen](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Hi.Events Doku](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![Lizenz: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) [![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Cloud-Version testen ☁️ • -Demo-Event 🌟 • -Website 🌎 • -Dokumentation 📄 • -Installation ⚙️ +Deutsch · Português · Português do Brasil · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 (香港) · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Einführung +## Warum Hi.Events? -Hi.Events ist eine funktionsreiche Open-Source-Plattform für Eventmanagement und Online-Ticketverkauf. Egal ob Konferenzen, Workshops, Partys oder Konzerte – Hi.Events hilft dir, Events einfach zu erstellen, zu verwalten und zu monetarisieren. +Die meisten Ticketing-Plattformen erheben Gebühren pro Ticket und sperren Ihre Daten in ihr Ökosystem. **Hi.Events ist eine moderne, Open-Source-Alternative zu Eventbrite, Tickettailor, Dice.fm und anderen Ticketing-Plattformen** für Veranstalter, die volle Kontrolle über Branding, Checkout, Daten und Infrastruktur wünschen. -Hi.Events Dashboard Screenshot -
-Erstellt mit Screenshot Rocks -
+Entwickelt für Nachtleben-Promoter, Festival-Organisatoren, Veranstaltungsorte, Community-Gruppen und Konferenz-Gastgeber. + +
+ +Hi.Events Dashboard + +
+ +## Features + + + + + + + + + + + + + +
+ +### 🎟️ Ticketing & Verkauf + +- Flexible Tickettypen (kostenlos, bezahlt, Spende, gestaffelt) +- Versteckte und gesperrte Tickets hinter Promo-Codes +- Promo-Codes und Presale-Zugang +- Produkt-Add-ons (Merchandise, Upgrades, Extras) +- Produktkategorien für Organisation +- Vollständige Steuer- und Gebührenunterstützung (MwSt., Servicegebühren) +- Kapazitätsmanagement und geteilte Limits + + -## ⚡ Schnellstart +### 🎨 Branding & Anpassung -Starte innerhalb von Minuten mit unseren One-Click-Deployment-Optionen: +- Schöner, conversion-optimierter Checkout +- Anpassbare PDF-Ticket-Designs +- Gebrandete Veranstalter-Homepage +- Drag-and-Drop Event-Page-Builder +- Einbettbares Ticket-Widget +- SEO-Tools (Meta-Tags, Open Graph) -[![Deploy bei DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) -[![Deploy bei Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) -[![Deploy bei Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) -[![Deploy bei Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) +
-## 🌟 Hauptfunktionen +### 👥 Teilnehmerverwaltung -Hi.Events bietet dir alle Tools zur effizienten Eventplanung: +- Individuelle Checkout-Fragen +- Erweiterte Suche, Filterung und Export (CSV/XLSX) +- Vollständige und teilweise Rückerstattungen +- Massen-Messaging nach Tickettyp +- QR-Code-Check-in mit Scan-Logs +- Zugriffskontrollierte Check-in-Listen -### 🎟 Ticket- & Produktverkauf -- **Verschiedene Tickettypen:** Kostenlos, bezahlt, Spenden, gestaffelt. -- **Kapazitätsmanagement:** Global oder pro Ticket. -- **Kapazitätszuweisungen:** Gemeinsame Nutzung zwischen Tickettypen. -- **Rabattcodes:** Ermäßigungen, Presale oder versteckte Tickets. -- **Produktverkauf:** T-Shirts, Merch usw. -- **Steuern & Gebühren:** Auf Produkt- oder Bestellebene anpassbar. + -### 🏆 Eventverwaltung & Anpassung -- **Event-Dashboard:** Überblick über Umsatz, Besucherzahlen, Bestellungen. -- **Homepage-Editor:** Live-Vorschau zur Gestaltung der Eventseite. -- **Einbettbares Widget:** Integration in deine bestehende Website. -- **SEO-Tools:** Metadaten für Suchmaschinen optimieren. -- **Produktkategorien:** Strukturierte Organisation. -- **Offline-Events:** Zusätzliche Infos und Anweisungen möglich. +### 📊 Analytics & Wachstum -### 📧 Teilnehmer- & Bestellmanagement -- **Individuelle Checkout-Fragen:** Erfasse gezielte Informationen. -- **Teilnehmerverwaltung:** Suchen, bearbeiten, stornieren, kontaktieren. -- **Bestellübersicht:** Rückerstattungen, Nachrichten, Notizen. -- **Massenkommunikation:** E-Mails an alle oder bestimmte Gruppen. -- **Datenexport:** Als CSV oder Excel. +- Echtzeit-Verkaufs-Dashboard +- Affiliate- und Empfehlungs-Tracking +- Erweiterte Berichte (Verkäufe, Steuern, Promos) +- Webhooks (Zapier, Make, CRMs) -### 📱 Mobilfreundlich & Einlassmanagement -- **QR-Code-Check-in:** Web- & mobiloptimiertes Tool. -- **Check-in-Listen:** Zugangskontrolle mit sicheren Freigabelinks. -- **Mehrbenutzerzugriff:** Rollenbasierte Rechtevergabe. +
-### 🔧 Integrationen & Automatisierung -- **Webhooks:** Automatisiere mit Zapier, IFTTT, Make oder CRM. -- **Stripe Connect:** Direkte Auszahlungen für Veranstalter. +### ⚙️ Betrieb -### 📊 Erweiterte Funktionen -- **Mehrsprachigkeit:** Deutsch, Englisch, Spanisch, Französisch, Chinesisch u.v.m. -- **Teilweise & vollständige Rückerstattungen:** Mit Bestellverlauf. -- **Benutzerrollen:** Detaillierte Rechteverwaltung. -- **REST API:** Für eigene Erweiterungen. -- **Rechnungsstellung:** Mit Steuern, Notizen, Zahlungsbedingungen. -- **Offline-Zahlungen:** Banküberweisung, Barzahlung usw. -- **Eventarchiv:** Ordnung im Dashboard behalten. -- **Ticket-Sperren:** Verstecken oder freischalten mit Codes. -- **Detaillierte Berichte:** Tagesumsätze, Steuern, Gutscheine usw. +Multi-User-Rollen und Berechtigungen · Stripe Connect Sofortauszahlungen · Offline-Zahlungsmethoden · Offline-Event-Unterstützung · +Automatische Rechnungsstellung · Event-Archiv · Mehrsprachige Unterstützung · Vollständige REST-API -## 🚀 Erste Schritte +
-### 🐳 Start mit Docker +
-> [!WICHTIG] -> Stelle sicher, dass Docker und Docker Compose installiert sind. -> Download: [docker.com](https://www.docker.com/get-started) +## Vergleich -1. **Repository klonen:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +| Feature | Hi.Events | Eventbrite | Tickettailor | Dice | +|:----------------------------------|:----------|:-----------|:-------------|:------------| +| Self-Hosting-Option | ✅ | ❌ | ❌ | ❌ | +| Open Source | ✅ | ❌ | ❌ | ❌ | +| Keine Gebühren pro Ticket (self-hosted) | ✅ | ❌ | ❌ | ❌ | +| Vollständiges Custom Branding | ✅ | Begrenzt | ✅ | Begrenzt | +| Affiliate-Tracking | ✅ | ✅ | ❌ | ❌ | +| API-Zugriff | ✅ | ✅ | ✅ | Begrenzt | +| Eigene Daten besitzen | ✅ | ❌ | ❌ | ❌ | -2. **Wechsle ins Docker-Verzeichnis:** - ```bash - cd hi.events/docker/all-in-one - ``` +
-3. **Generiere `APP_KEY` und `JWT_SECRET`:** +## Schnellstart - **Linux/macOS:** - ```bash - echo base64:$(openssl rand -base64 32) # Für APP_KEY - openssl rand -base64 32 # Für JWT_SECRET - ``` +### One-Click Deploy - **Windows:** - Anleitung siehe *./docker/all-in-one/README.md* +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) -4. **Container starten:** - ```bash - docker compose up -d - ``` +### Docker -5. **Account erstellen:** - ``` - Öffne http://localhost:8123/auth/register im Browser - ``` +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one -ℹ️ Für die komplette Anleitung siehe unsere [Getting Started Doku](https://hi.events/docs/getting-started). +# Schlüssel generieren (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env -## 💜 Sponsoren +docker compose up -d +``` -### Unterstütze das Projekt +> [!TIP] +> **Windows-Benutzer:** Siehe `./docker/all-in-one/README.md` für Anweisungen zur Schlüsselgenerierung. -Wenn dir Hi.Events gefällt, unterstütze die Weiterentwicklung: +Öffnen Sie `http://localhost:8123` und erstellen Sie Ihr Konto. -Buy Me A Coffee +📖 [Vollständige Installationsanleitung](https://hi.events/docs/getting-started?utm_source=gh-readme) -Oder unterstütze uns über: GitHub Sponsors | Open Collective +
-## 📝 Changelog +## Hi.Events Cloud -Bleib über neue Features & Updates informiert auf unserer [GitHub Releases Seite](https://github.com/HiEventsDev/hi.events/releases) +Möchten Sie nicht selbst hosten? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** ist eine vollständig verwaltete Option ohne Setup, mit automatischen Updates und verwalteter Infrastruktur. -## 🤝 Mitmachen +[Jetzt starten →](https://app.hi.events/auth/register?utm_source=gh-readme) -Beiträge sind willkommen! Lies unsere [Contribution Guidelines](CONTRIBUTING.md), um loszulegen. +
-## ❓ FAQ +## Dokumentation -Fragen? Unsere [Dokumentation](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) hat Antworten. -Oder kontaktiere uns unter: [hello@hi.events](mailto:hello@hi.events) +| Ressource | Link | +|:-----------------|:----------------------------------------------------------------------------------------------| +| Erste Schritte | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Konfiguration | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API-Referenz | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | -## 📜 Lizenz +
-Hi.Events ist unter der [AGPL-3.0 Lizenz](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE) veröffentlicht. +## Mitwirken -Für kommerzielle Lizenzen siehe unsere [Lizenzseite](https://hi.events/licensing). +Wir begrüßen Beiträge. Siehe den [Beitragsleitfaden](CONTRIBUTING.md) für Details. + +
+ +## Support + +📖 [Dokumentation](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## Changelog + +Bleiben Sie über neue Features und Verbesserungen auf der [Releases-Seite](https://github.com/HiEventsDev/hi.events/releases) auf dem Laufenden. + +
+ +## Lizenz + +Hi.Events ist lizenziert unter **AGPL-3.0 mit zusätzlichen Bedingungen**. Kommerzielle Lizenzierung verfügbar. [Mehr erfahren](https://hi.events/licensing). + +
+ +
+ +**[Website](https://hi.events)** · **[Dokumentation](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** + +Made with ☘️ in Ireland + +
diff --git a/README.es.md b/README.es.md index b7cc2c546b..8206b1e01a 100644 --- a/README.es.md +++ b/README.es.md @@ -1,180 +1,206 @@
-
-💖 **¿Te ha resultado útil Hi.Events?** -⭐ ¡Considera darnos una estrella para apoyar el proyecto! ⭐ +Hi.Events - Plataforma de venta de entradas de eventos de código abierto -
+# Hi.Events -

- Logo de Hi.Events -

+### Plataforma de gestión y venta de entradas de eventos de código abierto + +Vende entradas online para conferencias, eventos nocturnos, conciertos, fiestas, talleres y festivales. +Autohospedado o en la nube. Tus eventos, tu marca, tus datos. -

Hi.Events

-

Plataforma open-source de gestión de eventos y venta de entradas para todo tipo de eventos

+[Probar en la Nube →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Demo en Vivo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentación](https://hi.events/docs?utm_source=gh-readme) · [Sitio Web](https://hi.events?utm_source=gh-readme) -[![Compartir Hi.Events](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![Seguir en X (antes Twitter)](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Documentación Hi.Events](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![Licencia: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) -[![Versión GitHub](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![Tests Unitarios](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Probar en la Nube ☁️ • -Evento de Demostración 🌟 • -Sitio Web 🌎 • -Documentación 📄 • -Instalación ⚙️ +Deutsch · Português · Português do Brasil · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Introducción +## ¿Por qué Hi.Events? -Hi.Events es una plataforma de gestión de eventos y venta de entradas de código abierto con todas las funciones que necesitas para gestionar y monetizar tus eventos, desde conferencias hasta conciertos y talleres. +La mayoría de las plataformas de venta de entradas cobran comisiones por entrada y bloquean tus datos en su ecosistema. **Hi.Events es una alternativa moderna y de código abierto a Eventbrite, Tickettailor, Dice.fm y otras plataformas de venta de entradas** para organizadores que desean control total sobre la marca, el proceso de compra, los datos y la infraestructura. -Dashboard Hi.Events autohospedado -
-Generado con Screenshot Rocks -
+Diseñado para promotores de eventos nocturnos, organizadores de festivales, venues, grupos comunitarios y organizadores de conferencias. + +
+ +Panel de Control de Hi.Events + +
+ +## Funcionalidades + + + + + + + + + + + + + +
+ +### 🎟️ Venta de Entradas + +- Tipos de entradas flexibles (gratuitas, de pago, donación, escalonadas) +- Entradas ocultas y bloqueadas con códigos promocionales +- Códigos promocionales y acceso de preventa +- Productos adicionales (merchandising, mejoras, extras) +- Categorías de productos para organización +- Soporte completo de impuestos y tarifas (IVA, tarifas de servicio) +- Gestión de capacidad y límites compartidos + + + +### 🎨 Marca y Personalización + +- Proceso de compra atractivo y optimizado para conversión +- Diseños de entradas PDF personalizables +- Página de inicio del organizador con marca propia +- Constructor de páginas de eventos con arrastrar y soltar +- Widget de entradas embebible +- Herramientas SEO (meta tags, Open Graph) -## ⚡ Despliegue Rápido +
-Comienza en minutos con nuestras opciones de despliegue con un solo clic: +### 👥 Gestión de Asistentes + +- Preguntas personalizadas en el checkout +- Búsqueda avanzada, filtrado y exportación (CSV/XLSX) +- Reembolsos completos y parciales +- Mensajes masivos por tipo de entrada +- Check-in con código QR y registros de escaneo +- Listas de check-in con control de acceso + + + +### 📊 Análisis y Crecimiento + +- Panel de ventas en tiempo real +- Seguimiento de afiliados y referencias +- Informes avanzados (ventas, impuestos, promociones) +- Webhooks (Zapier, Make, CRMs) + +
+ +### ⚙️ Operaciones + +Roles y permisos multiusuario · Pagos instantáneos con Stripe Connect · Métodos de pago offline · Soporte para eventos presenciales · +Facturación automática · Archivo de eventos · Soporte multiidioma · API REST completa + +
+ +
+ +## Comparación + +| Funcionalidad | Hi.Events | Eventbrite | Tickettailor | Dice | +|:--------------------------------------|:----------|:-----------|:-------------|:--------| +| Opción autohospedada | ✅ | ❌ | ❌ | ❌ | +| Código abierto | ✅ | ❌ | ❌ | ❌ | +| Sin comisiones por entrada (auto-alojado) | ✅ | ❌ | ❌ | ❌ | +| Marca personalizada completa | ✅ | Limitado | ✅ | Limitado | +| Seguimiento de afiliados | ✅ | ✅ | ❌ | ❌ | +| Acceso a API | ✅ | ✅ | ✅ | Limitado | +| Tus propios datos | ✅ | ❌ | ❌ | ❌ | + +
+ +## Inicio Rápido + +### Despliegue con un Clic [![Deploy en DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) [![Deploy en Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) [![Deploy en Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) [![Deploy en Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) -## 🌟 Funciones Principales +### Docker -Hi.Events ofrece herramientas completas para facilitar la gestión de tus eventos: +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one -### 🎟 Venta de Entradas y Productos -- **Tipos de entradas:** gratuitas, pagadas, por donación y escalonadas. -- **Gestión de capacidad:** por evento o por entrada. -- **Asignaciones de capacidad:** comparte cupos entre entradas. -- **Códigos promocionales:** descuentos y acceso anticipado. -- **Venta de productos:** camisetas, addons, merchandising. -- **Impuestos y tarifas:** personalizados por producto o pedido. +# Generar claves (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env -### 🏆 Gestión de Eventos y Personalización -- **Panel del evento:** estadísticas en tiempo real. -- **Diseñador de portada:** edita la página con vista previa en vivo. -- **Widget embebible:** integra el proceso de venta en tu web. -- **SEO:** mejora tu visibilidad con metadatos personalizados. -- **Categorías de productos:** organiza mejor tus productos. -- **Soporte para eventos presenciales:** con instrucciones personalizadas. +docker compose up -d +``` -### 📧 Gestión de Asistentes y Pedidos -- **Formularios personalizados:** recoge datos específicos. -- **Gestión de asistentes:** buscar, editar, cancelar, contactar. -- **Gestión de pedidos:** reembolsos, cancelaciones, reenvíos. -- **Mensajes masivos:** por tipo de entrada o a todos. -- **Exportación de datos:** en formatos CSV/XLSX. +> [!TIP] +> **Usuarios de Windows:** Consulta `./docker/all-in-one/README.md` para instrucciones de generación de claves. -### 📱 Acceso Móvil y Control de Entrada -- **Check-in QR:** herramienta web y móvil. -- **Listas de entrada:** compartibles con control de acceso. -- **Acceso multiusuario:** gestión de roles y permisos. +Abre `http://localhost:8123` y crea tu cuenta. -### 🔧 Integraciones y Automatización -- **Webhooks:** automatiza con Zapier, Make, CRMs, etc. -- **Stripe Connect:** pagos instantáneos para organizadores. +📖 [Guía de instalación completa](https://hi.events/docs/getting-started?utm_source=gh-readme) -### 📊 Funcionalidades Avanzadas -- **Soporte multilingüe:** Español, Inglés, Francés, Portugués, Alemán, Chino y más. -- **Reembolsos completos y parciales:** con seguimiento. -- **Gestión de usuarios:** con roles y permisos. -- **API REST:** acceso completo para integraciones personalizadas. -- **Facturación:** incluye IVA, condiciones de pago y más. -- **Pago offline:** por transferencia, efectivo, etc. -- **Archivado de eventos:** mantén limpio tu panel. -- **Bloqueo avanzado de entradas:** por código promocional. -- **Reportes detallados:** ventas, impuestos, productos y más. +
-## 🚀 Primeros Pasos +## Hi.Events Cloud -### 🐳 Iniciar con Docker +¿Prefieres no autohospedar? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** es una opción completamente gestionada con configuración cero, actualizaciones automáticas e infraestructura administrada. -> [!IMPORTANTE] -> Asegúrate de tener Docker y Docker Compose instalados. -> Descárgalo en: [Docker](https://www.docker.com/get-started) +[Comenzar →](https://app.hi.events/auth/register?utm_source=gh-readme) -1. **Clona el repositorio:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +
-2. **Ve al directorio Docker:** - ```bash - cd hi.events/docker/all-in-one - ``` +## Documentación -3. **Genera `APP_KEY` y `JWT_SECRET`:** +| Recurso | Enlace | +|:---------------|:----------------------------------------------------------------------------------------------| +| Primeros Pasos | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configuración | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| Referencia API | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | - **Linux/macOS:** - ```bash - echo base64:$(openssl rand -base64 32) # Para APP_KEY - openssl rand -base64 32 # Para JWT_SECRET - ``` +
- **Windows:** - Revisa *./docker/all-in-one/README.md* para las instrucciones. +## Contribuir -4. **Inicia los contenedores:** - ```bash - docker compose up -d - ``` +Damos la bienvenida a contribuciones. Consulta la [guía de contribución](CONTRIBUTING.md) para más detalles. -5. **Crea una cuenta:** - ``` - Abre http://localhost:8123/auth/register en tu navegador - ``` +
-ℹ️ Para más detalles, consulta nuestra [guía de inicio](https://hi.events/docs/getting-started). +## Soporte -## 💜 Sponsors +📖 [Documentación](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -### Apoya el Proyecto +
-¿Hi.Events te ha sido útil? Ayúdanos a continuar el desarrollo: +## Registro de Cambios -Buy Me A Coffee +Mantente actualizado con las nuevas funcionalidades y mejoras en la [página de versiones](https://github.com/HiEventsDev/hi.events/releases). -O apóyanos vía: GitHub Sponsors | Open Collective +
-## 📝 Registro de Cambios +## Licencia -Consulta las últimas actualizaciones en nuestra [página de versiones](https://github.com/HiEventsDev/hi.events/releases). +Hi.Events está licenciado bajo **AGPL-3.0 con términos adicionales**. Licencias comerciales disponibles. [Más información](https://hi.events/licensing). -## 🤝 Contribuir +
-¡Las contribuciones son bienvenidas! Lee nuestra [guía de contribución](CONTRIBUTING.md). - -## ❓ Preguntas Frecuentes - -¿Tienes dudas? Nuestra [documentación](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) te puede ayudar. -O escríbenos a: [hello@hi.events](mailto:hello@hi.events) +
-## 📜 Licencia +**[Sitio Web](https://hi.events)** · **[Documentación](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** -Hi.Events está licenciado bajo [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE). +Hecho con ☘️ en Irlanda -¿Interesado en licencias comerciales? Consulta más detalles [aquí](https://hi.events/licensing). +
diff --git a/README.fr.md b/README.fr.md index 6904ca7105..910ac29f77 100644 --- a/README.fr.md +++ b/README.fr.md @@ -1,180 +1,209 @@
-
-💖 **Hi.Events vous a été utile ?** -⭐ Merci de nous soutenir en laissant une étoile sur le projet ! ⭐ +Hi.Events - Plateforme Open Source de Billetterie d'Événements -
+# Hi.Events -

- Logo Hi.Events -

+### Plateforme open source de billetterie et gestion d'événements + +Vendez des billets en ligne pour des conférences, événements nocturnes, concerts, soirées en club, ateliers et festivals. +Auto-hébergé ou cloud. Vos événements, votre marque, vos données. -

Hi.Events

-

Plateforme open source de gestion d’événements et billetterie pour vendre vos billets en ligne, quel que soit l’événement

+[Essayer le Cloud →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Démo en Direct](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentation](https://hi.events/docs?utm_source=gh-readme) · [Site Web](https://hi.events?utm_source=gh-readme) -[![Partager Hi.Events](https://img.shields.io/badge/Partager%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![Suivre sur X (anciennement Twitter)](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Docs Hi.Events](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![Licence: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) -[![Version GitHub](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![Tests unitaires](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Essayer la version Cloud ☁️ • -Événement Démo 🌟 • -Site Web 🌎 • -Documentation 📄 • -Installation ⚙️ +Deutsch · Português · Português do Brasil · Français · Italian · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Introduction +## Pourquoi Hi.Events ? -Hi.Events est une plateforme open source riche en fonctionnalités pour la gestion d’événements et la billetterie. Elle vous permet de vendre des billets en ligne pour tous types d’événements : conférences, concerts, ateliers, soirées, etc. +La plupart des plateformes de billetterie facturent des frais par billet et verrouillent vos données dans leur écosystème. **Hi.Events est une alternative moderne et open source à Eventbrite, Tickettailor, Dice.fm et autres plateformes de billetterie** pour les organisateurs qui souhaitent un contrôle total sur leur marque, leur processus de paiement, leurs données et leur infrastructure. -Tableau de bord Hi.Events -
-Généré avec Screenshot Rocks -
+Conçu pour les promoteurs de vie nocturne, les organisateurs de festivals, les salles de concert, les groupes communautaires et les hôtes de conférences. + +
+ +Tableau de bord Hi.Events + +
+ +## Fonctionnalités + + + + + + + + + + + + + +
+ +### 🎟️ Billetterie & Ventes + +- Types de billets flexibles (gratuit, payant, don, à paliers) +- Billets cachés et verrouillés derrière des codes promo +- Codes promo et accès en prévente +- Produits additionnels (merchandising, upgrades, extras) +- Catégories de produits pour l'organisation +- Support complet des taxes et frais (TVA, frais de service) +- Gestion de capacité et limites partagées + + + +### 🎨 Marque & Personnalisation + +- Belle page de paiement optimisée pour la conversion +- Design de billets PDF personnalisables +- Page d'accueil d'organisateur brandée +- Constructeur de page d'événement par glisser-déposer +- Widget de billetterie intégrable +- Outils SEO (meta tags, Open Graph) -## ⚡ Déploiement Rapide +
-Démarrez en quelques minutes avec nos options de déploiement en un clic : +### 👥 Gestion des Participants + +- Questions de paiement personnalisées +- Recherche avancée, filtrage et export (CSV/XLSX) +- Remboursements complets et partiels +- Messagerie groupée par type de billet +- Check-in par code QR avec logs de scan +- Listes de check-in avec contrôle d'accès + + + +### 📊 Analytique & Croissance + +- Tableau de bord des ventes en temps réel +- Suivi d'affiliés et de référencements +- Rapports avancés (ventes, taxes, promos) +- Webhooks (Zapier, Make, CRMs) + +
+ +### ⚙️ Opérations + +Rôles et permissions multi-utilisateurs · Paiements instantanés Stripe Connect · Méthodes de paiement hors ligne · Support d'événements hors ligne · +Facturation automatique · Archivage d'événements · Support multilingue · API REST complète + +
+ +
+ +## Comparer + +| Fonctionnalité | Hi.Events | Eventbrite | Tickettailor | Dice | +|:-------------------------------------|:----------|:-----------|:-------------|:--------| +| Option auto-hébergée | ✅ | ❌ | ❌ | ❌ | +| Open source | ✅ | ❌ | ❌ | ❌ | +| Sans frais par billet (auto-hébergé) | ✅ | ❌ | ❌ | ❌ | +| Personnalisation complète de marque | ✅ | Limité | ✅ | Limité | +| Suivi d'affiliés | ✅ | ✅ | ❌ | ❌ | +| Accès API | ✅ | ✅ | ✅ | Limité | +| Propriété de vos données | ✅ | ❌ | ❌ | ❌ | + +
+ +## Démarrage Rapide + +### Déploiement en Un Clic [![Déployer sur DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) [![Déployer sur Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) [![Déployer sur Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) [![Déployer sur Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) -## 🌟 Fonctionnalités Clés +### Docker -Hi.Events propose tous les outils pour gérer vos événements avec fluidité : +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one -### 🎟 Vente de Billets & Produits -- **Types de billets variés :** gratuits, payants, à donation, tarifés. -- **Gestion de capacité :** par événement ou par billet. -- **Capacités partagées :** entre plusieurs types de billets. -- **Codes promo :** pour remises, préventes ou accès spéciaux. -- **Vente de produits :** t-shirts, goodies, etc. -- **Taxes & frais personnalisés :** par produit ou commande. +# Générer les clés (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env -### 🏆 Gestion & Personnalisation d’Événement -- **Tableau de bord :** données en temps réel (ventes, revenus, participants). -- **Éditeur de page d’accueil :** personnalisation en direct. -- **Widget embarquable :** intégration facile sur votre site web. -- **Outils SEO :** métadonnées personnalisées pour le référencement. -- **Catégories de produits :** organisation simplifiée. -- **Support événements physiques :** avec instructions spécifiques. +docker compose up -d +``` -### 📧 Gestion des Participants & Commandes -- **Formulaires personnalisés :** collectez des infos spécifiques. -- **Gestion des participants :** rechercher, modifier, annuler, contacter. -- **Gestion des commandes :** remboursements, annulations, renvois d’emails. -- **Messagerie groupée :** par billet ou pour tous les participants. -- **Export de données :** en CSV/XLSX. +> [!TIP] +> **Utilisateurs Windows :** Voir `./docker/all-in-one/README.md` pour les instructions de génération de clés. -### 📱 Outils Mobile & Contrôle d’Accès -- **Check-in QR code :** compatible mobile et web. -- **Listes d’entrée :** partageables avec contrôle d’accès. -- **Accès multi-utilisateur :** avec rôles et permissions. +Ouvrez `http://localhost:8123` et créez votre compte. -### 🔧 Intégrations & Automatisations -- **Webhooks :** Zapier, IFTTT, Make, intégrations CRM. -- **Stripe Connect :** paiements immédiats pour les organisateurs. +📖 [Guide d'installation complet](https://hi.events/docs/getting-started?utm_source=gh-readme) -### 📊 Fonctions Avancées -- **Multilingue :** Français, Anglais, Espagnol, Allemand, Portugais, Chinois, etc. -- **Remboursements partiels et complets :** avec suivi détaillé. -- **Gestion des utilisateurs :** avec rôles et permissions. -- **API REST :** pour intégrations personnalisées. -- **Facturation intégrée :** avec TVA, échéances, préfixes. -- **Paiement hors ligne :** virements, espèces, autres. -- **Archivage d’événements :** pour garder un tableau de bord propre. -- **Verrouillage avancé des billets :** par code ou condition. -- **Rapports détaillés :** ventes journalières, produits, promo, etc. +
-## 🚀 Démarrage +## Hi.Events Cloud -### 🐳 Lancer avec Docker +Vous préférez ne pas auto-héberger ? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** est une option entièrement gérée avec zéro configuration, mises à jour automatiques et infrastructure managée. -> [!IMPORTANT] -> Assurez-vous d’avoir installé Docker et Docker Compose sur votre machine. -> Téléchargement : [Docker](https://www.docker.com/get-started) +[Commencer →](https://app.hi.events/auth/register?utm_source=gh-readme) -1. **Cloner le dépôt :** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +
-2. **Aller dans le dossier Docker :** - ```bash - cd hi.events/docker/all-in-one - ``` +## Documentation -3. **Générer les clés `APP_KEY` et `JWT_SECRET` :** +| Ressource | Lien | +|:----------------|:----------------------------------------------------------------------------------------------| +| Démarrage | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configuration | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| Référence API | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | - **Linux/macOS :** - ```bash - echo base64:$(openssl rand -base64 32) # Pour APP_KEY - openssl rand -base64 32 # Pour JWT_SECRET - ``` +
- **Windows :** - Suivez les instructions dans *./docker/all-in-one/README.md* +## Contribuer -4. **Démarrer les conteneurs :** - ```bash - docker compose up -d - ``` +Nous accueillons les contributions. Consultez le [guide de contribution](CONTRIBUTING.md) pour plus de détails. -5. **Créer un compte :** - ``` - Ouvrez http://localhost:8123/auth/register dans votre navigateur - ``` +
-ℹ️ Pour plus d’infos, consultez notre [guide de démarrage](https://hi.events/docs/getting-started). +## Support -## 💜 Sponsors +📖 [Documentation](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -### Soutenez le Projet +
-Vous utilisez Hi.Events ? Aidez-nous à continuer le développement : +## Journal des Modifications -Buy Me A Coffee +Restez informé des nouvelles fonctionnalités et améliorations sur +la [page des releases](https://github.com/HiEventsDev/hi.events/releases). -Ou soutenez-nous via : GitHub Sponsors | Open Collective +
-## 📝 Journal des Modifications +## Licence -Retrouvez les dernières nouveautés sur notre [page de releases GitHub](https://github.com/HiEventsDev/hi.events/releases). +Hi.Events est sous licence **AGPL-3.0 avec conditions supplémentaires**. Licence commerciale +disponible. [En savoir plus](https://hi.events/licensing). -## 🤝 Contribuer +
-Envie d'aider ? Lisez notre [guide de contribution](CONTRIBUTING.md) pour participer au projet. - -## ❓ FAQ - -Questions ? Consultez notre [documentation](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link). -Ou contactez-nous : [hello@hi.events](mailto:hello@hi.events) +
-## 📜 Licence +**[Site Web](https://hi.events)** · **[Documentation](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** -Hi.Events est sous licence [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE). +Fait avec ☘️ en Irlande -Pour les licences commerciales, rendez-vous sur notre [page dédiée](https://hi.events/licensing). +
diff --git a/README.hu.md b/README.hu.md new file mode 100644 index 0000000000..077f70a1f7 --- /dev/null +++ b/README.hu.md @@ -0,0 +1,212 @@ +
+ +Hi.Events - Nyílt forráskódú eseménykezelő és jegyértékesítő platform + +# Hi.Events + +### Nyílt forráskódú eseménykezelő és jegyértékesítő platform + +Adjon el jegyeket online konferenciákra, szórakozóhelyi eseményekre, koncertekre, klubestekre, workshopokra és fesztiválokra. +Saját szerveren vagy felhőben. Az Ön eseményei, az Ön márkája, az Ön adatai. + +[Próbálja ki a felhőt →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Élő demó](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Dokumentáció](https://hi.events/docs?utm_source=gh-readme) · [Weboldal](https://hi.events?utm_source=gh-readme) + +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift + + +

+Deutsch · Português · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar +

+ +
+ +
+ +## Miért a Hi.Events? + +A legtöbb jegyértékesítő platform jegyenkénti díjakat számít fel, és az adatait a saját ökoszisztémájába zárja. **A Hi.Events egy modern, +nyílt forráskódú alternatíva az Eventbrite, Tickettailor, Dice.fm és más jegyértékesítő platformokkal szemben** azoknak a szervezőknek, akik +teljes kontrollt szeretnének a márkaépítés, a fizetés, az adatok és az infrastruktúra felett. + +Készült szórakozóhelyi promóterek, fesztiválszervezők, helyszínek, közösségi csoportok és konferenciaszervezők számára. + +
+ +Hi.Events irányítópult + +
+ +## Funkciók + + + + + + + + + + + + + +
+ +### 🎟️ Jegyértékesítés és eladás + +- Rugalmas jegytípusok (ingyenes, fizetős, adomány, lépcsőzetes) +- Rejtett és promóciós kódokkal zárolt jegyek +- Promóciós kódok és előértékesítési hozzáférés +- Termék kiegészítők (merchandising, frissítések, extrák) +- Termékkategóriák a rendszerezéshez +- Teljes adó- és díjtámogatás (ÁFA, szolgáltatási díjak) +- Kapacitáskezelés és megosztott korlátok + + + +### 🎨 Márkaépítés és testreszabás + +- Gyönyörű, konverzióra optimalizált fizetés +- Testreszabható PDF jegytervezés +- Márkás szervező honlap +- Húzd és ejtsd eseményoldal-szerkesztő +- Beágyazható jegy widget +- SEO eszközök (meta címkék, Open Graph) + +
+ +### 👥 Résztvevő kezelés + +- Egyéni fizetési kérdések +- Fejlett keresés, szűrés és exportálás (CSV/XLSX) +- Teljes és részleges visszatérítések +- Tömeges üzenetküldés jegytípus szerint +- QR kódos bejelentkezés szkennelési naplókkal +- Hozzáféréssel szabályozott bejelentkezési listák + + + +### 📊 Elemzés és növekedés + +- Valós idejű értékesítési irányítópult +- Affiliate és ajánlási követés +- Fejlett jelentések (értékesítés, adó, promóciók) +- Webhookok (Zapier, Make, CRM-ek) + +
+ +### ⚙️ Műveletek + +Többfelhasználós szerepek és jogosultságok · Stripe Connect azonnali kifizetések · Offline fizetési módok · Offline eseménytámogatás · +Automatikus számlázás · Eseményarchívum · Többnyelvű támogatás · Teljes REST API + +
+ +
+ +## Összehasonlítás + +| Funkció | Hi.Events | Eventbrite | Tickettailor | Dice | +|:------------------------------------------|:----------|:-----------|:-------------|:---------| +| Saját szerveren futtatható opció | ✅ | ❌ | ❌ | ❌ | +| Nyílt forráskódú | ✅ | ❌ | ❌ | ❌ | +| Nincs jegyenkénti díj (saját szerveren) | ✅ | ❌ | ❌ | ❌ | +| Teljes egyéni márkaépítés | ✅ | Korlátozott| ✅ | Korlátozott | +| Affiliate követés | ✅ | ✅ | ❌ | ❌ | +| API hozzáférés | ✅ | ✅ | ✅ | Korlátozott | +| Saját adatok | ✅ | ❌ | ❌ | ❌ | + +
+ +## Gyors kezdés + +### Egy kattintásos telepítés + +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Kulcsok generálása (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Windows felhasználók:** A kulcsgenerálási utasításokért lásd: `./docker/all-in-one/README.md` + +Nyissa meg a `http://localhost:8123` címet és hozza létre fiókját. + +📖 [Teljes telepítési útmutató](https://hi.events/docs/getting-started?utm_source=gh-readme) + +
+ +## Hi.Events Cloud + +Inkább nem szeretne saját szervert üzemeltetni? A **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** egy teljesen +felügyelt megoldás nulla beállítással, automatikus frissítésekkel és felügyelt infrastruktúrával. + +[Kezdje el →](https://app.hi.events/auth/register?utm_source=gh-readme) + +
+ +## Dokumentáció + +| Forrás | Link | +|:----------------|:----------------------------------------------------------------------------------------------| +| Első lépések | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Konfiguráció | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API referencia | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhookok | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | + +
+ +## Közreműködés + +Szívesen fogadunk közreműködéseket. A részletekért lásd a [közreműködési útmutatót](CONTRIBUTING.md). + +
+ +## Támogatás + +📖 [Dokumentáció](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## Változásnapló + +Maradjon naprakész az új funkciókkal és fejlesztésekkel a +[kiadások oldalon](https://github.com/HiEventsDev/hi.events/releases). + +
+ +## Licenc + +A Hi.Events **AGPL-3.0 licenc alatt áll további feltételekkel**. Kereskedelmi licenc +elérhető. [Tudjon meg többet](https://hi.events/licensing). + +
+ +
+ +**[Weboldal](https://hi.events)** · **[Dokumentáció](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** + +Készült ☘️-vel Írországban + +
diff --git a/README.it.md b/README.it.md index 6f7d98e19a..575bd43a9f 100644 --- a/README.it.md +++ b/README.it.md @@ -1,198 +1,206 @@
-
-💖 **Trovi Hi.Events utile?** -⭐ Per favore considera di darci una stella per supportare il progetto! ⭐ +Hi.Events - Piattaforma Open Source per Biglietteria Eventi -
+# Hi.Events -

- Hi.Events Logo -

+### Piattaforma open-source per biglietteria e gestione eventi + +Vendi biglietti online per conferenze, eventi notturni, concerti, serate in club, workshop e festival. +Self-hosted o cloud. I tuoi eventi, il tuo brand, i tuoi dati. -

Hi.Events

-

Piattaforma open-source per la gestione di eventi e la vendita di biglietti online per eventi di tutte le dimensioni

+[Prova Cloud →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Demo Live](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentazione](https://hi.events/docs?utm_source=gh-readme) · [Sito Web](https://hi.events?utm_source=gh-readme) -[![Share on AddToAny](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Hi.Events docs](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) [![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) [![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Prova Cloud ☁️ • -Evento Demo 🌟 • -Sito Web 🌎 • -Documentazione 📄 • -Installazione ⚙️ +Deutsch · Português · Português (Brasil) · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 (香港) · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Italian | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Introduzione +## Perché Hi.Events? -Hi.Events è una piattaforma ricca di funzionalità, self-hosted per la gestione di eventi e la vendita di biglietti che ti aiuta a vendere biglietti online per tutti i tipi di eventi. Dalle conferenze e workshop alle serate in club e concerti, Hi.Events fornisce tutto ciò di cui hai bisogno per creare, gestire e monetizzare i tuoi eventi con facilità. +La maggior parte delle piattaforme di biglietteria applica commissioni per biglietto e blocca i tuoi dati nel loro ecosistema. **Hi.Events è un'alternativa moderna e open-source a Eventbrite, Tickettailor, Dice.fm e altre piattaforme di biglietteria** per gli organizzatori che desiderano il pieno controllo su branding, checkout, dati e infrastruttura. -Hi.Events self-hosted ticket selling dashboard -
-Generato utilizzando Screenshot Rocks -
+Progettato per promoter della vita notturna, organizzatori di festival, venue, gruppi comunitari e organizzatori di conferenze. -## ⚡ Deployment Rapido +
-Inizia in pochi minuti con le nostre opzioni di deployment con un clic: +Dashboard Hi.Events -[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) -[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) +
+ +## Funzionalità + + + + + + + + + + + + + +
+ +### 🎟️ Biglietteria e Vendite + +- Tipi di biglietto flessibili (gratuiti, a pagamento, donazione, a livelli) +- Biglietti nascosti e bloccati dietro codici promozionali +- Codici promozionali e accesso in prevendita +- Prodotti aggiuntivi (merchandising, upgrade, extra) +- Categorie di prodotti per l'organizzazione +- Supporto completo per tasse e commissioni (IVA, commissioni di servizio) +- Gestione della capacità e limiti condivisi -## ☁️ Hi.Events Cloud + -Cerchi un modo più veloce per iniziare? +### 🎨 Branding e Personalizzazione -**[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme&utm_content=try-cloud-section)** è la versione completamente gestita di Hi.Events — nessuna configurazione, nessun server, solo accesso immediato a tutto ciò di cui hai bisogno per gestire il tuo evento. +- Checkout ottimizzato per le conversioni +- Design personalizzabili dei biglietti PDF +- Homepage dell'organizzatore brandizzata +- Generatore di pagine eventi drag-and-drop +- Widget biglietti incorporabile +- Strumenti SEO (meta tag, Open Graph) -- ✅ Nessuna installazione richiesta -- 🔐 Infrastruttura sicura e scalabile -- 🚀 Aggiornamenti automatici e nuove funzionalità -- 🧰 Ideale per organizzatori di eventi che vogliono concentrarsi sul loro evento, non sui loro server +
-Crea il tuo account in pochi secondi ed esplora subito la piattaforma: +### 👥 Gestione Partecipanti -👉 [Prova Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme&utm_content=try-cloud-section) +- Domande di checkout personalizzate +- Ricerca avanzata, filtri ed esportazione (CSV/XLSX) +- Rimborsi totali e parziali +- Messaggistica di massa per tipo di biglietto +- Check-in con codice QR e registri di scansione +- Liste di check-in con accesso controllato -## 🌟 Funzionalità Principali + -Hi.Events offre strumenti completi per semplificare la gestione dei tuoi eventi: +### 📊 Analisi e Crescita -### 🎟 Biglietteria e Vendita Prodotti -- **Diversi Tipi di Biglietti:** Gratuiti, a pagamento, donazioni e biglietti a livelli. -- **Gestione della Capacità:** Imposta limiti per l'intero evento o specifici per biglietto. -- **Assegnazione della Capacità:** Gestisci la capacità condivisa tra diversi tipi di biglietti. -- **Codici Promozionali:** Codici sconto per accesso in prevendita e offerte speciali. -- **Vendita Prodotti:** Vendi prodotti legati all'evento (es. magliette, add-on). -- **Tasse e Commissioni:** Applica tasse e commissioni personalizzate per prodotto o ordine. +- Dashboard vendite in tempo reale +- Tracciamento affiliati e referral +- Report avanzati (vendite, tasse, promozioni) +- Webhook (Zapier, Make, CRM) -### 🏆 Gestione Eventi e Personalizzazione -- **Dashboard Eventi:** Entrate in tempo reale, vendita biglietti e analisi dei partecipanti. -- **Designer Homepage:** Personalizza le pagine degli eventi con un editor con anteprima dal vivo. -- **Widget Biglietti Incorporabile:** Aggiungi un'esperienza di acquisto biglietti integrata al tuo sito web. -- **Strumenti SEO:** Personalizza i metadati dell'evento per una migliore visibilità nei motori di ricerca. -- **Categorie Prodotti:** Organizza prodotti e biglietti con la gestione delle categorie. -- **Supporto Eventi Offline:** Fornisci istruzioni per eventi fisici. +
-### 📧 Gestione Partecipanti e Ordini -- **Moduli di Checkout Personalizzati:** Raccogli dettagli dei partecipanti con domande su misura. -- **Gestione Partecipanti:** Cerca, modifica, cancella e invia messaggi ai partecipanti. -- **Gestione Ordini:** Rimborsa, cancella e rinvia facilmente i dettagli degli ordini. -- **Messaggistica di Massa:** Invia email o messaggi a specifici possessori di biglietti. -- **Esportazione Dati:** Esporta partecipanti e ordini in CSV/XLSX. +### ⚙️ Operazioni -### 📱 Strumenti Mobile-Friendly e Check-In -- **Check-In con QR Code:** Strumento di check-in basato sul web e ottimizzato per dispositivi mobili. -- **Liste di Check-In:** Genera e condividi liste di check-in con accesso controllato. -- **Accesso Multi-Utente:** Controllo degli accessi basato sui ruoli per lo staff dell'evento. +Ruoli e permessi multi-utente · Pagamenti istantanei tramite Stripe Connect · Metodi di pagamento offline · Supporto eventi offline · +Fatturazione automatica · Archivio eventi · Supporto multi-lingua · REST API completa -### 🔧 Integrazioni e Automazione -- **Supporto Webhooks:** Automatizza attività con Zapier, IFTTT, Make o integrazioni CRM. -- **Integrazione Stripe Connect:** Gli organizzatori ricevono pagamenti istantanei. +
-### 📊 Funzionalità Avanzate -- **Supporto Multi-Lingua:** Inglese, Deutsch, Español, Português, Français, 中文 (Zhōngwén), e altro. -- **Rimborsi Parziali e Totali:** Gestisci i rimborsi con tracciamento dettagliato degli ordini. -- **Controllo Accessi Basato sui Ruoli:** Ruoli utente multipli con gestione delle autorizzazioni. -- **REST API:** Accesso completo alle API per integrazioni personalizzate. -- **Sistema di Fatturazione:** Genera e invia fatture con dettagli fiscali, termini di pagamento e date di scadenza. -- **Supporto Pagamenti Offline:** Abilita bonifici bancari, pagamenti in contanti o metodi di pagamento personalizzati. -- **Archivio Eventi:** Archivia eventi passati per mantenere la dashboard organizzata. -- **Blocco Biglietti Avanzato:** Blocca i biglietti dietro codici promozionali o restrizioni di accesso. -- **Reportistica Avanzata:** Rapporti giornalieri sulle vendite, ripartizione delle tasse, vendite di prodotti e utilizzo dei codici promozionali. +
-## 🚀 Per Iniziare +## Confronto -### 🐳 Avvio Rapido con Docker +| Funzionalità | Hi.Events | Eventbrite | Tickettailor | Dice | +|:------------------------------------|:----------|:-----------|:-------------|:---------| +| Opzione self-hosted | ✅ | ❌ | ❌ | ❌ | +| Open source | ✅ | ❌ | ❌ | ❌ | +| Nessuna commissione (self-hosted) | ✅ | ❌ | ❌ | ❌ | +| Branding completamente personalizzabile | ✅ | Limitato | ✅ | Limitato | +| Tracciamento affiliati | ✅ | ✅ | ❌ | ❌ | +| Accesso API | ✅ | ✅ | ✅ | Limitato | +| Proprietà dei dati | ✅ | ❌ | ❌ | ❌ | -> [!IMPORTANTE] -> Assicurati di avere Docker e Docker Compose installati sul tuo sistema. In caso contrario, puoi scaricarli dal -> sito ufficiale di Docker: [Docker](https://www.docker.com/get-started). +
-1. **Clona il Repository:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +## Avvio Rapido -2. **Naviga nella Directory Docker:** - ```bash - cd hi.events/docker/all-in-one - ``` +### Deploy con un Clic -3. **Genera `APP_KEY` e `JWT_SECRET`** +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Genera le chiavi (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Utenti Windows:** Consulta `./docker/all-in-one/README.md` per le istruzioni sulla generazione delle chiavi. - Genera le chiavi usando i seguenti comandi: +Apri `http://localhost:8123` e crea il tuo account. - **Unix/Linux/MacOS:** - ```bash - echo base64:$(openssl rand -base64 32) # Per APP_KEY - openssl rand -base64 32 # Per JWT_SECRET - ``` +📖 [Guida completa all'installazione](https://hi.events/docs/getting-started?utm_source=gh-readme) - **Windows:** - Controlla le istruzioni in *./docker/all-in-one/README.md* per generare le chiavi su Windows. +
- Aggiungi i valori generati al file `.env` situato in `./docker/all-in-one/.env`: +## Hi.Events Cloud -4. **Avvia i Container Docker:** - ```bash - docker compose up -d - ``` -5. **Crea un account:** - ``` - Apri il tuo browser e naviga su http://localhost:8123/auth/register - ``` +Preferisci non fare self-hosting? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** è un'opzione completamente gestita con zero configurazione, aggiornamenti automatici e infrastruttura gestita. -ℹ️ Per istruzioni dettagliate sull'installazione, incluso il deployment in produzione, consulta la nostra [guida introduttiva](https://hi.events/docs/getting-started). +[Inizia →](https://app.hi.events/auth/register?utm_source=gh-readme) -## 💜 Sponsor +
-### Supporta il Progetto +## Documentazione -Se trovi Hi.Events utile per la tua organizzazione, considera di supportare lo sviluppo continuo: +| Risorsa | Link | +|:----------------|:----------------------------------------------------------------------------------------------| +| Per Iniziare | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configurazione | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| Riferimento API | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhook | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | -Offrimi un caffè +
-O supportaci su: GitHub Sponsors | Open Collective +## Contribuire -## 📝 Registro delle Modifiche +Accogliamo con piacere i contributi. Consulta la [guida ai contributi](CONTRIBUTING.md) per i dettagli. -Rimani aggiornato con le nostre ultime funzionalità e miglioramenti sulla nostra [pagina delle release GitHub](https://github.com/HiEventsDev/hi.events/releases). +
-## 🤝 Contribuire +## Supporto -Accogliamo con piacere i contributi della comunità! Consulta le nostre [linee guida per contribuire](CONTRIBUTING.md) per dettagli su come partecipare. +📖 [Documentazione](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -## ❓ FAQ +
-Hai domande? La nostra [documentazione](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) ha le risposte. Per ulteriore supporto, contattaci a [hello@hi.events](mailto:hello@hi.events). +## Registro delle Modifiche -## 📜 Licenza +Rimani aggiornato con le nuove funzionalità e i miglioramenti sulla [pagina delle release](https://github.com/HiEventsDev/hi.events/releases). -Hi.Events è rilasciato sotto licenza [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE). +
-Per maggiori informazioni sulla licenza, incluse le opzioni di licenza commerciale, visita la nostra pagina delle licenze [qui](https://hi.events/licensing). +## Licenza + +Hi.Events è rilasciato sotto licenza **AGPL-3.0 con termini aggiuntivi**. Licenze commerciali disponibili. [Maggiori informazioni](https://hi.events/licensing). + +
+ +
+ +**[Sito Web](https://hi.events)** · **[Documentazione](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** + +Realizzato con ☘️ in Irlanda + +
diff --git a/README.ja.md b/README.ja.md index 6c701a6d4a..3fdd195a5d 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,126 +1,206 @@ -

- Hi.Events ロゴ -

-

Hi.Events

-

-デモイベント 🌟 ウェブサイト 🌎 ドキュメント 📄 インストール ⚙️ -

+
-

- 簡単にイベントを管理し、オンラインでチケットを販売します。 -

+Hi.Events - オープンソースイベントチケット販売プラットフォーム -
+# Hi.Events -[![Hi.Events ドキュメント](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![ライセンス: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/hi.events/LICENCE) -[![GitHub リリース](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![ユニットテストの実行](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) -[![Docker ダウンロード数](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) +### オープンソースイベントチケット販売・管理プラットフォーム -
+カンファレンス、ナイトライフイベント、コンサート、クラブナイト、ワークショップ、フェスティバルのチケットをオンラインで販売。 +セルフホスティングまたはクラウド。あなたのイベント、あなたのブランド、あなたのデータ。 + +[クラウド版を試す →](https://app.hi.events/auth/register?utm_source=gh-readme) · [ライブデモ](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [ドキュメント](https://hi.events/docs?utm_source=gh-readme) · [ウェブサイト](https://hi.events?utm_source=gh-readme) + +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift + + +

+Deutsch · Português · Português do Brasil · Français · Italiano · Nederlands · Español · 简体中文 · 繁體中文(香港) · Tiếng Việt · Türkçe · Magyar · 日本語 +

-
- 🌟 スターを付けていただけると嬉しいです! 🌟
-
+
+ +## なぜHi.Eventsなのか? + +多くのチケット販売プラットフォームは、チケットごとの手数料を請求し、あなたのデータを自社のエコシステムに閉じ込めます。**Hi.Eventsは、Eventbrite、Tickettailor、Dice.fm、その他のチケット販売プラットフォームに代わる、モダンなオープンソースの代替品です。**ブランディング、チェックアウト、データ、インフラストラクチャを完全にコントロールしたい主催者向けです。 + +ナイトライフプロモーター、フェスティバル主催者、会場、コミュニティグループ、カンファレンス主催者向けに構築されています。 + +
+ +Hi.Eventsダッシュボード + +
+ +## 機能 + + + + + + + + + + + + + +
+ +### 🎟️ チケット販売・販売管理 + +- 柔軟なチケットタイプ(無料、有料、寄付、段階式) +- プロモコードで隠されたロックされたチケット +- プロモコードと先行販売アクセス +- 製品アドオン(グッズ、アップグレード、追加オプション) +- 整理のための製品カテゴリー +- 完全な税金と手数料のサポート(VAT、サービス料) +- 収容人数管理と共有制限 + + -## 目次 +### 🎨 ブランディング・カスタマイズ -- [紹介](#-紹介) -- [機能](#-機能) -- [クイックスタート](#-クイックスタート) -- [変更履歴](#-変更履歴) -- [貢献](#-貢献) -- [FAQ](#-faq) +- 美しく、コンバージョン最適化されたチェックアウト +- カスタマイズ可能なPDFチケットデザイン +- ブランド化された主催者ホームページ +- ドラッグアンドドロップイベントページビルダー +- 埋め込み可能なチケットウィジェット +- SEOツール(メタタグ、Open Graph) -## 📚 紹介 +
-Hi.Events は、機能豊富な自ホスト型イベント管理およびチケット販売プラットフォームです。会議からクラブナイトまで、Hi.Events はあらゆる規模のイベントの作成、管理、チケット販売を支援するように設計されています。 +### 👥 参加者管理 -Hi.Events 自ホスト型チケット販売ダッシュボード +- カスタムチェックアウト質問 +- 高度な検索、フィルタリング、エクスポート(CSV/XLSX) +- 全額および部分的な払い戻し +- チケットタイプ別の一括メッセージング +- スキャンログ付きQRコードチェックイン +- アクセス制御されたチェックインリスト -## 🌟 機能 + -Hi.Events は、イベント管理とチケット販売を効率化するための機能が満載です: +### 📊 分析・成長 -- 📊 **イベント分析:** イベントのパフォーマンスとチケット販売に関する深い洞察を得る。 -- 🎟 **埋め込み可能なチケットウィジェット:** チケット販売を簡単に任意のウェブサイトに統合。 -- 🖥 **カスタマイズ可能なイベントホームページ:** 柔軟なデザインオプションで目を引くイベントページを作成。 -- 🔑 **直感的なチェックインツール:** Hi.Events の QR コードチェックインツールで簡単に参加者をチェックイン。 -- 💬 **イベントメッセージングツール:** 重要な更新やリマインダーを参加者に送信。 -- 📝 **カスタム注文フォーム:** チェックアウト時にカスタマイズされた質問で参加者情報を収集。 -- 🎫 **複数のチケットタイプ:** 無料、有料、寄付、または階層型のチケットタイプ。 -- 💸 **多用途なプロモコード:** 高度に多用途な割引コード。先行販売アクセス、複数の割引オプション。 -- 💰 **即時支払い:** シームレスな Stripe 統合で即時支払いを楽しむ。 -- 🧾 **税金と手数料の設定:** チケットごとに税金と手数料を追加。 -- 📦 **データエクスポート:** 参加者と注文データを XLSX または CSV にエクスポート。 -- 💻 **REST API:** カスタム統合のためのフル機能の REST API。 -- 🔍 **SEO ツール:** 各イベントの SEO 設定をカスタマイズ。 -- 🛒 **美しいチェックアウトプロセス:** スムーズで美しいチェックアウト体験を確保。 -- 🔐 **役割ベースのアクセス:** 複数のユーザーロールをサポート。 -- 💻 **オンラインイベントサポート:** オンラインイベントの指示とリンクを提供。 -- ⏪ **全額および部分的な払い戻しサポート:** 全額および部分的な払い戻しを簡単に管理。 -- 📧 **メール通知:** 自動メール通知で参加者を最新情報に保つ。 -- 📱 **モバイル対応:** どのデバイスでもシームレスな体験を楽しむ。 -- 🌐 **多言語サポート:** 複数の言語をサポート。 -- 🎉 **その他多数!** +- リアルタイム販売ダッシュボード +- アフィリエイトと紹介トラッキング +- 高度なレポート(販売、税金、プロモ) +- Webhook(Zapier、Make、CRM) -## 🚀 クイックスタート +
-詳細なインストール手順については、[ドキュメント](https://hi.events/docs/getting-started) を参照してください。クイックスタートのために、以下の手順に従ってください: +### ⚙️ 運用管理 + +マルチユーザーロールと権限 · Stripe Connect即時支払い · オフライン決済方法 · オフラインイベントサポート · +自動請求書発行 · イベントアーカイブ · 多言語サポート · 完全なREST API + +
+ +
+ +## 比較 + +| 機能 | Hi.Events | Eventbrite | Tickettailor | Dice | +|:--------------------------|:----------|:-----------|:-------------|:--------| +| セルフホスティングオプション | ✅ | ❌ | ❌ | ❌ | +| オープンソース | ✅ | ❌ | ❌ | ❌ | +| チケット手数料なし(セルフホスティング) | ✅ | ❌ | ❌ | ❌ | +| 完全なカスタムブランディング | ✅ | 制限あり | ✅ | 制限あり | +| アフィリエイトトラッキング | ✅ | ✅ | ❌ | ❌ | +| APIアクセス | ✅ | ✅ | ✅ | 制限あり | +| データを所有 | ✅ | ❌ | ❌ | ❌ | + +
+ +## クイックスタート ### ワンクリックデプロイ -[![DigitalOcean でデプロイ](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![DigitalOceanでデプロイ](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Renderでデプロイ](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Railwayでデプロイ](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Zeaburでデプロイ](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# キーの生成(Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` -[![Render でデプロイ](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +> [!TIP] +> **Windowsユーザー:** キー生成の手順については、`./docker/all-in-one/README.md`を参照してください。 -[![Railway でデプロイ](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +`http://localhost:8123`を開いてアカウントを作成してください。 -[![Zeabur でデプロイ](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) +📖 [完全なインストールガイド](https://hi.events/docs/getting-started?utm_source=gh-readme) -### 🐳 Docker を使用したクイックスタート +
-> [!重要] -> システムに Docker および Docker Compose がインストールされていることを確認してください。インストールされていない場合は、公式 Docker ウェブサイトからダウンロードできます:[Docker](https://www.docker.com/get-started)。 +## Hi.Events Cloud -1. **リポジトリをクローン:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +セルフホスティングを希望しない場合は、**[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)**が完全に管理されたオプションで、セットアップなし、自動更新、管理されたインフラストラクチャを提供します。 -2. **Docker ディレクトリに移動:** - ```bash - cd hi.events/docker/all-in-one - ``` +[今すぐ始める →](https://app.hi.events/auth/register?utm_source=gh-readme) -3. **Docker コンテナを起動:** - ```bash - docker compose up -d - ``` -4. **アカウントを作成:** - ```bash - ブラウザを開き、http://localhost:8123/auth/register に移動します。 - ``` +
-ℹ️ 他のインストール方法や、プロダクションまたはローカル開発環境の設定については、[クイックスタートガイド](https://hi.events/docs/getting-started) を参照してください。 +## ドキュメント -## 📝 変更履歴 +| リソース | リンク | +|:---------------|:-----------------------------------------------------------------------------------------------| +| はじめに | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| 設定 | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| APIリファレンス | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhook | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | -継続的な改善と機能追加については、[GitHub リリースページ](https://github.com/HiEventsDev/hi.events/releases) をご覧ください。 +
-## 🤝 貢献 +## 貢献 -貢献、提案、バグ報告を歓迎します!新しい機能や拡張を提案する前に、ディスカッションのために issue を開いてください。 +貢献を歓迎します。詳細については、[貢献ガイド](CONTRIBUTING.md)を参照してください。 -## ❓ FAQ +
-質問がありますか?[ドキュメント](https://hi.events/docs) に答えがあります。探しているものが見つからない場合は、[hello@hi.events](mailto:hello@hi.events) までお気軽にお問い合わせください。 +## サポート -## 📜 ライセンス +📖 [ドキュメント](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -Hi.Events は [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE) ライセンスの条件に基づいてライセンスされています。 +
-商用ライセンスオプションを含むライセンス情報の詳細については、[こちら](https://hi.events/licensing) のライセンスページをご覧ください。 +## 変更履歴 + +新機能と改善については、[リリースページ](https://github.com/HiEventsDev/hi.events/releases)で最新情報を入手してください。 + +
+ +## ライセンス + +Hi.Eventsは**AGPL-3.0(追加条項付き)**でライセンスされています。商用ライセンスも利用可能です。[詳細はこちら](https://hi.events/licensing)。 + +
+ +
+ +**[ウェブサイト](https://hi.events)** · **[ドキュメント](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** + +Made with ☘️ in Ireland + +
diff --git a/README.md b/README.md index df18590563..5dc8437a28 100644 --- a/README.md +++ b/README.md @@ -1,198 +1,212 @@
-
-💖 **Found Hi.Events helpful?** -⭐ Please consider giving us a star to support the project! ⭐ +Hi.Events - Open Source Event Ticketing Platform -
+# Hi.Events -

- Hi.Events Logo -

+### Open-source event ticketing and management platform + +Sell tickets online for conferences, nightlife events, concerts, club nights, workshops, and festivals. +Self-hosted or cloud. Your events, your brand, your data. -

Hi.Events

-

Open-source event management and ticketing platform to sell tickets online for events of all sizes

+[Try Cloud →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Live Demo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentation](https://hi.events/docs?utm_source=gh-readme) · [Website](https://hi.events?utm_source=gh-readme) -[![Share on AddToAny](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Hi.Events docs](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) [![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) [![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Try Cloud ☁️ • -Demo Event 🌟 • -Website 🌎 • -Documentation 📄 • -Installation ⚙️ +Deutsch · Português · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Italian | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Introduction +## Why Hi.Events? -Hi.Events is a feature-rich, self-hosted event management and ticketing platform that helps you sell tickets online for all types of events. From conferences and workshops to club nights and concerts, Hi.Events provides everything you need to create, manage, and monetize your events with ease. +Most ticketing platforms charge per-ticket fees and lock your data into their ecosystem. **Hi.Events is a modern, +open-source alternative to Eventbrite, Tickettailor, Dice.fm, and other ticketing platforms** for organizers who want +full control over branding, checkout, data, and infrastructure. -Hi.Events self-hosted ticket selling dashboard -
-Generated using Screenshot Rocks -
+Built for nightlife promoters, festival organizers, venues, community groups, and conference hosts. -## ⚡ Quick Deploy +
-Get started in minutes with our one-click deployment options: +Hi.Events Dashboard -[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) -[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) +
+ +## Features + + + + + + + + + + + + + +
+ +### 🎟️ Ticketing & Sales + +- Flexible ticket types (free, paid, donation, tiered) +- Hidden and locked tickets behind promo codes +- Promo codes and pre-sale access +- Product add-ons (merch, upgrades, extras) +- Product categories for organization +- Full tax and fee support (VAT, service fees) +- Capacity management and shared limits -## ☁️ Hi.Events Cloud + -Looking for a faster way to get started? +### 🎨 Branding & Customization -**[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme&utm_content=try-cloud-section)** is the fully managed version of Hi.Events — no setup, no servers, just instant access to everything you need to run your event. +- Beautiful, conversion-optimized checkout +- Customizable PDF ticket designs +- Branded organizer homepage +- Drag-and-drop event page builder +- Embeddable ticket widget +- SEO tools (meta tags, Open Graph) -- ✅ No installation required -- 🔐 Secure, scalable infrastructure -- 🚀 Automatic updates & new features -- 🧰 Ideal for event organizers who want to focus on their event, not their servers +
-Create your account in seconds and explore the platform right away: +### 👥 Attendee Management -👉 [Try Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme&utm_content=try-cloud-section) +- Custom checkout questions +- Advanced search, filtering, and export (CSV/XLSX) +- Full and partial refunds +- Bulk messaging by ticket type +- QR code check-in with scan logs +- Access-controlled check-in lists -## 🌟 Key Features + -Hi.Events offers comprehensive tools to streamline your event management: +### 📊 Analytics & Growth -### 🎟 Ticketing & Product Sales -- **Multiple Ticket Types:** Free, Paid, Donation, and Tiered tickets. -- **Capacity Management:** Set event-wide or ticket-specific limits. -- **Capacity Assignments:** Manage shared capacity across multiple ticket types. -- **Promo Codes:** Discount codes for pre-sale access and special offers. -- **Product Sales:** Sell event-related products (e.g., t-shirts, add-ons). -- **Taxes & Fees:** Apply custom taxes and fees per product or order. +- Real-time sales dashboard +- Affiliate and referral tracking +- Advanced reporting (sales, tax, promos) +- Webhooks (Zapier, Make, CRMs) -### 🏆 Event Management & Customization -- **Event Dashboard:** Real-time revenue, ticket sales, and attendee analytics. -- **Homepage Designer:** Customize event pages with a live preview editor. -- **Embeddable Ticket Widget:** Add a seamless ticketing experience to your website. -- **SEO Tools:** Customize event metadata for better search visibility. -- **Product Categories:** Organize products and tickets with category management. -- **Offline Event Support:** Provide instructions for physical events. +
-### 📧 Attendee & Order Management -- **Custom Checkout Forms:** Collect attendee details with tailored questions. -- **Attendee Management:** Search, edit, cancel, and message attendees. -- **Order Management:** Refund, cancel, and resend order details easily. -- **Bulk Messaging:** Email or message specific ticket holders. -- **Data Exports:** Export attendees and orders to CSV/XLSX. +### ⚙️ Operations -### 📱 Mobile-Friendly & Check-In Tools -- **QR Code Check-In:** Web-based and mobile-friendly check-in tool. -- **Check-In Lists:** Generate and share access-controlled check-in lists. -- **Multi-User Access:** Role-based access control for event staff. +Multi-user roles and permissions · Stripe Connect instant payouts · Offline payment methods · Offline event support · +Automatic invoicing · Event archive · Multi-language support · Full REST API -### 🔧 Integrations & Automation -- **Webhooks Support:** Automate tasks with Zapier, IFTTT, Make, or CRM integrations. -- **Stripe Connect Integration:** Organizers get instant payouts. +
-### 📊 Advanced Features -- **Multi-Language Support:** English, Deutsch, Español, Português, Français, 中文 (Zhōngwén), and more. -- **Partial & Full Refunds:** Manage refunds with detailed order tracking. -- **Role-Based Access Control:** Multiple user roles with permission management. -- **REST API:** Full API access for custom integrations. -- **Invoicing System:** Generate and send invoices with tax details, payment terms, and due dates. -- **Offline Payment Support:** Enable bank transfers, cash payments, or custom payment methods. -- **Event Archive:** Archive past events to keep the dashboard organized. -- **Advanced Ticket Locking:** Lock tickets behind promo codes or access restrictions. -- **Advanced Reporting:** Daily sales, tax breakdowns, product sales, and promo code usage reports. +
-## 🚀 Getting Started +## Compare -### 🐳 Quick Start with Docker +| Feature | Hi.Events | Eventbrite | Tickettailor | Dice | +|:---------------------------------|:----------|:-----------|:-------------|:--------| +| Self-hosted option | ✅ | ❌ | ❌ | ❌ | +| Open source | ✅ | ❌ | ❌ | ❌ | +| No per-ticket fees (self-hosted) | ✅ | ❌ | ❌ | ❌ | +| Full custom branding | ✅ | Limited | ✅ | Limited | +| Affiliate tracking | ✅ | ✅ | ❌ | ❌ | +| API access | ✅ | ✅ | ✅ | Limited | +| Own your data | ✅ | ❌ | ❌ | ❌ | -> [!IMPORTANT] -> Please ensure you have Docker and Docker Compose installed on your system. If not, you can download them from the -> official Docker website: [Docker](https://www.docker.com/get-started). +
-1. **Clone the Repository:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +## Quick Start -2. **Navigate to the Docker Directory:** - ```bash - cd hi.events/docker/all-in-one - ``` +### One-Click Deploy -3. **Generate the `APP_KEY` and `JWT_SECRET`** +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Generate keys (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Windows users:** See `./docker/all-in-one/README.md` for key generation instructions. - Generate the keys using the following commands: +Open `http://localhost:8123` and create your account. - **Unix/Linux/MacOS:** - ```bash - echo base64:$(openssl rand -base64 32) # For APP_KEY - openssl rand -base64 32 # For JWT_SECRET - ``` +📖 [Full installation guide](https://hi.events/docs/getting-started?utm_source=gh-readme) - **Windows:** - Check the instructions in *./docker/all-in-one/README.md* for generating the keys on Windows. +
- Add the generated values to the `.env` file located in `./docker/all-in-one/.env`: +## Hi.Events Cloud -4. **Start the Docker Containers:** - ```bash - docker compose up -d - ``` -5. **Create an account:** - ``` - Open your browser and navigate to http://localhost:8123/auth/register - ``` +Prefer not to self-host? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** is a fully +managed option with zero setup, automatic updates, and managed infrastructure. -ℹ️ For detailed setup instructions including production deployment, please refer to our [getting started guide](https://hi.events/docs/getting-started). +[Get started →](https://app.hi.events/auth/register?utm_source=gh-readme) -## 💜 Sponsors +
-### Support the Project +## Documentation -If you find Hi.Events valuable for your organization, please consider supporting ongoing development: +| Resource | Link | +|:----------------|:----------------------------------------------------------------------------------------------| +| Getting Started | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configuration | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API Reference | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | -Buy Me A Coffee +
-Or support us on: GitHub Sponsors | Open Collective +## Contributing -## 📝 Change Log +We welcome contributions. See the [contributing guide](CONTRIBUTING.md) for details. -Stay updated with our latest features and improvements on our [GitHub releases page](https://github.com/HiEventsDev/hi.events/releases). +
-## 🤝 Contributing +## Support -We welcome contributions from the community! Please see our [contributing guidelines](CONTRIBUTING.md) for details on how to get involved. +📖 [Documentation](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -## ❓ FAQ +
-Have questions? Our [documentation](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) has answers. For additional support, contact us at [hello@hi.events](mailto:hello@hi.events). +## Changelog -## 📜 License +Stay updated with new features and improvements on +the [releases page](https://github.com/HiEventsDev/hi.events/releases). -Hi.Events is licensed under the [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE) license. +
-For more licensing information, including commercial licencing options, please visit our licensing page [here](https://hi.events/licensing). +## License + +Hi.Events is licensed under **AGPL-3.0 with additional terms**. Commercial licensing +available. [Learn more](https://hi.events/licensing). + +
+ +
+ +**[Website](https://hi.events)** · **[Documentation](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** + +Made with ☘️ in Ireland + +
diff --git a/README.nl.md b/README.nl.md index 238e98c87f..66e87cb642 100644 --- a/README.nl.md +++ b/README.nl.md @@ -1,122 +1,212 @@
-
-💖 **Vind je Hi.Events nuttig?** -⭐ Overweeg ons een ster te geven om het project te ondersteunen! ⭐ +Hi.Events - Open Source Evenemententicketplatform -
+# Hi.Events -

- Hi.Events Logo -

+### Open-source evenemententicket- en beheerplatform + +Verkoop online tickets voor conferenties, uitgaansevenementen, concerten, clubavonden, workshops en festivals. +Zelf-gehost of cloud. Jouw evenementen, jouw merk, jouw data. -

Hi.Events

-

Open-source evenementenbeheer- en ticketingplatform om online tickets te verkopen voor evenementen van alle groottes

+[Probeer Cloud →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Live Demo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentatie](https://hi.events/docs?utm_source=gh-readme) · [Website](https://hi.events?utm_source=gh-readme) -[![Deel op AddToAny](https://img.shields.io/badge/Deel%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![X (voorheen Twitter) Volgen](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Hi.Events docs](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![Licentie: AGPL v3](https://img.shields.io/badge/Licentie-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) [![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) [![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-Probeer de Cloud ☁️ • -Demo Evenement 🌟 • -Website 🌎 • -Documentatie 📄 • -Installatie ⚙️ +Deutsch · Português · Português (Brasil) · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 (香港) · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
+ +## Waarom Hi.Events? + +De meeste ticketplatformen rekenen kosten per ticket en sluiten je data op in hun ecosysteem. **Hi.Events is een modern, +open-source alternatief voor Eventbrite, Tickettailor, Dice.fm en andere ticketplatformen** voor organisatoren die +volledige controle willen over branding, checkout, data en infrastructuur. + +Gebouwd voor nachtleven-promotors, festivalorganisatoren, venues, gemeenschapsgroepen en congresorganisatoren. + +
+ +Hi.Events Dashboard + +
+ +## Functies + + + + + + + + + + + + + +
+ +### 🎟️ Ticketing & Verkoop + +- Flexibele tickettypes (gratis, betaald, donatie, gelaagd) +- Verborgen en vergrendelde tickets achter promocodes +- Promocodes en voorverkoop toegang +- Product add-ons (merchandise, upgrades, extra's) +- Productcategorieën voor organisatie +- Volledige belasting- en kostenondersteuning (BTW, servicekosten) +- Capaciteitsbeheer en gedeelde limieten + + + +### 🎨 Branding & Aanpassing + +- Mooie, conversie-geoptimaliseerde checkout +- Aanpasbare PDF ticketontwerpen +- Branded organisator-homepage +- Drag-and-drop evenementpagina-builder +- Insluitbare ticketwidget +- SEO-tools (meta tags, Open Graph) + +
+ +### 👥 Bezoekerbeheer + +- Aangepaste checkout-vragen +- Geavanceerd zoeken, filteren en exporteren (CSV/XLSX) +- Volledige en gedeeltelijke terugbetalingen +- Bulkberichten per tickettype +- QR-code check-in met scanlogs +- Toegangsgecontroleerde check-in lijsten + + + +### 📊 Analytics & Groei + +- Real-time verkoopdashboard +- Affiliate en doorverwijzingstracking +- Geavanceerde rapportage (verkoop, belasting, promo's) +- Webhooks (Zapier, Make, CRM's) + +
+ +### ⚙️ Operations + +Multi-gebruikersrollen en permissies · Stripe Connect directe uitbetalingen · Offline betaalmethoden · Ondersteuning voor offline evenementen · +Automatische facturering · Evenementarchief · Meertalige ondersteuning · Volledige REST API + +
+ +
+ +## Vergelijking + +| Functie | Hi.Events | Eventbrite | Tickettailor | Dice | +|:---------------------------------------|:----------|:-----------|:-------------|:--------| +| Zelf-gehoste optie | ✅ | ❌ | ❌ | ❌ | +| Open source | ✅ | ❌ | ❌ | ❌ | +| Geen kosten per ticket (zelf-gehost) | ✅ | ❌ | ❌ | ❌ | +| Volledige aangepaste branding | ✅ | Beperkt | ✅ | Beperkt | +| Affiliate tracking | ✅ | ✅ | ❌ | ❌ | +| API-toegang | ✅ | ✅ | ✅ | Beperkt | +| Eigen je data | ✅ | ❌ | ❌ | ❌ | -## 📚 Introductie +
-Hi.Events is een uitgebreid, zelf-hosted evenementenbeheer- en ticketingplatform waarmee je online tickets kunt verkopen voor allerlei soorten evenementen. Van conferenties en workshops tot clubavonden en concerten, Hi.Events biedt alles wat je nodig hebt om eenvoudig evenementen te creëren, te beheren en te monetariseren. +## Snelle Start + +### One-Click Deploy + +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Genereer sleutels (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Windows-gebruikers:** Zie `./docker/all-in-one/README.md` voor instructies voor het genereren van sleutels. + +Open `http://localhost:8123` en maak je account aan. + +📖 [Volledige installatiehandleiding](https://hi.events/docs/getting-started?utm_source=gh-readme) + +
+ +## Hi.Events Cloud + +Liever niet zelf hosten? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** is een volledig +beheerde optie met geen installatie, automatische updates en beheerde infrastructuur. + +[Aan de slag →](https://app.hi.events/auth/register?utm_source=gh-readme) + +
+ +## Documentatie + +| Bron | Link | +|:----------------|:----------------------------------------------------------------------------------------------| +| Aan de slag | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configuratie | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API Referentie | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | + +
+ +## Bijdragen + +We verwelkomen bijdragen. Zie de [bijdragegids](CONTRIBUTING.md) voor details. + +
+ +## Ondersteuning + +📖 [Documentatie](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## Changelog + +Blijf op de hoogte van nieuwe functies en verbeteringen op +de [releases-pagina](https://github.com/HiEventsDev/hi.events/releases). + +
+ +## Licentie + +Hi.Events is gelicentieerd onder **AGPL-3.0 met aanvullende voorwaarden**. Commerciële licenties +beschikbaar. [Meer informatie](https://hi.events/licensing). + +
-Hi.Events zelf-hosted ticketverkoopdashboard
-Gegenereerd met Screenshot Rocks -
-## ⚡ Snelle De - -Begin binnen enkele minuten met onze één-klik implementatie-opties: - -[![Implementeer op DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) -[![Implementeer op Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) -[![Implementeer op Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) -[![Implementeer op Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) - -## 🌟 Belangrijkste Functies - -Hi.Events biedt uitgebreide tools om je evenementenbeheer te stroomlijnen: - -### 🎟 Ticketing & Productverkoop -- **Meerdere Tickettypes:** Gratis, Betaald, Donatie en Gelaagde tickets -- **Capaciteitsbeheer:** Stel limieten in voor het hele evenement of per ticket -- **Capaciteitstoewijzingen:** Beheer gedeelde capaciteit over meerdere tickettypes -- **Promocodes:** Kortingscodes voor voorverkoop en speciale aanbiedingen -- **Productverkoop:** Verkoop evenementgerelateerde producten (bijv. t-shirts, add-ons) -- **Belastingen & Kosten:** Pas aangepaste belastingen en kosten per product of bestelling toe - -### 🏆 Evenementbeheer & Aanpassing -- **Evenementdashboard:** Real-time inkomsten, ticketverkoop en bezoekersstatistieken -- **Homepage-ontwerper:** Pas evenementpagina's aan met een live preview-editor -- **Insluitbare Ticketwidget:** Voeg een naadloze ticketing-ervaring toe aan je website -- **SEO Tools:** Pas evenementmetadata aan voor betere zoekzichtbaarheid -- **Productcategorieën:** Organiseer producten en tickets met categoriebeheer -- **Ondersteuning voor Offline Evenementen:** Geef instructies voor fysieke evenementen - -### 📧 Bezoekers- & Bestelbeheer -- **Aangepaste Checkout-formulieren:** Verzamel bezoekersgegevens met op maat gemaakte vragen -- **Bezoekersbeheer:** Zoek, bewerk, annuleer en bericht bezoekers -- **Bestelbeheer:** Eenvoudig terugbetalen, annuleren en bestelgegevens opnieuw verzenden -- **Bulkberichten:** E-mail of bericht specifieke tickethouders -- **Data-export:** Exporteer bezoekers en bestellingen naar CSV/XLSX - -### 📱 Mobielvriendelijk & Check-In Tools -- **QR-code Check-In:** Webgebaseerd en mobielvriendelijk check-in tool -- **Check-In Lijsten:** Genereer en deel toegangsgecontroleerde check-in lijsten -- **Multi-User Toegang:** Rolgebaseerde toegangscontrole voor evenementmedewerkers - -### 🔧 Integraties & Automatisering -- **Webhooks Ondersteuning:** Automatiseer taken met Zapier, IFTTT, Make of CRM-integraties -- **Stripe Connect Integratie:** Organisatoren krijgen directe uitbetalingen - -### 📊 Geavanceerde Functies -- **Meertalige Ondersteuning:** Engels, Deutsch, Español, Português, Français, Nederlands, 中文 (Zhōngwén) en meer -- **Gedeeltelijke & Volledige Terugbetalingen:** Beheer terugbetalingen met gedetailleerde bestellingtracking -- **Rolgebaseerde Toegangscontrole:** Meerdere gebruikersrollen met permissiebeheer -- **REST API:** Volledige API-toegang voor aangepaste integraties -- **Facturatiesysteem:** Genereer en verzend facturen met belastinggegevens, betalingsvoorwaarden en vervaldatums -- **Ondersteuning voor Offline Betalingen:** Schakel bankoverschrijvingen, contante betalingen of aangepaste betaalmethoden in -- **Evenementarchief:** Archiveer oude evenementen om het dashboard georganiseerd te houden -- **Geavanceerde Ticketvergrendeling:** Vergrendel tickets achter promocodes of toegangsbeperkingen -- **Geavanceerde Rapportage:** Dagelijkse verkopen, belastingoverzichten, productverkopen en promocode-gebruiksrapporten - -## 🚀 Aan de Slag - -### 🐳 Snel Starten met Docker - -> [!BELANGRIJK] -> Zorg ervoor dat Docker en Docker Compose op je systeem zijn geïnstalleerd. Zo niet, download ze dan van de -> officiële Docker-website: [Docker](https://www.docker.com/get-started). - -1. **Kloon de Repository:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git \ No newline at end of file +**[Website](https://hi.events)** · **[Documentatie](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** + +Gemaakt met ☘️ in Ierland + +
diff --git a/README.pt.md b/README.pt.md index 8181818d97..d9e32a9706 100644 --- a/README.pt.md +++ b/README.pt.md @@ -1,180 +1,209 @@
-
-💖 **Achou o Hi.Events útil?** -⭐ Considere deixar uma estrela para apoiar o projeto! ⭐ +Hi.Events - Plataforma Open Source de Venda de Ingressos para Eventos -
+# Hi.Events -

- Logo do Hi.Events -

+### Plataforma open-source de venda de ingressos e gestão de eventos + +Venda ingressos online para conferências, eventos noturnos, shows, festas em clubes, workshops e festivais. +Autohospedado ou na nuvem. Seus eventos, sua marca, seus dados. -

Hi.Events

-

Plataforma open-source de gestão de eventos e venda de ingressos para eventos de todos os tamanhos

+[Experimente na Nuvem →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Demo ao Vivo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Documentação](https://hi.events/docs?utm_source=gh-readme) · [Site](https://hi.events?utm_source=gh-readme) -[![Compartilhar Hi.Events](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![Seguir no X (antigo Twitter)](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Documentação do Hi.Events](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) -[![Licença: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) -[![Versão do GitHub](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![Testes unitários](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) -[![Pulls no Docker](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift +

-Experimente na Nuvem ☁️ • -Evento de Demonstração 🌟 • -Site 🌎 • -Documentação 📄 • -Instalação ⚙️ +Deutsch · Português · Português do Brasil · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 Introdução +## Por que Hi.Events? -Hi.Events é uma plataforma de código aberto, rica em recursos, para gerenciamento de eventos e venda de ingressos. Ideal para conferências, shows, workshops, festas e muito mais. +A maioria das plataformas de venda de ingressos cobra taxas por ingresso e mantém seus dados presos em seus ecossistemas. **Hi.Events é uma alternativa moderna e open-source ao Eventbrite, Tickettailor, Dice.fm e outras plataformas de venda de ingressos** para organizadores que desejam controle total sobre branding, checkout, dados e infraestrutura. -Dashboard autohospedado do Hi.Events -
-Gerado com Screenshot Rocks -
+Desenvolvido para promotores de vida noturna, organizadores de festivais, locais de eventos, grupos comunitários e organizadores de conferências. + +
+ +Dashboard do Hi.Events + +
+ +## Funcionalidades + + + + + + + + + + + + + +
+ +### 🎟️ Venda de Ingressos + +- Tipos de ingressos flexíveis (gratuitos, pagos, doação, em camadas) +- Ingressos ocultos e bloqueados por códigos promocionais +- Códigos promocionais e acesso antecipado +- Produtos complementares (merchandising, upgrades, extras) +- Categorias de produtos para organização +- Suporte completo a impostos e taxas (IVA, taxas de serviço) +- Gestão de capacidade e limites compartilhados + + + +### 🎨 Branding e Personalização + +- Checkout bonito e otimizado para conversão +- Designs de ingressos PDF personalizáveis +- Página inicial do organizador com marca própria +- Editor de página de eventos com arrastar e soltar +- Widget de ingressos incorporável +- Ferramentas de SEO (meta tags, Open Graph) -## ⚡ Implantação Rápida +
-Comece em minutos com nossas opções de implantação com um clique: +### 👥 Gestão de Participantes + +- Perguntas personalizadas no checkout +- Busca avançada, filtragem e exportação (CSV/XLSX) +- Reembolsos totais e parciais +- Mensagens em massa por tipo de ingresso +- Check-in com código QR e registros de digitalização +- Listas de check-in com controle de acesso + + + +### 📊 Análise e Crescimento + +- Dashboard de vendas em tempo real +- Rastreamento de afiliados e referências +- Relatórios avançados (vendas, impostos, promoções) +- Webhooks (Zapier, Make, CRMs) + +
+ +### ⚙️ Operações + +Funções e permissões multiusuário · Pagamentos instantâneos via Stripe Connect · Métodos de pagamento offline · Suporte para eventos offline · +Faturamento automático · Arquivo de eventos · Suporte multilíngue · API REST completa + +
+ +
+ +## Comparação + +| Funcionalidade | Hi.Events | Eventbrite | Tickettailor | Dice | +|:-----------------------------------------|:----------|:-----------|:-------------|:---------| +| Opção autohospedada | ✅ | ❌ | ❌ | ❌ | +| Código aberto | ✅ | ❌ | ❌ | ❌ | +| Sem taxas por ingresso (autohospedado) | ✅ | ❌ | ❌ | ❌ | +| Branding completamente personalizado | ✅ | Limitado | ✅ | Limitado | +| Rastreamento de afiliados | ✅ | ✅ | ❌ | ❌ | +| Acesso à API | ✅ | ✅ | ✅ | Limitado | +| Proprietário dos seus dados | ✅ | ❌ | ❌ | ❌ | + +
+ +## Início Rápido + +### Implantação com Um Clique [![Deploy no DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) [![Deploy no Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) [![Deploy no Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) [![Deploy no Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) -## 🌟 Principais Funcionalidades +### Docker -Hi.Events oferece ferramentas completas para simplificar a gestão dos seus eventos: +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one -### 🎟 Venda de Ingressos e Produtos -- **Tipos de ingressos:** gratuitos, pagos, por doação e em camadas. -- **Gestão de capacidade:** por ingresso ou por evento. -- **Atribuições de capacidade:** compartilhe capacidade entre diferentes ingressos. -- **Códigos promocionais:** descontos e acessos antecipados. -- **Venda de produtos:** camisetas, brindes e complementos. -- **Taxas e impostos:** personalizáveis por produto ou pedido. +# Gerar chaves (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env -### 🏆 Gestão e Personalização de Eventos -- **Painel do evento:** dados em tempo real sobre vendas e participantes. -- **Editor da página inicial:** com visualização ao vivo. -- **Widget incorporável:** integre o processo de compra no seu site. -- **SEO personalizado:** melhore o ranqueamento nos motores de busca. -- **Categorias de produtos:** organização eficiente. -- **Suporte a eventos presenciais:** com instruções específicas. +docker compose up -d +``` -### 📧 Gestão de Participantes e Pedidos -- **Formulários personalizados:** colete informações específicas. -- **Gerenciar participantes:** buscar, editar, cancelar, enviar mensagens. -- **Gestão de pedidos:** reembolsos, cancelamentos, reenvio de e-mails. -- **Mensagens em massa:** para todos ou por tipo de ingresso. -- **Exportação de dados:** em CSV/XLSX. +> [!TIP] +> **Usuários Windows:** Consulte `./docker/all-in-one/README.md` para instruções de geração de chaves. -### 📱 Ferramentas Móveis e Check-in -- **Check-in por QR Code:** ferramenta web/mobile amigável. -- **Listas de check-in:** com controle de acesso. -- **Acesso multiusuário:** com controle de permissões. +Abra `http://localhost:8123` e crie sua conta. -### 🔧 Integrações e Automação -- **Webhooks:** conecte com Zapier, Make, CRMs e mais. -- **Stripe Connect:** pagamentos imediatos para organizadores. +📖 [Guia completo de instalação](https://hi.events/docs/getting-started?utm_source=gh-readme) -### 📊 Recursos Avançados -- **Multilíngue:** Português, Inglês, Espanhol, Francês, Alemão, Chinês, etc. -- **Reembolsos parciais e totais:** com controle detalhado. -- **Gestão de usuários:** com diferentes papéis. -- **API REST:** integrações personalizadas. -- **Faturamento:** com impostos, termos de pagamento e vencimentos. -- **Pagamento offline:** transferência, dinheiro, etc. -- **Arquivamento de eventos:** mantenha seu painel limpo. -- **Bloqueio avançado de ingressos:** por código promocional. -- **Relatórios detalhados:** vendas diárias, impostos, promoções, etc. +
-## 🚀 Primeiros Passos +## Hi.Events Cloud -### 🐳 Início com Docker +Prefere não autohospedar? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** é uma +opção totalmente gerenciada com configuração zero, atualizações automáticas e infraestrutura gerenciada. -> [!IMPORTANTE] -> Certifique-se de ter o Docker e o Docker Compose instalados. -> Baixe em: [Docker](https://www.docker.com/get-started) +[Comece agora →](https://app.hi.events/auth/register?utm_source=gh-readme) -1. **Clone o repositório:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +
-2. **Acesse o diretório Docker:** - ```bash - cd hi.events/docker/all-in-one - ``` +## Documentação -3. **Gere `APP_KEY` e `JWT_SECRET`:** +| Recurso | Link | +|:------------------------|:----------------------------------------------------------------------------------------------| +| Primeiros Passos | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Configuração | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| Referência da API | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | - **Linux/macOS:** - ```bash - echo base64:$(openssl rand -base64 32) # Para APP_KEY - openssl rand -base64 32 # Para JWT_SECRET - ``` +
- **Windows:** - Consulte o arquivo *./docker/all-in-one/README.md*. +## Contribuindo -4. **Inicie os containers:** - ```bash - docker compose up -d - ``` +Contribuições são bem-vindas. Consulte o [guia de contribuição](CONTRIBUTING.md) para mais detalhes. -5. **Crie uma conta:** - ``` - Acesse http://localhost:8123/auth/register no seu navegador - ``` +
-ℹ️ Para instruções completas, veja o [guia de introdução](https://hi.events/docs/getting-started). +## Suporte -## 💜 Patrocinadores +📖 [Documentação](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -### Apoie o Projeto +
-Se o Hi.Events foi útil para você, ajude-nos a continuar desenvolvendo: +## Registro de Alterações -Buy Me A Coffee +Mantenha-se atualizado com novos recursos e melhorias na +[página de releases](https://github.com/HiEventsDev/hi.events/releases). -Ou nos apoie via: GitHub Sponsors | Open Collective +
-## 📝 Registro de Alterações +## Licença -Fique por dentro das novidades em nossa [página de versões no GitHub](https://github.com/HiEventsDev/hi.events/releases). +Hi.Events está licenciado sob **AGPL-3.0 com termos adicionais**. Licenciamento comercial +disponível. [Saiba mais](https://hi.events/licensing). -## 🤝 Contribuindo +
-Contribuições são bem-vindas! Veja nosso [guia de contribuição](CONTRIBUTING.md). - -## ❓ FAQ - -Dúvidas? Veja nossa [documentação](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) -Ou entre em contato: [hello@hi.events](mailto:hello@hi.events) +
-## 📜 Licença +**[Site](https://hi.events)** · **[Documentação](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** -Hi.Events está licenciado sob [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE) +Feito com ☘️ na Irlanda -Para informações sobre licenças comerciais, acesse [nossa página de licenças](https://hi.events/licensing). +
diff --git a/README.tr.md b/README.tr.md new file mode 100644 index 0000000000..b792c55fcc --- /dev/null +++ b/README.tr.md @@ -0,0 +1,207 @@ +
+ +Hi.Events - Açık Kaynak Etkinlik Biletleme Platformu + +# Hi.Events + +### Açık kaynak etkinlik biletleme ve yönetim platformu + +Konferanslar, gece hayatı etkinlikleri, konserler, kulüp geceleri, atölyeler ve festivaller için çevrimiçi bilet satın. +Kendi sunucunuzda veya bulutta. Etkinlikleriniz, markanız, verileriniz. + +[Bulut Sürümünü Deneyin →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Canlı Demo](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Dokümantasyon](https://hi.events/docs?utm_source=gh-readme) · [Web Sitesi](https://hi.events?utm_source=gh-readme) + +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift + + +

+Deutsch · Português · Português (Brasil) · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar +

+ +
+ +
+ +## Neden Hi.Events? + +Çoğu biletleme platformu bilet başına ücret alır ve verilerinizi kendi ekosistemlerine kilitler. **Hi.Events, markalaşma, ödeme, veri ve altyapı üzerinde tam kontrol isteyen organizatörler için Eventbrite, Tickettailor, Dice.fm ve diğer biletleme platformlarına modern, açık kaynak bir alternatiftir**. + +Gece hayatı organizatörleri, festival düzenleyicileri, mekanlar, topluluk grupları ve konferans ev sahipleri için geliştirilmiştir. + +
+ +Hi.Events Gösterge Paneli + +
+ +## Özellikler + + + + + + + + + + + + + +
+ +### 🎟️ Biletleme ve Satış + +- Esnek bilet türleri (ücretsiz, ücretli, bağış, kademeli) +- Promosyon kodlarının arkasına gizlenmiş ve kilitlenmiş biletler +- Promosyon kodları ve ön satış erişimi +- Ürün eklentileri (ürünler, yükseltmeler, ekstralar) +- Düzenleme için ürün kategorileri +- Tam vergi ve ücret desteği (KDV, hizmet ücretleri) +- Kapasite yönetimi ve paylaşılan limitler + + + +### 🎨 Markalaşma ve Özelleştirme + +- Güzel, dönüşüm için optimize edilmiş ödeme +- Özelleştirilebilir PDF bilet tasarımları +- Markalı organizatör ana sayfası +- Sürükle-bırak etkinlik sayfası oluşturucu +- Gömülebilir bilet widget'ı +- SEO araçları (meta etiketleri, Open Graph) + +
+ +### 👥 Katılımcı Yönetimi + +- Özel ödeme soruları +- Gelişmiş arama, filtreleme ve dışa aktarma (CSV/XLSX) +- Tam ve kısmi iadeler +- Bilet türüne göre toplu mesajlaşma +- QR kod ile giriş ve tarama kayıtları +- Erişim kontrollü giriş listeleri + + + +### 📊 Analitik ve Büyüme + +- Gerçek zamanlı satış gösterge paneli +- Ortaklık ve yönlendirme takibi +- Gelişmiş raporlama (satış, vergi, promosyonlar) +- Webhook'lar (Zapier, Make, CRM'ler) + +
+ +### ⚙️ Operasyonlar + +Çok kullanıcılı roller ve izinler · Stripe Connect anında ödemeler · Çevrimdışı ödeme yöntemleri · Çevrimdışı etkinlik desteği · +Otomatik faturalama · Etkinlik arşivi · Çoklu dil desteği · Tam REST API + +
+ +
+ +## Karşılaştırma + +| Özellik | Hi.Events | Eventbrite | Tickettailor | Dice | +|:-----------------------------------------|:----------|:-----------|:-------------|:--------| +| Kendi sunucunuzda barındırma seçeneği | ✅ | ❌ | ❌ | ❌ | +| Açık kaynak | ✅ | ❌ | ❌ | ❌ | +| Bilet başına ücret yok (kendi sunucuda) | ✅ | ❌ | ❌ | ❌ | +| Tam özel markalaşma | ✅ | Sınırlı | ✅ | Sınırlı | +| Ortaklık takibi | ✅ | ✅ | ❌ | ❌ | +| API erişimi | ✅ | ✅ | ✅ | Sınırlı | +| Verilerinize sahip olun | ✅ | ❌ | ❌ | ❌ | + +
+ +## Hızlı Başlangıç + +### Tek Tıkla Dağıtım + +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Anahtarları oluştur (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Windows kullanıcıları:** Anahtar oluşturma talimatları için `./docker/all-in-one/README.md` dosyasına bakın. + +`http://localhost:8123` adresini açın ve hesabınızı oluşturun. + +📖 [Tam kurulum rehberi](https://hi.events/docs/getting-started?utm_source=gh-readme) + +
+ +## Hi.Events Cloud + +Kendi sunucunuzda barındırmayı tercih etmiyor musunuz? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)**, sıfır kurulum, otomatik güncellemeler ve yönetilen altyapı ile tam yönetilen bir seçenektir. + +[Başlayın →](https://app.hi.events/auth/register?utm_source=gh-readme) + +
+ +## Dokümantasyon + +| Kaynak | Bağlantı | +|:----------------|:----------------------------------------------------------------------------------------------| +| Başlangıç | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Yapılandırma | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API Referansı | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhook'lar | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | + +
+ +## Katkıda Bulunma + +Katkılarınızı bekliyoruz. Ayrıntılar için [katkıda bulunma rehberine](CONTRIBUTING.md) bakın. + +
+ +## Destek + +📖 [Dokümantasyon](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## Değişiklik Günlüğü + +Yeni özellikler ve iyileştirmelerden haberdar olmak için [sürümler sayfasını](https://github.com/HiEventsDev/hi.events/releases) ziyaret edin. + +
+ +## Lisans + +Hi.Events, **ek koşullar içeren AGPL-3.0** lisansına sahiptir. Ticari lisanslama mevcuttur. [Daha fazla bilgi edinin](https://hi.events/licensing). + +
+ +
+ +**[Web Sitesi](https://hi.events)** · **[Dokümantasyon](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** + +İrlanda'da ☘️ ile yapıldı + +
diff --git a/README.vi.md b/README.vi.md new file mode 100644 index 0000000000..ab2f46d039 --- /dev/null +++ b/README.vi.md @@ -0,0 +1,209 @@ +
+ +Hi.Events - Nền tảng Bán vé Sự kiện Mã nguồn Mở + +# Hi.Events + +### Nền tảng bán vé và quản lý sự kiện mã nguồn mở + +Bán vé trực tuyến cho hội nghị, sự kiện giải trí, hòa nhạc, đêm câu lạc bộ, hội thảo và lễ hội. +Tự lưu trữ hoặc đám mây. Sự kiện của bạn, thương hiệu của bạn, dữ liệu của bạn. + +[Dùng thử Cloud →](https://app.hi.events/auth/register?utm_source=gh-readme) · [Demo trực tiếp](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [Tài liệu](https://hi.events/docs?utm_source=gh-readme) · [Website](https://hi.events?utm_source=gh-readme) + +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift + + +

+Deutsch · Português · Português (Brasil) · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar +

+ +
+ +
+ +## Tại sao chọn Hi.Events? + +Hầu hết các nền tảng bán vé tính phí cho mỗi vé và khóa dữ liệu của bạn vào hệ sinh thái của họ. **Hi.Events là một giải pháp thay thế mã nguồn mở hiện đại cho Eventbrite, Tickettailor, Dice.fm, và các nền tảng bán vé khác** dành cho những người tổ chức muốn kiểm soát hoàn toàn thương hiệu, thanh toán, dữ liệu và cơ sở hạ tầng. + +Được xây dựng cho người quảng bá giải trí đêm, người tổ chức lễ hội, địa điểm sự kiện, nhóm cộng đồng và người tổ chức hội nghị. + +
+ +Bảng điều khiển Hi.Events + +
+ +## Tính năng + + + + + + + + + + + + + +
+ +### 🎟️ Bán vé & Doanh số + +- Các loại vé linh hoạt (miễn phí, trả phí, quyên góp, phân tầng) +- Vé ẩn và khóa bằng mã khuyến mãi +- Mã khuyến mãi và truy cập bán trước +- Sản phẩm bổ sung (hàng hóa, nâng cấp, phụ kiện) +- Danh mục sản phẩm để tổ chức +- Hỗ trợ đầy đủ thuế và phí (VAT, phí dịch vụ) +- Quản lý sức chứa và giới hạn chia sẻ + + + +### 🎨 Thương hiệu & Tùy chỉnh + +- Thanh toán đẹp, tối ưu hóa chuyển đổi +- Thiết kế vé PDF có thể tùy chỉnh +- Trang chủ người tổ chức có thương hiệu +- Trình tạo trang sự kiện kéo thả +- Widget vé có thể nhúng +- Công cụ SEO (thẻ meta, Open Graph) + +
+ +### 👥 Quản lý Người tham dự + +- Câu hỏi thanh toán tùy chỉnh +- Tìm kiếm, lọc và xuất nâng cao (CSV/XLSX) +- Hoàn tiền toàn bộ và một phần +- Gửi tin nhắn hàng loạt theo loại vé +- Check-in mã QR với nhật ký quét +- Danh sách check-in được kiểm soát truy cập + + + +### 📊 Phân tích & Tăng trưởng + +- Bảng điều khiển doanh số thời gian thực +- Theo dõi đối tác liên kết và giới thiệu +- Báo cáo nâng cao (doanh số, thuế, khuyến mãi) +- Webhooks (Zapier, Make, CRMs) + +
+ +### ⚙️ Vận hành + +Vai trò và quyền đa người dùng · Thanh toán tức thì Stripe Connect · Phương thức thanh toán ngoại tuyến · Hỗ trợ sự kiện ngoại tuyến · +Lập hóa đơn tự động · Lưu trữ sự kiện · Hỗ trợ đa ngôn ngữ · API REST đầy đủ + +
+ +
+ +## So sánh + +| Tính năng | Hi.Events | Eventbrite | Tickettailor | Dice | +|:-----------------------------------------|:----------|:-----------|:-------------|:--------| +| Tùy chọn tự lưu trữ | ✅ | ❌ | ❌ | ❌ | +| Mã nguồn mở | ✅ | ❌ | ❌ | ❌ | +| Không có phí mỗi vé (tự lưu trữ) | ✅ | ❌ | ❌ | ❌ | +| Thương hiệu tùy chỉnh hoàn toàn | ✅ | Giới hạn | ✅ | Giới hạn | +| Theo dõi đối tác liên kết | ✅ | ✅ | ❌ | ❌ | +| Truy cập API | ✅ | ✅ | ✅ | Giới hạn | +| Sở hữu dữ liệu của bạn | ✅ | ❌ | ❌ | ❌ | + +
+ +## Bắt đầu nhanh + +### Triển khai Một cú nhấp chuột + +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# Tạo khóa (Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Người dùng Windows:** Xem `./docker/all-in-one/README.md` để biết hướng dẫn tạo khóa. + +Mở `http://localhost:8123` và tạo tài khoản của bạn. + +📖 [Hướng dẫn cài đặt đầy đủ](https://hi.events/docs/getting-started?utm_source=gh-readme) + +
+ +## Hi.Events Cloud + +Không muốn tự lưu trữ? **[Hi.Events Cloud](https://app.hi.events/auth/register?utm_source=gh-readme)** là một tùy chọn được quản lý hoàn toàn với không cần thiết lập, cập nhật tự động và cơ sở hạ tầng được quản lý. + +[Bắt đầu →](https://app.hi.events/auth/register?utm_source=gh-readme) + +
+ +## Tài liệu + +| Tài nguyên | Liên kết | +|:----------------|:----------------------------------------------------------------------------------------------| +| Bắt đầu | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| Cấu hình | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| Tham chiếu API | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | + +
+ +## Đóng góp + +Chúng tôi hoan nghênh các đóng góp. Xem [hướng dẫn đóng góp](CONTRIBUTING.md) để biết chi tiết. + +
+ +## Hỗ trợ + +📖 [Tài liệu](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## Nhật ký thay đổi + +Luôn cập nhật với các tính năng mới và cải tiến trên +[trang phát hành](https://github.com/HiEventsDev/hi.events/releases). + +
+ +## Giấy phép + +Hi.Events được cấp phép theo **AGPL-3.0 với các điều khoản bổ sung**. Cấp phép thương mại +có sẵn. [Tìm hiểu thêm](https://hi.events/licensing). + +
+ +
+ +**[Website](https://hi.events)** · **[Tài liệu](https://hi.events/docs)** · * +*[Twitter/X](https://x.com/HiEventsTickets)** + +Được tạo ra với ☘️ tại Ireland + +
diff --git a/README.zh-cn.md b/README.zh-cn.md index eaafcb2f05..4be0dfcf40 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -1,180 +1,205 @@
-
-💖 **Hi.Events 对你有帮助吗?** -⭐ 请为我们项目点个 Star 支持一下吧!⭐ +Hi.Events - 开源活动售票平台 -
+# Hi.Events -

- Hi.Events 标志 -

+### 开源活动售票与管理平台 + +在线销售会议、夜生活活动、音乐会、俱乐部之夜、工作坊和音乐节的门票。 +自托管或云端。您的活动,您的品牌,您的数据。 -

Hi.Events

-

开源的活动管理和在线售票平台,适用于各类活动

+[试用云端版 →](https://app.hi.events/auth/register?utm_source=gh-readme) · [在线演示](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [开发文档](https://hi.events/docs?utm_source=gh-readme) · [官方网站](https://hi.events?utm_source=gh-readme) -[![分享 Hi.Events](https://img.shields.io/badge/Share%20Hi.Events-blue)](https://www.addtoany.com/share?linkurl=https://github.com/HiEventsDev/hi.events) -[![关注 X(原 Twitter)](https://img.shields.io/twitter/follow/HiEventsTickets)](https://x.com/HiEventsTickets) -[![Hi.Events 文档](https://img.shields.io/badge/docs-hi.events-blue)](https://hi.events/docs) [![许可证: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) [![GitHub 版本](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) -[![单元测试](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![运行单元测试](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) [![Docker 拉取量](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + HiEventsDev%2Fhi.events | Trendshift + +

-试用云端版本 ☁️ • -查看演示活动 🌟 • -官方网站 🌎 • -开发文档 📄 • -安装指南 ⚙️ +Deutsch · Português · Português do Brasil · Français · Italian · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar

-HiEventsDev%2Fhi.events | Trendshift
-
-

-Deutsch | -Português | -Français | -Nederlands | -Español | -中文 (Zhōngwén) | -日本語 -

-
+
-## 📚 简介 +## 为什么选择 Hi.Events? -Hi.Events 是一个功能强大的开源活动管理与售票平台,适用于会议、演出、研讨会、派对等所有类型的活动。你可以轻松创建、管理和在线售票。 +大多数售票平台会收取每张票的手续费,并将您的数据锁定在他们的生态系统中。**Hi.Events 是 Eventbrite、Tickettailor、Dice.fm 和其他售票平台的现代化开源替代方案**,专为希望完全控制品牌、结账流程、数据和基础设施的主办方打造。 -Hi.Events 后台面板截图 -
-截图由 Screenshot Rocks 提供 -
+专为夜生活推广方、音乐节主办方、场馆、社区团体和会议主办方设计。 + +
+ +Hi.Events 仪表盘 + +
+ +## 功能特性 + + + + + + + + + + + + + +
+ +### 🎟️ 售票与销售 + +- 灵活的票种类型(免费、付费、捐赠、阶梯票) +- 通过优惠码隐藏和锁定门票 +- 优惠码和预售权限 +- 产品附加项(周边、升级、额外项) +- 产品分类管理 +- 完整的税费支持(增值税、服务费) +- 容量管理和共享限制 + + + +### 🎨 品牌与定制 + +- 精美的转化优化结账页面 +- 可自定义的 PDF 门票设计 +- 品牌主办方主页 +- 拖放式活动页面构建器 +- 可嵌入的票务小组件 +- SEO 工具(元标签、Open Graph) -## ⚡ 快速部署 +
-一键部署,几分钟即可开始使用: +### 👥 参会者管理 + +- 自定义结账问题 +- 高级搜索、筛选和导出(CSV/XLSX) +- 全额和部分退款 +- 按票种批量消息发送 +- 二维码签到与扫描记录 +- 访问控制签到列表 + + + +### 📊 分析与增长 + +- 实时销售仪表盘 +- 联盟和推荐跟踪 +- 高级报表(销售、税务、优惠码) +- Webhooks(Zapier、Make、CRM) + +
+ +### ⚙️ 运营 + +多用户角色和权限 · Stripe Connect 即时支付 · 线下支付方式 · 线下活动支持 · 自动开具发票 · 活动归档 · 多语言支持 · 完整的 REST API + +
+ +
+ +## 功能对比 + +| 功能特性 | Hi.Events | Eventbrite | Tickettailor | Dice | +|:-----------------------|:----------|:-----------|:-------------|:--------| +| 自托管选项 | ✅ | ❌ | ❌ | ❌ | +| 开源 | ✅ | ❌ | ❌ | ❌ | +| 无单票手续费(自托管) | ✅ | ❌ | ❌ | ❌ | +| 完全自定义品牌 | ✅ | 有限制 | ✅ | 有限制 | +| 联盟跟踪 | ✅ | ✅ | ❌ | ❌ | +| API 访问 | ✅ | ✅ | ✅ | 有限制 | +| 拥有您的数据 | ✅ | ❌ | ❌ | ❌ | + +
+ +## 快速开始 + +### 一键部署 [![部署到 DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) [![部署到 Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) [![部署到 Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) [![部署到 Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) -## 🌟 核心功能 +### Docker -Hi.Events 提供全面的工具,助力活动管理: +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one -### 🎟 售票与商品销售 -- **支持多种票种:** 免费、付费、捐赠票、阶梯票。 -- **容量管理:** 可针对活动或单个票种设置限制。 -- **容量分配:** 多票种共享库存。 -- **优惠码系统:** 提供折扣、预售权限或隐藏票。 -- **销售商品:** 例如 T 恤、纪念品等。 -- **税费设置:** 每个产品或订单都可配置税费。 +# 生成密钥(Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env -### 🏆 活动管理与定制 -- **活动仪表盘:** 实时查看收入、售票量、访客。 -- **主页设计器:** 实时预览编辑活动页面。 -- **可嵌入票务小部件:** 一键嵌入到你的网站。 -- **SEO 设置:** 自定义元信息以提升搜索表现。 -- **商品分类系统:** 组织票和产品更加清晰。 -- **线下活动支持:** 可添加地址及现场说明。 +docker compose up -d +``` -### 📧 参会者与订单管理 -- **自定义表单:** 收集额外的用户信息。 -- **参会者管理:** 搜索、编辑、取消、发送消息。 -- **订单管理:** 退款、取消、备注、重发邮件。 -- **批量消息:** 向所有或特定票持有者发送邮件。 -- **数据导出:** 导出为 CSV 或 Excel 表格。 +> [!TIP] +> **Windows 用户:** 请查看 `./docker/all-in-one/README.md` 了解密钥生成说明。 -### 📱 移动友好 & 入场管理 -- **二维码检票:** 支持 Web 和移动设备。 -- **检票名单:** 可分享的入场控制列表。 -- **多用户支持:** 可为团队成员设置不同角色。 +打开 `http://localhost:8123` 并创建您的账户。 -### 🔧 集成与自动化 -- **Webhooks 支持:** 可连接 Zapier、Make、CRM 等服务。 -- **Stripe Connect 集成:** 主办方可立即收款。 +📖 [完整安装指南](https://hi.events/docs/getting-started?utm_source=gh-readme) -### 📊 高级功能 -- **多语言支持:** 中文、英文、西班牙语、法语、德语等。 -- **全额与部分退款:** 精准订单跟踪。 -- **用户角色与权限管理:** 灵活的后台管理。 -- **REST API:** 用于自定义开发。 -- **发票系统:** 包含税务信息、付款条款等。 -- **线下支付支持:** 支持转账、现金等方式。 -- **活动归档:** 整理过往活动更清晰。 -- **高级票务控制:** 可设置票务访问限制。 -- **详细报表:** 每日销售、税务、优惠码使用等。 +
-## 🚀 快速开始 +## Hi.Events 云端版 -### 🐳 使用 Docker 启动 +不想自托管?**[Hi.Events 云端版](https://app.hi.events/auth/register?utm_source=gh-readme)** 是完全托管的选项,无需设置,自动更新,基础设施由我们管理。 -> [!重要] -> 请确保你已安装 Docker 和 Docker Compose。 -> 下载地址:[Docker 官网](https://www.docker.com/get-started) +[立即开始 →](https://app.hi.events/auth/register?utm_source=gh-readme) -1. **克隆项目仓库:** - ```bash - git clone git@github.com:HiEventsDev/hi.events.git - ``` +
-2. **进入 Docker 目录:** - ```bash - cd hi.events/docker/all-in-one - ``` +## 开发文档 -3. **生成密钥 `APP_KEY` 和 `JWT_SECRET`:** +| 资源 | 链接 | +|:------------------|:----------------------------------------------------------------------------------------------| +| 快速入门 | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| 配置说明 | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API 参考文档 | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | - **Linux/macOS:** - ```bash - echo base64:$(openssl rand -base64 32) # 用于 APP_KEY - openssl rand -base64 32 # 用于 JWT_SECRET - ``` +
- **Windows:** - 请查看 *./docker/all-in-one/README.md* 中的指南。 +## 参与贡献 -4. **启动服务:** - ```bash - docker compose up -d - ``` +我们欢迎贡献。详细信息请参阅[贡献指南](CONTRIBUTING.md)。 -5. **打开浏览器注册账号:** - ``` - http://localhost:8123/auth/register - ``` +
-ℹ️ 更多信息请查阅我们的 [快速入门文档](https://hi.events/docs/getting-started)。 +## 支持 -## 💜 赞助支持 +📖 [开发文档](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) -### 支持我们 +
-如果你觉得 Hi.Events 对你有帮助,请考虑支持我们持续开发: +## 更新日志 -Buy Me A Coffee +在[发布页面](https://github.com/HiEventsDev/hi.events/releases)了解新功能和改进。 -或者通过以下方式支持我们:GitHub Sponsors | Open Collective +
-## 📝 更新日志 +## 许可证 -了解我们的最新功能和更新,请访问 [GitHub 发布页](https://github.com/HiEventsDev/hi.events/releases) +Hi.Events 采用 **AGPL-3.0 附加条款**许可。商业许可可用。[了解更多](https://hi.events/licensing)。 -## 🤝 参与贡献 +
-我们欢迎社区贡献!请阅读我们的 [贡献指南](CONTRIBUTING.md) - -## ❓ 常见问题 - -遇到问题?请查看我们的 [文档](https://hi.events/docs?utm_source=gh-readme&utm_content=faq-docs-link) -或者联系我们:[hello@hi.events](mailto:hello@hi.events) +
-## 📜 许可协议 +**[官方网站](https://hi.events)** · **[开发文档](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** -Hi.Events 使用 [AGPL-3.0](https://github.com/HiEventsDev/hi.events/blob/main/LICENCE) 协议授权。 +用 ☘️ 在爱尔兰制作 -如需商业许可,请访问我们的 [许可页面](https://hi.events/licensing) +
diff --git a/README.zh-hk.md b/README.zh-hk.md new file mode 100644 index 0000000000..0ae657cc92 --- /dev/null +++ b/README.zh-hk.md @@ -0,0 +1,206 @@ +
+ +Hi.Events - 開源活動售票平台 + +# Hi.Events + +### 開源活動售票及管理平台 + +線上售賣會議、夜生活活動、音樂會、俱樂部派對、工作坊及節慶活動門票。 +自行託管或雲端部署。您的活動,您的品牌,您的數據。 + +[試用雲端版 →](https://app.hi.events/auth/register?utm_source=gh-readme) · [線上示範](https://app.hi.events/event/2/hievents-conference-2030?utm_source=gh-readme) · [技術文檔](https://hi.events/docs?utm_source=gh-readme) · [官方網站](https://hi.events?utm_source=gh-readme) + +[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://github.com/HiEventsDev/Hi.Events/blob/develop/LICENCE) +[![GitHub Release](https://img.shields.io/github/v/release/HiEventsDev/hi.events?include_prereleases)](https://github.com/HiEventsDev/hi.events/releases) +[![Run Unit Tests](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml/badge.svg?event=push)](https://github.com/HiEventsDev/hi.events/actions/workflows/unit-tests.yml) +[![Docker Pulls](https://img.shields.io/docker/pulls/daveearley/hi.events-all-in-one)](https://hub.docker.com/r/daveearley/hi.events-all-in-one) + + + HiEventsDev%2Fhi.events | Trendshift + + +

+Deutsch · Português · Português (Brasil) · Français · Italiano · Nederlands · Español · 中文 · 繁體中文 · 日本語 · Tiếng Việt · Türkçe · Magyar +

+ +
+ +
+ +## 為何選擇 Hi.Events? + +大多數售票平台會收取每張門票的手續費,並將您的數據鎖定在其生態系統中。**Hi.Events 是 Eventbrite、Tickettailor、Dice.fm 及其他售票平台的現代化開源替代方案**,專為希望完全掌控品牌、結帳流程、數據及基礎設施的主辦方而設。 + +專為夜生活推廣者、節慶主辦方、場地、社區團體及會議主持人而建。 + +
+ +Hi.Events 管理面板 + +
+ +## 功能特色 + + + + + + + + + + + + + +
+ +### 🎟️ 售票及銷售 + +- 靈活的門票類型(免費、付費、捐贈、分級) +- 透過優惠碼隱藏及鎖定門票 +- 優惠碼及預售權限 +- 產品附加項目(商品、升級、額外項目) +- 產品分類組織 +- 完整稅務及手續費支援(增值稅、服務費) +- 容量管理及共享限額 + + + +### 🎨 品牌及自訂 + +- 精美、轉換率優化的結帳頁面 +- 可自訂的 PDF 門票設計 +- 品牌主辦方首頁 +- 拖放式活動頁面建置器 +- 可嵌入的售票小工具 +- SEO 工具(元標籤、Open Graph) + +
+ +### 👥 參加者管理 + +- 自訂結帳問題 +- 進階搜尋、篩選及匯出(CSV/XLSX) +- 全額及部分退款 +- 按門票類型批量發送訊息 +- QR 碼簽到及掃描記錄 +- 存取權限控制的簽到名單 + + + +### 📊 分析及增長 + +- 即時銷售儀表板 +- 聯盟行銷及推薦追蹤 +- 進階報表(銷售、稅務、優惠) +- Webhooks(Zapier、Make、CRM) + +
+ +### ⚙️ 營運 + +多用戶角色及權限 · Stripe Connect 即時付款 · 離線付款方式 · 離線活動支援 · +自動開立發票 · 活動封存 · 多語言支援 · 完整 REST API + +
+ +
+ +## 比較 + +| 功能 | Hi.Events | Eventbrite | Tickettailor | Dice | +|:----------------------|:----------|:-----------|:-------------|:--------| +| 自行託管選項 | ✅ | ❌ | ❌ | ❌ | +| 開源 | ✅ | ❌ | ❌ | ❌ | +| 無每張門票手續費(自行託管) | ✅ | ❌ | ❌ | ❌ | +| 完整自訂品牌 | ✅ | 有限 | ✅ | 有限 | +| 聯盟行銷追蹤 | ✅ | ✅ | ❌ | ❌ | +| API 存取 | ✅ | ✅ | ✅ | 有限 | +| 擁有您的數據 | ✅ | ❌ | ❌ | ❌ | + +
+ +## 快速開始 + +### 一鍵部署 + +[![Deploy on DigitalOcean](https://www.deploytodo.com/do-btn-blue.svg)](https://github.com/HiEventsDev/hi.events-digitalocean) +[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://github.com/HiEventsDev/hi.events-render.com) +[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/8CGKmu?referralCode=KvSr11) +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/8DIRY6) + +### Docker + +```bash +git clone git@github.com:HiEventsDev/hi.events.git +cd hi.events/docker/all-in-one + +# 生成密鑰(Linux/macOS) +echo "APP_KEY=base64:$(openssl rand -base64 32)" >> .env +echo "JWT_SECRET=$(openssl rand -base64 32)" >> .env + +docker compose up -d +``` + +> [!TIP] +> **Windows 用戶:** 請參閱 `./docker/all-in-one/README.md` 了解密鑰生成指示。 + +開啟 `http://localhost:8123` 並建立您的帳戶。 + +📖 [完整安裝指南](https://hi.events/docs/getting-started?utm_source=gh-readme) + +
+ +## Hi.Events 雲端版 + +不想自行託管?**[Hi.Events 雲端版](https://app.hi.events/auth/register?utm_source=gh-readme)** 是完全託管的選項,無需設定、自動更新及託管基礎設施。 + +[立即開始 →](https://app.hi.events/auth/register?utm_source=gh-readme) + +
+ +## 技術文檔 + +| 資源 | 連結 | +|:-----|:----------------------------------------------------------------------------------------------| +| 入門指南 | [hi.events/docs/getting-started](https://hi.events/docs/getting-started?utm_source=gh-readme) | +| 配置說明 | [hi.events/docs/configuration](https://hi.events/docs/configuration?utm_source=gh-readme) | +| API 參考 | [hi.events/docs/api](https://hi.events/docs/api?utm_source=gh-readme) | +| Webhooks | [hi.events/docs/webhooks](https://hi.events/docs/webhooks?utm_source=gh-readme) | + +
+ +## 貢獻 + +我們歡迎貢獻。詳情請參閱[貢獻指南](CONTRIBUTING.md)。 + +
+ +## 支援 + +📖 [技術文檔](https://hi.events/docs?utm_source=gh-readme) · 📧 [hello@hi.events](mailto:hello@hi.events) · +🐛 [GitHub Issues](https://github.com/HiEventsDev/hi.events/issues) + +
+ +## 變更日誌 + +於[發佈頁面](https://github.com/HiEventsDev/hi.events/releases)查看最新功能及改進。 + +
+ +## 授權條款 + +Hi.Events 採用 **AGPL-3.0 附加條款** 授權。商業授權另行提供。[了解更多](https://hi.events/licensing)。 + +
+ +
+ +**[官方網站](https://hi.events)** · **[技術文檔](https://hi.events/docs)** · **[Twitter/X](https://x.com/HiEventsTickets)** + +在愛爾蘭用 ☘️ 製作 + +
diff --git a/backend/app/Services/Application/Handlers/Event/GetEventsHandler.php b/backend/app/Services/Application/Handlers/Event/GetEventsHandler.php index 4d189b0b48..d58beb6c43 100644 --- a/backend/app/Services/Application/Handlers/Event/GetEventsHandler.php +++ b/backend/app/Services/Application/Handlers/Event/GetEventsHandler.php @@ -6,6 +6,8 @@ use HiEvents\DomainObjects\EventStatisticDomainObject; use HiEvents\DomainObjects\ImageDomainObject; use HiEvents\DomainObjects\OrganizerDomainObject; +use HiEvents\DomainObjects\ProductDomainObject; +use HiEvents\DomainObjects\ProductPriceDomainObject; use HiEvents\Repository\Eloquent\Value\Relationship; use HiEvents\Repository\Interfaces\EventRepositoryInterface; use HiEvents\Services\Application\Handlers\Event\DTO\GetEventsDTO; @@ -13,7 +15,9 @@ class GetEventsHandler { - public function __construct(private readonly EventRepositoryInterface $eventRepository) + public function __construct( + private readonly EventRepositoryInterface $eventRepository, + ) { } @@ -23,6 +27,12 @@ public function handle(GetEventsDTO $dto): LengthAwarePaginator ->loadRelation(new Relationship(ImageDomainObject::class)) ->loadRelation(new Relationship(EventSettingDomainObject::class)) ->loadRelation(new Relationship(EventStatisticDomainObject::class)) + ->loadRelation(new Relationship( + domainObject: ProductDomainObject::class, + nested: [ + new Relationship(ProductPriceDomainObject::class), + ], + )) ->loadRelation(new Relationship( domainObject: OrganizerDomainObject::class, name: 'organizer', diff --git a/backend/app/Services/Domain/Event/CreateEventService.php b/backend/app/Services/Domain/Event/CreateEventService.php index 7833ca0532..f6acdf4568 100644 --- a/backend/app/Services/Domain/Event/CreateEventService.php +++ b/backend/app/Services/Domain/Event/CreateEventService.php @@ -222,6 +222,9 @@ private function createEventSettings( 'attendee_details_collection_method' => $organizerSettings->getDefaultAttendeeDetailsCollectionMethod(), 'show_marketing_opt_in' => $organizerSettings->getDefaultShowMarketingOptIn(), + 'ticket_design_settings' => [ + 'accent_color' => $homepageThemeSettings['accent'] ?? '#333', + ], ]); } } diff --git a/backend/app/Services/Domain/Product/CreateProductService.php b/backend/app/Services/Domain/Product/CreateProductService.php index 2f5179613f..f87f1a45ac 100644 --- a/backend/app/Services/Domain/Product/CreateProductService.php +++ b/backend/app/Services/Domain/Product/CreateProductService.php @@ -91,6 +91,8 @@ private function persistProduct(ProductDomainObject $productsData): ProductDomai 'is_hidden_without_promo_code' => $productsData->getIsHiddenWithoutPromoCode(), 'event_id' => $productsData->getEventId(), 'product_category_id' => $productsData->getProductCategoryId(), + 'is_highlighted' => $productsData->getIsHighlighted(), + 'highlight_message' => $productsData->getHighlightMessage(), ]); } diff --git a/backend/resources/views/vendor/mail/html/message.blade.php b/backend/resources/views/vendor/mail/html/message.blade.php index 1f66d344d2..737c8aa3e3 100644 --- a/backend/resources/views/vendor/mail/html/message.blade.php +++ b/backend/resources/views/vendor/mail/html/message.blade.php @@ -6,7 +6,7 @@ @else - @endif diff --git a/docker/development/package-lock.json b/docker/development/package-lock.json new file mode 100644 index 0000000000..d356bcc62a --- /dev/null +++ b/docker/development/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "development", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/frontend/index.html b/frontend/index.html index 379ccc8124..278eeb3139 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,11 +2,23 @@ - - + + + + + + + + + + + + + + + + diff --git a/frontend/public/bg-tile.png b/frontend/public/bg-tile.png deleted file mode 100644 index 20b783ca75..0000000000 Binary files a/frontend/public/bg-tile.png and /dev/null differ diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000..d6f1dcd754 Binary files /dev/null and b/frontend/public/favicon.ico differ diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg deleted file mode 100644 index 7ca8df7a54..0000000000 --- a/frontend/public/favicon.svg +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/public/images/backgrounds/nightlife-bg.jpg b/frontend/public/images/backgrounds/nightlife-bg.jpg new file mode 100644 index 0000000000..800901cef6 Binary files /dev/null and b/frontend/public/images/backgrounds/nightlife-bg.jpg differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-1.jpg b/frontend/public/images/event-thumbnails/event-thumb-1.jpg deleted file mode 100644 index d2c29a2cd8..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-1.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-10.jpg b/frontend/public/images/event-thumbnails/event-thumb-10.jpg deleted file mode 100644 index 704956f448..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-10.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-2.jpg b/frontend/public/images/event-thumbnails/event-thumb-2.jpg deleted file mode 100644 index 061b0d6a47..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-2.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-3.jpg b/frontend/public/images/event-thumbnails/event-thumb-3.jpg deleted file mode 100644 index 95670923b8..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-3.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-4.jpg b/frontend/public/images/event-thumbnails/event-thumb-4.jpg deleted file mode 100644 index 4bb3bcf0cf..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-4.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-5.jpg b/frontend/public/images/event-thumbnails/event-thumb-5.jpg deleted file mode 100644 index d37eaff5ab..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-5.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-6.jpg b/frontend/public/images/event-thumbnails/event-thumb-6.jpg deleted file mode 100644 index 911114055e..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-6.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-7.jpg b/frontend/public/images/event-thumbnails/event-thumb-7.jpg deleted file mode 100644 index 6ebbd6290b..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-7.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-8.jpg b/frontend/public/images/event-thumbnails/event-thumb-8.jpg deleted file mode 100644 index 52005b08b7..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-8.jpg and /dev/null differ diff --git a/frontend/public/images/event-thumbnails/event-thumb-9.jpg b/frontend/public/images/event-thumbnails/event-thumb-9.jpg deleted file mode 100644 index 4945aeb726..0000000000 Binary files a/frontend/public/images/event-thumbnails/event-thumb-9.jpg and /dev/null differ diff --git a/frontend/public/images/powered-by-stripe.svg b/frontend/public/images/powered-by-stripe.svg deleted file mode 100644 index 749463d36f..0000000000 --- a/frontend/public/images/powered-by-stripe.svg +++ /dev/null @@ -1 +0,0 @@ -Powered by Stripe - blurple \ No newline at end of file diff --git a/frontend/public/login-background.jpg b/frontend/public/login-background.jpg deleted file mode 100644 index 36b76d6fae..0000000000 Binary files a/frontend/public/login-background.jpg and /dev/null differ diff --git a/frontend/public/logo-dark.png b/frontend/public/logo-dark.png deleted file mode 100644 index 4f2befcdbc..0000000000 Binary files a/frontend/public/logo-dark.png and /dev/null differ diff --git a/frontend/public/logo-dark.svg b/frontend/public/logo-dark.svg deleted file mode 100644 index bb0da57041..0000000000 --- a/frontend/public/logo-dark.svg +++ /dev/null @@ -1,532 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/public/logo-text-only-white-text.png b/frontend/public/logo-text-only-white-text.png deleted file mode 100644 index 078485b3b9..0000000000 Binary files a/frontend/public/logo-text-only-white-text.png and /dev/null differ diff --git a/frontend/public/logo-wide-white-text.svg b/frontend/public/logo-wide-white-text.svg deleted file mode 100644 index 4546dca0b7..0000000000 --- a/frontend/public/logo-wide-white-text.svg +++ /dev/null @@ -1,589 +0,0 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/public/logo.svg b/frontend/public/logo.svg deleted file mode 100644 index 718963f32b..0000000000 --- a/frontend/public/logo.svg +++ /dev/null @@ -1,496 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/public/logos/hi-events-horizontal-dark.svg b/frontend/public/logos/hi-events-horizontal-dark.svg new file mode 100644 index 0000000000..14c2e8c73f --- /dev/null +++ b/frontend/public/logos/hi-events-horizontal-dark.svg @@ -0,0 +1,27 @@ + + + Hi.Events Logo Horizontal - Dark + + + + + + + + + + + + + + + + + + HI.EVENTS + diff --git a/frontend/public/logos/hi-events-horizontal-light.svg b/frontend/public/logos/hi-events-horizontal-light.svg new file mode 100644 index 0000000000..83d82cb8a4 --- /dev/null +++ b/frontend/public/logos/hi-events-horizontal-light.svg @@ -0,0 +1,27 @@ + + + Hi.Events Logo Horizontal - Light + + + + + + + + + + + + + + + + + + HI.EVENTS + diff --git a/frontend/public/logos/hi-events-icon-dark.svg b/frontend/public/logos/hi-events-icon-dark.svg new file mode 100644 index 0000000000..bd4fcba1ec --- /dev/null +++ b/frontend/public/logos/hi-events-icon-dark.svg @@ -0,0 +1,20 @@ + + + Hi.Events Icon - Dark + + + + + + + + + + + + + + + diff --git a/frontend/public/logos/hi-events-icon-light.svg b/frontend/public/logos/hi-events-icon-light.svg new file mode 100644 index 0000000000..4223962518 --- /dev/null +++ b/frontend/public/logos/hi-events-icon-light.svg @@ -0,0 +1,20 @@ + + + Hi.Events Icon - Light + + + + + + + + + + + + + + + diff --git a/frontend/public/logos/hi-events-logo-preview.html b/frontend/public/logos/hi-events-logo-preview.html new file mode 100644 index 0000000000..700a971e5c --- /dev/null +++ b/frontend/public/logos/hi-events-logo-preview.html @@ -0,0 +1,266 @@ + + + + + + Hi.Events Logo Variants + + + + +

Hi.Events Logo Variants

+

Complete logo package with light and dark versions

+ +
+ +
+
+

Horizontal — Light Background

+ hi-events-horizontal-light.svg +
+
+ Hi.Events Horizontal Light +
+
+ + +
+
+

Horizontal — Dark Background

+ hi-events-horizontal-dark.svg +
+
+ Hi.Events Horizontal Dark +
+
+ + +
+
+

Stacked — Light Background

+ hi-events-stacked-light.svg +
+
+ Hi.Events Stacked Light +
+
+ + +
+
+

Stacked — Dark Background

+ hi-events-stacked-dark.svg +
+
+ Hi.Events Stacked Dark +
+
+ + +
+
+

Icon Only — Light Background

+ hi-events-icon-light.svg +
+
+ Hi.Events Icon Light +
+
+ + +
+
+

Icon Only — Dark Background

+ hi-events-icon-dark.svg +
+
+ Hi.Events Icon Dark +
+
+ + +
+
+

Text Only — Light Background

+ hi-events-text-light.svg +
+
+ Hi.Events Text Light +
+
+ + +
+
+

Text Only — Dark Background

+ hi-events-text-dark.svg +
+
+ Hi.Events Text Dark +
+
+
+ +
+

Brand Colors

+
+
+
+
+ Accent + #cd58dd +
+
+
+
+
+ Dark + #18181b +
+
+
+
+
+ Light + #ffffff +
+
+
+
+ + diff --git a/frontend/public/logos/hi-events-stacked-dark.svg b/frontend/public/logos/hi-events-stacked-dark.svg new file mode 100644 index 0000000000..582c252d4b --- /dev/null +++ b/frontend/public/logos/hi-events-stacked-dark.svg @@ -0,0 +1,27 @@ + + + Hi.Events Logo Stacked - Dark + + + + + + + + + + + + + + + + + + HI.EVENTS + diff --git a/frontend/public/logos/hi-events-stacked-light.png b/frontend/public/logos/hi-events-stacked-light.png new file mode 100644 index 0000000000..c1b50300a2 Binary files /dev/null and b/frontend/public/logos/hi-events-stacked-light.png differ diff --git a/frontend/public/logos/hi-events-stacked-light.svg b/frontend/public/logos/hi-events-stacked-light.svg new file mode 100644 index 0000000000..5bbe014f75 --- /dev/null +++ b/frontend/public/logos/hi-events-stacked-light.svg @@ -0,0 +1,27 @@ + + + Hi.Events Logo Stacked - Light + + + + + + + + + + + + + + + + + + HI.EVENTS + diff --git a/frontend/public/logos/hi-events-text-dark.svg b/frontend/public/logos/hi-events-text-dark.svg new file mode 100644 index 0000000000..400e375310 --- /dev/null +++ b/frontend/public/logos/hi-events-text-dark.svg @@ -0,0 +1,11 @@ + + + Hi.Events Text - Dark + + + + HI.EVENTS + diff --git a/frontend/public/logos/hi-events-text-light.svg b/frontend/public/logos/hi-events-text-light.svg new file mode 100644 index 0000000000..57237ffc7a --- /dev/null +++ b/frontend/public/logos/hi-events-text-light.svg @@ -0,0 +1,11 @@ + + + Hi.Events Text - Light + + + + HI.EVENTS + diff --git a/frontend/public/manifest-icons/apple-touch-icon.png b/frontend/public/manifest-icons/apple-touch-icon.png new file mode 100644 index 0000000000..de24f95caf Binary files /dev/null and b/frontend/public/manifest-icons/apple-touch-icon.png differ diff --git a/frontend/public/manifest-icons/favicon-16x16.png b/frontend/public/manifest-icons/favicon-16x16.png new file mode 100644 index 0000000000..d41d674599 Binary files /dev/null and b/frontend/public/manifest-icons/favicon-16x16.png differ diff --git a/frontend/public/manifest-icons/favicon-192x192.png b/frontend/public/manifest-icons/favicon-192x192.png new file mode 100644 index 0000000000..b220ae7291 Binary files /dev/null and b/frontend/public/manifest-icons/favicon-192x192.png differ diff --git a/frontend/public/manifest-icons/favicon-32x32.png b/frontend/public/manifest-icons/favicon-32x32.png new file mode 100644 index 0000000000..f8bf97154f Binary files /dev/null and b/frontend/public/manifest-icons/favicon-32x32.png differ diff --git a/frontend/public/manifest-icons/favicon-48x48.png b/frontend/public/manifest-icons/favicon-48x48.png new file mode 100644 index 0000000000..9b376634f0 Binary files /dev/null and b/frontend/public/manifest-icons/favicon-48x48.png differ diff --git a/frontend/public/manifest-icons/favicon-512x512.png b/frontend/public/manifest-icons/favicon-512x512.png new file mode 100644 index 0000000000..2e75ad3c17 Binary files /dev/null and b/frontend/public/manifest-icons/favicon-512x512.png differ diff --git a/frontend/public/manifest-icons/favicon-light-48x48.png b/frontend/public/manifest-icons/favicon-light-48x48.png new file mode 100644 index 0000000000..36d7af386d Binary files /dev/null and b/frontend/public/manifest-icons/favicon-light-48x48.png differ diff --git a/frontend/public/manifest-icons/favicon-light.svg b/frontend/public/manifest-icons/favicon-light.svg new file mode 100644 index 0000000000..e99cb51bc2 --- /dev/null +++ b/frontend/public/manifest-icons/favicon-light.svg @@ -0,0 +1,22 @@ + + Hi.Events Favicon - Light + + + + + + + + + + + + + + + + + + diff --git a/frontend/public/manifest-icons/favicon-text-dot.svg b/frontend/public/manifest-icons/favicon-text-dot.svg new file mode 100644 index 0000000000..f918dba3ed --- /dev/null +++ b/frontend/public/manifest-icons/favicon-text-dot.svg @@ -0,0 +1,9 @@ + + + HI. + diff --git a/frontend/public/manifest-icons/favicon.ico b/frontend/public/manifest-icons/favicon.ico new file mode 100644 index 0000000000..d6f1dcd754 Binary files /dev/null and b/frontend/public/manifest-icons/favicon.ico differ diff --git a/frontend/public/manifest-icons/favicon.svg b/frontend/public/manifest-icons/favicon.svg new file mode 100644 index 0000000000..fdaab28702 --- /dev/null +++ b/frontend/public/manifest-icons/favicon.svg @@ -0,0 +1,9 @@ + + + HI. + diff --git a/frontend/public/no-results-empty-boxes.svg b/frontend/public/no-results-empty-boxes.svg deleted file mode 100644 index 255f5e6322..0000000000 --- a/frontend/public/no-results-empty-boxes.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/frontend/public/site.webmanifest b/frontend/public/site.webmanifest new file mode 100644 index 0000000000..b071a4f870 --- /dev/null +++ b/frontend/public/site.webmanifest @@ -0,0 +1,24 @@ +{ + "name": "Hi.Events", + "short_name": "Hi.Events", + "icons": [ + { + "src": "/manifest-icons/favicon-48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/manifest-icons/favicon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/manifest-icons/favicon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#cd58dd", + "background_color": "#18181b", + "display": "standalone" +} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 21c13aa392..7a2e16bf85 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -64,11 +64,11 @@ export const App: FC< theme={{ colors: { primary: generateColors(getConfig("VITE_APP_PRIMARY_COLOR", "#40296C") as string), - secondary: generateColors(getConfig("VITE_APP_SECONDARY_COLOR", "#5A1065") as string), + secondary: generateColors(getConfig("VITE_APP_SECONDARY_COLOR", "#3d0b44") as string), }, primaryColor: "primary", - fontFamily: "'Varela Round', sans-serif", - primaryShade: 7 + fontFamily: "Outfit, sans-serif", + primaryShade: 8, }} > diff --git a/frontend/src/components/common/CapacityAssignmentList/index.tsx b/frontend/src/components/common/CapacityAssignmentList/index.tsx index ccf060ffe1..3e690a6279 100644 --- a/frontend/src/components/common/CapacityAssignmentList/index.tsx +++ b/frontend/src/components/common/CapacityAssignmentList/index.tsx @@ -46,13 +46,10 @@ export const CapacityAssignmentList = ({capacityAssignments, openCreateModal}: C

- Capacity assignments let you manage capacity across tickets or an entire event. Ideal - for multi-day events, workshops, and more, where controlling attendance is crucial. + Set a single total attendance limit that applies to multiple ticket types at once.

- For instance, you can associate a capacity assignment with Day One and All - Days ticket. Once the capacity is reached, both tickets will automatically stop - being available for sale. + For example, if you link a Day Pass and a Full Weekend ticket, they will both draw from the same pool of spots. Once the limit is reached, all linked tickets automatically stop selling.

diff --git a/frontend/src/components/common/ErrorDisplay/index.tsx b/frontend/src/components/common/ErrorDisplay/index.tsx index 9936c02bf7..f95b4be93d 100644 --- a/frontend/src/components/common/ErrorDisplay/index.tsx +++ b/frontend/src/components/common/ErrorDisplay/index.tsx @@ -40,7 +40,7 @@ export const ErrorDisplay = () => { {getConfig("VITE_APP_NAME",(); const statusToggleMutation = useUpdateEventStatus(); - // Get event cover image if available const coverImage = event.images?.find(img => img.type === 'EVENT_COVER'); + const gradientIndex = event.id ? Number(event.id) % placeholderGradients.length : 0; + const placeholderGradient = placeholderGradients[gradientIndex]; - // Get emoji based on event ID for consistency - const emojiIndex = event.id ? Number(event.id) % placeholderEmojis.length : 0; - const placeholderEmoji = placeholderEmojis[emojiIndex]; - - const handleDuplicate = (event: Event) => { - setEventId(() => event.id); + const handleDuplicate = () => { + setEventId(event.id); duplicateModal.open(); } - const handleStatusToggle = (event: Event) => () => { + const handleStatusToggle = () => { const message = event?.status !== 'ARCHIVED' ? t`Are you sure you want to archive this event?` : t`Are you sure you want to restore this event? It will be restored as a draft event.`; @@ -73,6 +73,56 @@ export function EventCard({event}: EventCardProps) { }) } + const getStatusConfig = () => { + if (event.status === 'ARCHIVED') { + return {label: t`Archived`, status: 'archived'}; + } + if (event.lifecycle_status === 'ENDED') { + return {label: t`Ended`, status: 'ended'}; + } + if (event.status === 'DRAFT') { + return {label: t`Draft`, status: 'draft'}; + } + if (event.lifecycle_status === 'ONGOING') { + return {label: t`Live`, status: 'live', pulse: true}; + } + return {label: t`On Sale`, status: 'onsale'}; + }; + + const getLocationText = () => { + if (event.settings?.is_online_event) return t`Online`; + const location = event.settings?.location_details; + if (location?.venue_name) return location.venue_name; + if (location?.city) return location.city; + return null; + }; + + const getTicketAvailability = () => { + const products = event.products; + if (!products || products.length === 0) return null; + + const ticketProducts = products.filter((p: Product) => p.product_type === 'TICKET'); + if (ticketProducts.length === 0) return null; + + const availableCount = ticketProducts.filter((p: Product) => { + if (p.status === 'INACTIVE') return false; + return p.is_available !== false && p.is_sold_out !== true; + }).length; + + const totalCount = ticketProducts.length; + + if (availableCount === 0) { + return {text: t`Sold out`, status: 'sold-out'}; + } + if (availableCount === totalCount) { + return { + text: totalCount === 1 ? t`1 ticket type` : t`${totalCount} ticket types`, + status: 'available' + }; + } + return {text: t`${availableCount} of ${totalCount} available`, status: 'partial'}; + }; + const menuItems: ActionMenuItemsGroup[] = [ { label: '', @@ -87,125 +137,122 @@ export function EventCard({event}: EventCardProps) { icon: , onClick: () => navigate(`/manage/event/${event.id}`), }, - ((event.lifecycle_status === 'UPCOMING' || event.lifecycle_status === 'ONGOING') - && event.status === 'LIVE') && { - label: t`Check-in`, - icon: , - onClick: () => navigate(`/manage/event/${event.id}/check-in`), - visible: true, - }, { label: t`Duplicate event`, icon: , - onClick: () => handleDuplicate(event), + onClick: handleDuplicate, }, { label: event?.status === 'ARCHIVED' ? t`Restore event` : t`Archive event`, icon: , - onClick: handleStatusToggle(event) + onClick: handleStatusToggle, }, - ].filter(Boolean) as MenuItem[], + ], }, ]; + const monthShort = formatDateWithLocale(event.start_date, 'monthShort', event.timezone); + const dayOfMonth = formatDateWithLocale(event.start_date, 'dayOfMonth', event.timezone); + const shortDateTime = formatDateWithLocale(event.start_date, 'shortDateTime', event.timezone); + const relativeDateStr = relativeDate(event.start_date); + const locationText = getLocationText(); + + const revenue = event?.statistics?.sales_total_gross || 0; + const attendees = event?.statistics?.attendees_registered || 0; + + const statusConfig = getStatusConfig(); + const ticketAvailability = getTicketAvailability(); + + const isEnded = event.lifecycle_status === 'ENDED'; + const isDraft = event.status === 'DRAFT'; + return ( <> - -
-
- {!coverImage && ( -
- {placeholderEmoji} -
- )} -
-
-
- -

{event.title}

-
- {event && } -
+ + +
+
+
-
- - {event?.organizer?.name} - +
+ {statusConfig.pulse && } + {statusConfig.label}
-
-
- {formatDateWithLocale(event.start_date, 'monthShort', event.timezone)} - {formatDateWithLocale(event.start_date, 'dayOfMonth', event.timezone)} -
-
- {formatDateWithLocale(event.start_date, 'timeOnly', event.timezone)} - {event.end_date && ( - - {formatDateWithLocale(event.end_date, 'timeOnly', event.timezone)} - )} -
+
+ {dayOfMonth} + {monthShort}
-
- - - - } - /> -
-
- -
-
- {event.settings?.location_details?.venue_name && ( -
- - - {event.settings?.location_details?.venue_name} - + +
+
+

{event.title}

+
+ {shortDateTime} + ({relativeDateStr}) + {locationText && ( + <> + · + {locationText} + + )}
- )} - {event.settings?.is_online_event && ( -
- - {t`Online event`} +
+ e.stopPropagation()} + > + {event?.organizer?.name} + + {ticketAvailability && ( + + {ticketAvailability.text} + + )}
- )} -
- - {formatNumber(event?.statistics?.products_sold || 0)} - {t`sold`}
-
- - {formatCurrency(event?.statistics?.sales_total_gross || 0, event?.currency)} + +
+ +
+ {formatNumber(attendees)} + {t`Attendees`} +
+
+ +
+ + {formatCurrency(revenue, event?.currency)} + + {t`Revenue`} +
+
-
-
- - {t`Manage Event`} - - } - /> +
e.preventDefault()}> + + + + } + /> +
-
+ {isDuplicateModalOpen && } diff --git a/frontend/src/components/common/GenericErrorPage/index.tsx b/frontend/src/components/common/GenericErrorPage/index.tsx index 31e863c0ae..97a30e2f73 100644 --- a/frontend/src/components/common/GenericErrorPage/index.tsx +++ b/frontend/src/components/common/GenericErrorPage/index.tsx @@ -47,7 +47,7 @@ export const GenericErrorPage: React.FC = ({ {getConfig("VITE_APP_NAME", {
- {`${getConfig("VITE_APP_NAME", + {`${getConfig("VITE_APP_NAME",
diff --git a/frontend/src/components/common/ImageUploadDropzone/index.tsx b/frontend/src/components/common/ImageUploadDropzone/index.tsx index e5fd00a3e2..126f071810 100644 --- a/frontend/src/components/common/ImageUploadDropzone/index.tsx +++ b/frontend/src/components/common/ImageUploadDropzone/index.tsx @@ -1,5 +1,5 @@ import {useEffect, useRef, useState} from "react"; -import {Dropzone, IMAGE_MIME_TYPE} from "@mantine/dropzone"; +import {Dropzone, FileRejection, IMAGE_MIME_TYPE} from "@mantine/dropzone"; import {useUploadImage} from "../../../mutations/useUploadImage.ts"; import {useDeleteImage} from "../../../mutations/useDeleteImage.ts"; import {showSuccess} from "../../../utilites/notifications.tsx"; @@ -51,6 +51,21 @@ export const ImageUploadDropzone = ({ } }, [existingImageData]); + const handleReject = (fileRejections: FileRejection[]) => { + const errorMessages = fileRejections.flatMap((rejection) => + rejection.errors.map((error) => { + if (error.code === 'file-too-large') { + return t`File is too large. Maximum size is 5MB.`; + } + if (error.code === 'file-invalid-type') { + return t`Invalid file type. Please upload an image.`; + } + return error.message; + }) + ); + setErrors(errorMessages); + }; + const handleDrop = (files: File[]) => { const [file] = files; if (!file) return; @@ -199,6 +214,7 @@ export const ImageUploadDropzone = ({
[]; isSystemDefault?: boolean; onEditModalOpen?: (id: IdParam) => void; - showHiddenQuestions?: boolean; } -const SortableQuestion = ({question, onEditModalOpen, onDelete}: { - question: Partial, - onEditModalOpen?: (id: IdParam) => void, - onDelete: (id: IdParam) => void, - isSystemDefault?: boolean +type QuestionType = 'ORDER' | 'PRODUCT'; + +const SortableQuestion = ({ + question, + onEditModalOpen, + onDelete, +}: { + question: Partial; + onEditModalOpen?: (id: IdParam) => void; + onDelete: (id: IdParam) => void; }) => { const uniqueId = question.id as UniqueIdentifier; - const { - attributes, - listeners, - setNodeRef, - transform, - transition - } = useSortable( - { - id: uniqueId, - } - ); + const {attributes, listeners, setNodeRef, transform, transition, isDragging} = useSortable({ + id: uniqueId, + }); const style = { transform: CSS.Transform.toString(transform), transition, }; + const isHidden = question.is_hidden; + return ( -
- -
- -
+
+
+ +
-
- {question.is_hidden && ( - - - - )} +
+
+ + + + {isHidden && ( + + + + )} + {question.required && ( + + {t`Required`} + + )}
-
- - - - - - - - {t`Actions`} - onEditModalOpen ? onEditModalOpen(question.id) : null} - leftSection={}>{t`Edit question`} - - - {t`Danger zone`} - } - onClick={() => onDelete(question.id)} - > - {t`Delete question`} - - - - -
- + + {question.type?.replace('_', ' ').toLowerCase()} + {question.options && question.options.length > 0 && ( + <> · {question.options.length} {t`options`} + )} + +
+ + + + + + + + + + } + onClick={() => onEditModalOpen?.(question.id)} + > + {t`Edit`} + + + } + onClick={() => onDelete(question.id)} + > + {t`Delete`} + + +
); +}; + +interface QuestionsListProps extends QuestionsTableProp { + emptyMessage: string; + emptyHint: string; + onAddQuestion: () => void; } -const QuestionsList = ({questions, onEditModalOpen, showHiddenQuestions}: QuestionsTableProp) => { +const QuestionsList = ({ + questions, + onEditModalOpen, + emptyMessage, + emptyHint, + onAddQuestion, +}: QuestionsListProps) => { const {eventId} = useParams(); const deleteQuestionMutation = useDeleteQuestion(); const sortMutation = useSortQuestions(); const {items, setItems, handleDragEnd} = useDragItemsHandler({ initialItemIds: questions.map((question) => Number(question.id)), onSortEnd: (newArray) => { - sortMutation.mutate({ - sortedQuestionIds: newArray.map((id, index) => { - return {id, order: index + 1}; - }), - eventId: eventId - }, { - onSuccess: () => { - showSuccess(t`Questions sorted successfully`); + sortMutation.mutate( + { + sortedQuestionIds: newArray.map((id, index) => ({id, order: index + 1})), + eventId: eventId, }, - onError: () => { - showError(t`An error occurred while sorting the questions. Please try again or refresh the page`); + { + onSuccess: () => showSuccess(t`Questions reordered`), + onError: () => showError(t`Failed to reorder questions`), } - }); + ); }, }); @@ -156,253 +191,327 @@ const QuestionsList = ({questions, onEditModalOpen, showHiddenQuestions}: Questi setItems(questions.map((question) => Number(question.id))); }, [questions]); - const sensors = useSensors( - useSensor(PointerSensor), - useSensor(TouchSensor) - ); + const sensors = useSensors(useSensor(PointerSensor), useSensor(TouchSensor)); const onDelete = (id: IdParam) => { - confirmationDialog(t`Are you sure you want to delete this question?`, () => { - deleteQuestionMutation.mutate({ - eventId: eventId, - questionId: id - }, { - onSuccess: () => { - showSuccess(t`Question deleted`) - }, - onError: (error) => { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - showError(error?.response?.data?.message || t`Failed to delete message. Please try again.`); + confirmationDialog(t`Delete this question? This cannot be undone.`, () => { + deleteQuestionMutation.mutate( + {eventId, questionId: id}, + { + onSuccess: () => showSuccess(t`Question deleted`), + onError: (error: any) => + showError(error?.response?.data?.message || t`Failed to delete question`), } - }); + ); }); + }; + + if (questions.length === 0) { + return ( +
+ + {emptyMessage} + + + {emptyHint} + + +
+ ); } return ( - + - {questions - .filter(question => showHiddenQuestions || !question.is_hidden) - .map((question) => { - return + {questions.map((question) => ( + - })} + ))} +
); }; -const DefaultQuestions = () => ( - <> - - - - - - - - - - +const DefaultFieldsPreview = () => ( +
+
+ {t`First Name`} + {t`Last Name`} + {t`Email`} +
+
); +const LivePreview = ({ + questions, + isPerOrderCollection, +}: { + questions: Partial[]; + isPerOrderCollection: boolean; +}) => { + const form = useForm(); + const [isOpen, setIsOpen] = useState(false); + + form.getInputProps = (name: string) => ({ + id: name, + value: form.values[name], + onChange: () => void 0, + }); + + const orderQuestions = questions.filter((q) => q.belongs_to === 'ORDER' && !q.is_hidden); + const productQuestions = questions.filter((q) => q.belongs_to === 'PRODUCT' && !q.is_hidden); + + return ( + + setIsOpen(!isOpen)} + > + + + {t`Preview checkout form`} + + {isOpen ? : } + + + +
+
+ + {t`Order`} + + + {orderQuestions.length > 0 && ( +
+ {orderQuestions.map((q) => ( + + ))} +
+ )} +
+ +
+ +
+ + {t`Per Attendee`} + + {!isPerOrderCollection && } + {productQuestions.length > 0 ? ( +
+ {productQuestions.map((q) => ( + + ))} +
+ ) : isPerOrderCollection ? ( + + {t`Attendee details copied from order`} + + ) : null} +
+
+ + + ); +}; + export const QuestionsTable = ({questions}: QuestionsTableProp) => { const {eventId} = useParams(); - const productQuestions = questions.filter(question => question.belongs_to === "PRODUCT"); - const orderQuestions = questions.filter(question => question.belongs_to === "ORDER"); - const form = useForm(); + const [activeTab, setActiveTab] = useState('ORDER'); const [createModalOpen, {open: openCreateModal, close: closeCreateModal}] = useDisclosure(false); const [editModalOpen, {open: openEditModal, close: closeEditModal}] = useDisclosure(false); const [questionId, setQuestionId] = useState(); - const [showHiddenQuestions, setShowHiddenQuestions] = useState(false); + const eventSettingsQuery = useGetEventSettings(eventId); - const isPerOrderCollection = eventSettingsQuery.data?.attendee_details_collection_method === 'PER_ORDER'; + const updateSettingsMutation = useUpdateEventSettings(); + const collectionMethod = eventSettingsQuery.data?.attendee_details_collection_method || 'PER_TICKET'; + const isPerOrderCollection = collectionMethod === 'PER_ORDER'; - // This disables the input fields in the preview - form.getInputProps = (name: string) => ({ - id: name, - value: form.values[name], - onChange: () => { - void 0 - }, - }); + const orderQuestions = questions.filter((q) => q.belongs_to === 'ORDER'); + const productQuestions = questions.filter((q) => q.belongs_to === 'PRODUCT'); + const activeQuestions = activeTab === 'ORDER' ? orderQuestions : productQuestions; - const handleModalOpen = (questionId: IdParam) => { - setQuestionId(questionId); + const handleModalOpen = (id: IdParam) => { + setQuestionId(id); openEditModal(); - } + }; - const onCompleted = (question: Question) => { - if (question.is_hidden && !showHiddenQuestions) { - setShowHiddenQuestions(true); - showSuccess(t`You created a hidden question but disabled the option to show hidden questions. It has been enabled.`); - } - } + const onCompleted = () => { + // Question created successfully + }; - const ExportAnswersButton = () => { - const {eventId} = useParams(); - const {startExport, isExporting} = useExportAnswers(eventId); + const handleCollectionMethodChange = (value: string | string[]) => { + const val = Array.isArray(value) ? value[0] : value; + if (!val) return; + updateSettingsMutation.mutate({ + eventSettings: {attendee_details_collection_method: val as 'PER_TICKET' | 'PER_ORDER'}, + eventId: eventId, + }, { + onSuccess: () => showSuccess(t`Setting updated`), + onError: () => showError(t`Failed to update setting`), + }); + }; + const collectionMethodOptions: ItemProps[] = [ + { + icon: , + label: t`Collect details per ticket`, + value: 'PER_TICKET', + description: t`Ask for name and email for each ticket purchased`, + }, + { + icon: , + label: t`Collect details per order`, + value: 'PER_ORDER', + description: t`Use the buyer's details for all attendees`, + }, + ]; + + const ExportButton = () => { + const {startExport, isExporting} = useExportAnswers(eventId); return ( ); }; return ( -
- - {t`Questions`} - +
+ {t`Registration Questions`} + -
- <> - - - -
- - - {questions.filter(question => question.is_hidden).length}{' '} - {questions.filter(question => question.is_hidden).length === 1 - ? t`hidden question` - : t`hidden questions` - } - - - + -
-
+
-
-
-
-

{t`Order questions`}

- - {orderQuestions - .filter(question => showHiddenQuestions || !question.is_hidden) - .length === 0 && ( - - {t`You have no order questions.`} - - )} -
-
-

{t`Product questions`}

- - {productQuestions - .filter(question => showHiddenQuestions || !question.is_hidden) - .length === 0 && ( - - {t`You have no attendee questions.`} - - )} -
-
-
-

- - {t`Preview`} - - - - -

- -

{t`Order questions`}

-
-
- - {orderQuestions - .filter(question => showHiddenQuestions || !question.is_hidden) - .map(question => ( - - ))} + + -

{t`Attendee questions`}

- {!isPerOrderCollection && } - {productQuestions - .filter(question => showHiddenQuestions || !question.is_hidden) - .map(question => ( - - ))} - {isPerOrderCollection && productQuestions.filter(question => showHiddenQuestions || !question.is_hidden).length === 0 && ( -

- {t`Attendee details will be copied from order information.`} -

- )} -
- +
+ setActiveTab(value as QuestionType)} + className={classes.segmentedControl} + data={[ + { + value: 'ORDER', + label: ( + + + {t`Order`} + {orderQuestions.length > 0 && ( + + {orderQuestions.length} + + )} + + ), + }, + { + value: 'PRODUCT', + label: ( + + + {t`Attendee`} + {productQuestions.length > 0 && ( + + {productQuestions.length} + + )} + + ), + }, + ]} + /> + + + +
-
- {createModalOpen && } - {(editModalOpen && questionId) && } + + +
+ + + + {createModalOpen && ( + + )} + {editModalOpen && questionId && ( + + )}
); -} +}; diff --git a/frontend/src/components/common/StatBoxes/index.tsx b/frontend/src/components/common/StatBoxes/index.tsx index 7c41ff5c6b..de13b39e1e 100644 --- a/frontend/src/components/common/StatBoxes/index.tsx +++ b/frontend/src/components/common/StatBoxes/index.tsx @@ -7,12 +7,12 @@ import {t} from "@lingui/macro"; import {useGetEvent} from "../../../queries/useGetEvent.ts"; import {formatCurrency} from "../../../utilites/currency.ts"; import {formatNumber} from "../../../utilites/helpers.ts"; -import React from "react"; +import {ReactNode} from "react"; interface StatBoxProps { - number: string; + number: string | number; description: string; - icon: React.ReactNode; + icon: ReactNode; backgroundColor: string; } @@ -44,37 +44,37 @@ export const StatBoxes = () => { number: formatNumber(eventStats?.total_attendees_registered as number), description: t`Attendees`, icon: , - backgroundColor: '#E6677E' // Rose pink + backgroundColor: '#E6677E' }, { number: formatNumber(eventStats?.total_products_sold as number), description: t`Products sold`, icon: , - backgroundColor: '#4B7BE5' // Deep blue + backgroundColor: '#4B7BE5' }, { number: formatCurrency(eventStats?.total_refunded as number || 0, event?.currency), description: t`Refunded`, icon: , - backgroundColor: '#49A6B7' // Teal + backgroundColor: '#49A6B7' }, { number: formatCurrency(eventStats?.total_gross_sales || 0, event?.currency), description: t`Gross sales`, icon: , - backgroundColor: '#7C63E6' // Purple + backgroundColor: '#7C63E6' }, { number: formatNumber(eventStats?.total_views as number), description: t`Page views`, icon: , - backgroundColor: '#63B3A1' // Sage green + backgroundColor: '#63B3A1' }, { number: formatNumber(eventStats?.total_orders as number), description: t`Completed orders`, icon: , - backgroundColor: '#E67D49' // Coral orange + backgroundColor: '#E67D49' } ]; diff --git a/frontend/src/components/common/TaxAndFeeList/TaxAndFeeList.module.scss b/frontend/src/components/common/TaxAndFeeList/TaxAndFeeList.module.scss index a0e8fa7882..d3e9b17e3b 100644 --- a/frontend/src/components/common/TaxAndFeeList/TaxAndFeeList.module.scss +++ b/frontend/src/components/common/TaxAndFeeList/TaxAndFeeList.module.scss @@ -1,52 +1,92 @@ .taxes { display: grid; - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); - gap: 20px; + grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); + gap: 16px; margin-top: 20px; .taxBlock { - border: 2px solid var(--hi-color-gray-2); - border-radius: 5px; + border: 1px solid var(--mantine-color-gray-3); + border-radius: 12px; display: flex; flex-direction: column; - justify-content: space-between; + background: var(--mantine-color-white); + transition: all 0.2s ease; + overflow: hidden; - .taxName { - font-size: 1.2rem; - font-weight: 600; + &:hover { + border-color: var(--mantine-color-primary-3); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); } - .taxValue { - font-size: 1.5rem; - font-weight: 600; + &.taxType { + .header { + background: var(--mantine-color-primary-0); + color: var(--mantine-color-primary-8); + } + + .iconWrapper { + background: var(--mantine-color-primary-1); + color: var(--mantine-color-primary-7); + } + + .rateBadge { + background: var(--mantine-color-primary-1); + color: var(--mantine-color-primary-8); + } } - .name { - justify-content: space-between; - align-items: center; - text-wrap: nowrap; - text-overflow: ellipsis; - overflow: hidden; - margin-right: 4px; + &.feeType { + .header { + background: var(--mantine-color-secondary-0); + color: var(--mantine-color-secondary-8); + } + + .iconWrapper { + background: var(--mantine-color-secondary-1); + color: var(--mantine-color-secondary-7); + } + + .rateBadge { + background: var(--mantine-color-secondary-1); + color: var(--mantine-color-secondary-8); + } } .header { - margin-bottom: var(--hi-spacing-sm); - background: #f1f1f1; - text-transform: capitalize; - color: #472e78; - border-radius: var(--hi-radius-xs) var(--hi-radius-xs) 0 0; - font-size: .8em; display: flex; - padding: 8px 0 8px 13px; + align-items: center; + padding: 10px 12px; + gap: 8px; + + .iconWrapper { + width: 28px; + height: 28px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + } .type { flex: 1; + font-size: 0.8rem; + font-weight: 600; + text-transform: capitalize; + letter-spacing: 0.02em; } .action { display: flex; - place-self: flex-end; + + .menuButton { + opacity: 0.7; + transition: opacity 0.2s ease; + + &:hover { + opacity: 1; + } + } } } @@ -54,9 +94,42 @@ display: flex; justify-content: space-between; align-items: center; - margin-bottom: var(--hi-spacing-sm); - padding: 10px; + padding: 16px; + gap: 12px; + } + + .name { + font-size: 0.95rem; + font-weight: 500; + color: var(--mantine-color-gray-8); + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + flex: 1; + } + + .value { + flex-shrink: 0; + } + + .rateBadge { + font-weight: 600; + font-size: 0.9rem; } } } +.noTaxes { + text-align: center; + padding: 40px 20px; + color: var(--mantine-color-gray-6); + background: var(--mantine-color-gray-0); + border-radius: 12px; + border: 1px dashed var(--mantine-color-gray-3); + margin-top: 20px; + + p { + margin: 0; + font-size: 0.95rem; + } +} diff --git a/frontend/src/components/common/TaxAndFeeList/index.tsx b/frontend/src/components/common/TaxAndFeeList/index.tsx index 7a25c9d5cb..8473471939 100644 --- a/frontend/src/components/common/TaxAndFeeList/index.tsx +++ b/frontend/src/components/common/TaxAndFeeList/index.tsx @@ -1,10 +1,10 @@ -import {Badge, Button, Group, Menu} from "@mantine/core"; +import {Badge, Button, Menu} from "@mantine/core"; import classes from './TaxAndFeeList.module.scss'; import {useGetTaxesAndFees} from "../../../queries/useGetTaxesAndFees.ts"; -import {TaxAndFee, TaxAndFeeCalculationType} from "../../../types.ts"; +import {TaxAndFee, TaxAndFeeCalculationType, TaxAndFeeType} from "../../../types.ts"; import {formatCurrency} from "../../../utilites/currency.ts"; import {useGetAccount} from "../../../queries/useGetAccount.ts"; -import {IconDotsVertical, IconPencil, IconTrash} from "@tabler/icons-react"; +import {IconDotsVertical, IconPencil, IconPercentage, IconReceipt, IconTrash} from "@tabler/icons-react"; import {useDisclosure} from "@mantine/hooks"; import {EditTaxOrFeeModal} from "../../modals/EditTaxOrFeeModal"; import {useState} from "react"; @@ -43,18 +43,23 @@ export const TaxAndFeeList = () => { const TaxList = () => { return
- {taxesAndFees.data.map((tax) => ( -
-
-
- {tax.type.toLocaleLowerCase()} -
-
- + {taxesAndFees.data.map((tax) => { + const isTax = tax.type === TaxAndFeeType.Tax; + return ( +
+
+
+ {isTax ? : } +
+
+ {tax.type.toLocaleLowerCase()} +
+
- + @@ -74,24 +79,23 @@ export const TaxAndFeeList = () => { - -
- -
-
-
- {tax.name} +
-
- - {tax.calculation_type === TaxAndFeeCalculationType.Percentage - ? tax.rate + '%' - : formatCurrency(Number(tax.rate), account?.currency_code)} - +
+
+ {tax.name} +
+
+ + {tax.calculation_type === TaxAndFeeCalculationType.Percentage + ? tax.rate + '%' + : formatCurrency(Number(tax.rate), account?.currency_code)} + +
-
- ))} + ); + })}
; } diff --git a/frontend/src/components/common/ThemeColorControls/index.tsx b/frontend/src/components/common/ThemeColorControls/index.tsx index 4bcb6a0fa5..322313ccd3 100644 --- a/frontend/src/components/common/ThemeColorControls/index.tsx +++ b/frontend/src/components/common/ThemeColorControls/index.tsx @@ -103,13 +103,13 @@ export const ThemeColorControls = ({ {hasIssues ? ( - + {t`Text may be hard to read`} ) : ( - + {t`Good readability`} )} diff --git a/frontend/src/components/common/WidgetEditor/WidgetEditor.module.scss b/frontend/src/components/common/WidgetEditor/WidgetEditor.module.scss index c48fce2bfe..5334fb82fc 100644 --- a/frontend/src/components/common/WidgetEditor/WidgetEditor.module.scss +++ b/frontend/src/components/common/WidgetEditor/WidgetEditor.module.scss @@ -1,50 +1,148 @@ -.widgetGrid { - display: grid; - grid-template-areas: 'form preview'; - grid-template-columns: 320px 1fr; - margin-top: -15px; - margin-bottom: -15px; - margin-right: -15px; - - @media (max-width: 760px) { - grid-template-areas: - 'form' - 'preview'; - grid-template-columns: auto; +@use "../../../styles/mixins.scss"; + +@include mixins.respond-below(sm) { + :global(#event-manage-main) { + overflow: auto; } } -.widgetForm { - padding: 20px; - grid-area: form; - margin-top: 20px; +.container { + display: flex; + flex-direction: row; + margin: calc(var(--hi-spacing-lg) * -1); - .formHeader { - margin-top: 0; + h2 { + margin-bottom: 0; } -} -.widgetContainer { - position: absolute; - bottom: 20px; - z-index: 4; + @include mixins.respond-below(sm) { + flex-direction: column; + } + + .sidebar { + min-width: 380px; + max-width: 380px; + background-color: #ffffff; + padding: var(--hi-spacing-lg); + height: calc(100vh - 55px); + overflow-y: auto; + position: sticky; + top: 0; + border-right: 1px solid var(--mantine-color-gray-2); + + @include mixins.respond-below(sm) { + width: 100%; + min-width: unset; + max-width: unset; + position: relative; + overflow: auto; + height: auto; + border-right: none; + border-bottom: 1px solid var(--mantine-color-gray-2); + } + + .sticky { + position: sticky; + top: 0; + } + + .header { + margin-bottom: var(--hi-spacing-lg); + padding-bottom: var(--hi-spacing-md); + border-bottom: 1px solid var(--mantine-color-gray-2); + + h2 { + margin: 0 0 var(--hi-spacing-xs) 0; + font-size: 1.375rem; + font-weight: 600; + color: var(--mantine-color-gray-9); + } + } - // You may need to write JavaScript to toggle between 'left' and 'right' based on props.campaign.tab_position.toString() === 'BOTTOM_LEFT' condition. + .accordion { + margin-bottom: 0; + + .accordionItem { + border: 1px solid var(--mantine-color-gray-3); + border-radius: var(--mantine-radius-md); + overflow: hidden; + + &:not(:last-child) { + margin-bottom: var(--hi-spacing-md); + } + + :global(.mantine-Accordion-control) { + padding: var(--hi-spacing-md); + background: var(--mantine-color-gray-0); + + &:hover { + background: var(--mantine-color-gray-1); + } + + &[data-active] { + border-bottom: 1px solid var(--mantine-color-gray-2); + } + } + + :global(.mantine-Accordion-panel) { + padding: 0; + background: white; + } + + :global(.mantine-Accordion-content) { + padding: var(--hi-spacing-lg); + + :global(.mantine-ColorInput-root), + :global(.mantine-TextInput-root), + :global(.mantine-NumberInput-root), + :global(.mantine-Textarea-root), + :global(.mantine-Switch-root) { + margin-bottom: 0; + } + } + } + } + } + + .previewContainer { + flex: 1; + padding: var(--hi-spacing-lg); + background: var(--mantine-color-gray-1); + min-width: 400px; + + @include mixins.respond-below(sm) { + padding: var(--hi-spacing-md); + min-width: unset; + } + + > h2 { + display: none; + margin-bottom: var(--hi-spacing-md); + + @include mixins.respond-below(sm) { + display: block; + } + } + } } -.previewPane { - grid-area: preview; - padding: 20px; - background: #f5f5f5; +.stickyContainer { + position: sticky; + top: var(--hi-spacing-lg); + min-height: 80vh; + background-color: #ffffff; + border-radius: var(--hi-radius-lg); + border: 1px solid var(--mantine-color-gray-3); + overflow: hidden; } .browserChrome { width: 100%; background: #fff; - border-radius: 5px 5px 0 0; + border-radius: var(--hi-radius-lg) var(--hi-radius-lg) 0 0; height: 40px; display: flex; - border-bottom: 1px solid #dbdbdb; + border-bottom: 1px solid var(--mantine-color-gray-3); } .browserActionButtons { @@ -55,12 +153,12 @@ padding: 10px; div { - width: 15px; - height: 15px; - border-radius: 50px; - background-color: #eee; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: var(--mantine-color-gray-3); display: inline-block; - margin-right: 4px; + margin-right: 6px; } } @@ -69,30 +167,22 @@ align-self: center; div { - background-color: #f8f8f8; - border-radius: 5px; + background-color: var(--mantine-color-gray-1); + border-radius: var(--mantine-radius-sm); margin-right: 20%; - font-size: 0.9em; - padding: 2px 12px; - color: #909090; + font-size: 0.85em; + padding: 4px 12px; + color: var(--mantine-color-gray-6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; span { - color: #6eb96e; + color: var(--mantine-color-green-6); } } } -.previewHeader { - img { - width: 20px; - height: 20px; - display: inline; - } -} - .websitePlaceholder { position: absolute; user-select: none; @@ -102,34 +192,23 @@ height: 100%; width: 100%; z-index: 1; - padding: 20px; - overflow: scroll; + padding: var(--hi-spacing-lg); + overflow: auto; - .widgetWrapper { - padding: 10px; + h1 { + font-size: 1.25rem; + color: var(--mantine-color-gray-7); + margin-bottom: var(--hi-spacing-md); } - // You may need to write JavaScript to change the opacity based on the widgetType prop. + .widgetWrapper { + padding: var(--hi-spacing-sm); + margin: var(--hi-spacing-md) 0; + } p.lorem { - color: #ddd; - margin-bottom: 20px; + color: var(--mantine-color-gray-4); + margin-bottom: var(--hi-spacing-md); + font-size: 0.9rem; } } - -.stickyContainer { - position: sticky; - top: 20px; - min-height: 80vh; - background-color: #ffffff; - border-radius: var(--hi-radius-lg); - border: 1px solid #dbdbdb; - overflow: hidden; -} - -.sectionHeader { - color: #6eb96e; - letter-spacing: 2px; - margin: 20px 0; - font-size: 1.3em; -} diff --git a/frontend/src/components/common/WidgetEditor/index.tsx b/frontend/src/components/common/WidgetEditor/index.tsx index 1cb3ab4a5c..dd6da25229 100644 --- a/frontend/src/components/common/WidgetEditor/index.tsx +++ b/frontend/src/components/common/WidgetEditor/index.tsx @@ -1,18 +1,16 @@ import classes from './WidgetEditor.module.scss'; import SelectProducts from "../../routes/product-widget/SelectProducts"; -import {ColorInput, Group, NumberInput, Switch, Tabs, Textarea, TextInput} from "@mantine/core"; +import {Accordion, ColorInput, Group, NumberInput, Stack, Switch, Tabs, Text, Textarea, TextInput} from "@mantine/core"; import {t, Trans} from "@lingui/macro"; import {matches, useForm} from "@mantine/form"; import {useEffect, useState} from "react"; import {CopyButton} from "../CopyButton"; import {useParams} from "react-router"; -import {IconInfoCircle} from "@tabler/icons-react"; +import {IconCode, IconPalette, IconSettings} from "@tabler/icons-react"; import {useGetEventSettings} from "../../../queries/useGetEventSettings.ts"; -import {Popover} from "../Popover"; import {LoadingMask} from '../LoadingMask'; import {Event} from '../../../types.ts'; import {useGetEvent} from "../../../queries/useGetEvent.ts"; -import {Card} from "../Card"; export const WidgetEditor = () => { const {eventId} = useParams(); @@ -44,6 +42,7 @@ export const WidgetEditor = () => { const [htmlEmbedCode, setHtmlEmbedCode] = useState(""); const [reactComponentCode, setReactComponentCode] = useState(""); const [reactUsageCode, setReactUsageCode] = useState(""); + const [accordionValue, setAccordionValue] = useState(['colors', 'appearance', 'embedding']); const currentLocation = typeof window !== "undefined" ? window?.location : undefined; const embedUrl = `${currentLocation?.protocol}//${currentLocation?.host}/widget.js`; const embedScript = ``; @@ -154,209 +153,218 @@ export default App; }, [isEventSettingsFetched, eventSettings]); return ( -
-
- -
-

- {t`Widget Settings`} -

-

- - {t`Colors`} - - - - - -

- - - - - - - - - -

{t`Appearance`}

- - - - - - - -

- Embedding -

- - - - - HTML - - - React - - - -
- -