Event Management System API Documentation
Table of Contents
- Overview
- Authentication
- API Endpoints
- Models & Data Structures
- Helper Functions
- Frontend Components
- Usage Examples
Overview
This is a comprehensive Laravel-based event management system that handles event creation, registration, payments, rankings, and merchandise. The system supports multiple user roles including organizers, administrators, and participants.Key Features
- Event creation and management
- User registration and authentication
- Payment processing (Redsys integration)
- Event rankings and statistics
- Merchandise catalog management
- Multi-language support
- Discount and promotion management
- Communication system
Authentication
Sanctum Authentication
The API uses Laravel Sanctum for authentication. Most endpoints require authentication via theauth:sanctum middleware.
Session Authentication
Web routes use session-based authentication with theauth middleware.
API Endpoints
Authentication Endpoints
User Login
User Registration
Event Management API
Get Events (Filtered)
search(string): Search term for event namecategory(integer): Category ID filterdate_from(date): Start date filterdate_to(date): End date filterstatus(string): Event status filter
Create Event
Update Event
Get Event Forms
Update Event Forms
Checkout & Payment API
Get Event Products
Add Product to Cart
Remove from Cart
Get Product Variants
Find Product Variant
Rankings API
Get Event Rankings
Create Ranking
Recalculate Rankings
Export Rankings
Discounts API
Get Discounts
Create Discount
Update Discount
Delete Discount
Communications API
Get Communications
Send Communication
Generate Report
participants, payments, rankings
Merchandise API
Get Catalogs
Create Catalog
Update Catalog
Delete Catalog
Upload Product Image
Get Products
Get Single Product
Process Checkout
Configuration API
Create Permission
Delete Permission
User Management API
Get User Profile
Update Profile
Update Password
Organization Management API
Get Organizations
Create Organization
Update Organization
Delete Organization
Export Organizations
Language Management API
Get Languages
Create Language
Update Language
Delete Language
Tariff Management API
Get Tariffs
Create Tariff
Update Tariff
Delete Tariff
Models & Data Structures
Event Model
User Model
Event Registration Model
Helper Functions
Status Management Functions
get_status_meta()
Returns status metadata including label and CSS class.get_status_class()
Returns CSS class for a status.get_status_label()
Returns human-readable label for a status.Frontend Components
JavaScript Dependencies
The application uses several JavaScript libraries:- jQuery: DOM manipulation and AJAX requests
- Bootstrap: UI framework
- DataTables: Table functionality
- Swiper: Carousel/slider functionality
- Toastr: Notification system
- Moment.js: Date/time manipulation
- PDFMake: PDF generation
- JSZip: File compression
- Tabulator: Advanced table functionality
Key Frontend Features
DataTables Integration
AJAX Form Submissions
File Uploads
Usage Examples
Creating an Event
Processing a Payment
Managing Rankings
Sending Communications
Managing Merchandise
Error Handling
Common HTTP Status Codes
- 200: Success
- 201: Created
- 400: Bad Request
- 401: Unauthorized
- 403: Forbidden
- 404: Not Found
- 422: Validation Error
- 500: Internal Server Error
Error Response Format
Rate Limiting
The API implements rate limiting to prevent abuse. Limits are applied per user/IP address:- Authentication endpoints: 5 requests per minute
- General API endpoints: 60 requests per minute
- File upload endpoints: 10 requests per minute
Security Considerations
- Authentication: All sensitive endpoints require authentication
- Authorization: Role-based access control using Spatie Laravel Permission
- CSRF Protection: Web forms include CSRF tokens
- Input Validation: All inputs are validated using Laravel’s validation system
- SQL Injection Protection: Uses Eloquent ORM with parameterized queries
- XSS Protection: Output is properly escaped in Blade templates
