# Spanglish Website – Functional Specification

## 1. Purpose

This document defines the functional behavior of the Spanglish website and admin system.

It specifies what the system must do, how users interact with it, and how core workflows operate.

---

## 2. User Roles

### 2.1 Public User

* Can browse the website
* Can view events
* Can book tickets
* Can join community channels
* Can contact organizers

### 2.2 Admin

* Full system access
* Manages events
* Manages users
* Manages payments
* Manages communications
* Manages settings

### 2.3 Organizer

* Manages assigned events
* Views attendees
* Sends event emails
* Manages check-in

### 2.4 Staff

* Access to check-in system
* Limited attendee viewing

### 2.5 Marketing

* Access to email tools
* Access to analytics
* Access to media library

---

## 3. Public Website Features

### 3.1 Homepage

The homepage must display:

* Hero section with next event
* Primary call-to-action button
* Brief description of Spanglish
* Photo gallery
* Community links
* Email signup form
* Contact information

Behavior:

* Automatically shows the next upcoming event
* Updates dynamically when events change

---

### 3.2 Events Listing Page

The events page must display:

* List of upcoming events
* List of past events
* Basic filtering by date

Each event card shows:

* Title
* Date
* Location
* Status
* Booking button

---

### 3.3 Event Detail Page

Each event page must include:

* Event title
* Description
* Date and time
* Location with map
* Price
* Available seats
* Booking button
* FAQ section
* Social sharing buttons

Behavior:

* Booking disabled when sold out
* Status shown when cancelled

---

### 3.4 Community Page

The community page must include:

* WhatsApp invite links
* Instagram link
* Participation guidelines
* Volunteer information

---

### 3.5 Contact Page

The contact page must include:

* Contact form
* Email address
* Social media links

Behavior:

* Form submissions stored in database
* Admin receives notification

---

## 4. Booking System

### 4.1 Booking Flow

1. User clicks "Join" on event page
2. Booking form is displayed
3. User enters personal details
4. User selects payment method
5. Payment is processed or recorded
6. Ticket is generated
7. Confirmation is sent
8. User appears in admin system

---

### 4.2 Booking Form

The booking form collects:

* Full name
* Email address
* Phone number
* Language preference (optional)
* Payment method

Validation:

* Email format check
* Required field validation
* Duplicate booking prevention

---

### 4.3 Ticket Generation

After successful booking:

* Unique ticket ID is generated
* Ticket linked to user and event
* QR code created (optional)
* Ticket stored in database

---

## 5. Payment Management

### 5.1 Supported Payment Methods

Initial support:

* Stripe / MercadoPago
* Bank transfer
* Cash (manual entry)

Future support:

* Lightning
* Cashu
* Nostr payments

---

### 5.2 Payment Workflow

* Payment initiated during booking
* Payment status tracked
* Manual confirmation supported
* Refunds supported

Statuses:

* Pending
* Paid
* Refunded
* Failed

---

## 6. Admin Dashboard

### 6.1 Dashboard Overview

The main dashboard displays:

* Upcoming events
* Ticket sales
* Revenue summary
* Pending payments
* Alerts

---

### 6.2 Event Management Module

Features:

* Create event
* Edit event
* Publish event
* Archive event
* Duplicate event

Event fields:

* Title
* Description
* Date
* Time
* Location
* Price
* Capacity
* Banner image
* Status

---

### 6.3 Ticket Management Module

Features:

* View attendee list
* Search attendees
* Edit attendee info
* Manual ticket creation
* Cancel tickets
* Export CSV
* Check-in system

Check-in:

* Manual toggle
* QR scanning (optional)
* Timestamp logging

---

### 6.4 Payment Management Module

Features:

* View transactions
* Manual payment entry
* Refund processing
* Revenue reports
* Export financial data

---

### 6.5 Email & Messaging Module

Features:

* Email templates
* Mass mailing
* Automated reminders
* Event notifications
* Contact segmentation

Automated emails:

* Booking confirmation
* Event reminder
* Cancellation notice
* Post-event follow-up

---

### 6.6 Community Management Module

Features:

* User profiles
* Attendance history
* Notes system
* Tagging
* Segmentation

---

### 6.7 Media Management Module

Features:

* Upload images
* Organize galleries
* Assign images to events
* Homepage gallery management

---

### 6.8 Role & Permission Management

Features:

* Create roles
* Assign permissions
* Assign users to roles
* Audit access

---

## 7. Reporting & Analytics

The system must provide:

* Event attendance reports
* Revenue reports
* User growth reports
* Conversion metrics
* Email engagement statistics

---

## 8. Error Handling

The system must handle:

* Failed payments
* Overbooking attempts
* Network failures
* Invalid input
* Unauthorized access

Behavior:

* Display user-friendly messages
* Log technical errors
* Notify admins when critical

---

## 9. Notifications

System notifications include:

* New booking alerts
* Payment failures
* Low capacity warnings
* System errors

Delivery channels:

* Email
* Admin dashboard alerts
  n

---

## 10. Audit Logging

The system must record:

* Admin actions
* Payment changes
* Event modifications
* User updates

Logs must include:

* Timestamp
* User ID
* Action type
* Target record

---

## 11. Accessibility

The public website must:

* Support mobile devices
* Provide readable fonts
* Support screen readers
* Maintain color contrast

---

## 12. Summary

This functional specification defines the operational behavior of the Spanglish platform.

All implemented features must comply with this document to ensure consistency, reliability, and scalability.
