Skip to main content
Welcome to TradeMaster Transactions (TMT)! This guide will help you set up your account and create your first event in minutes.

What is TMT?

TradeMaster Transactions is a comprehensive event ticketing and management platform designed for event organizers, venues, and box offices. The platform enables you to:
  • Create and manage events with multiple ticket zones
  • Sell tickets through multiple channels (online portals and physical box offices)
  • Track transactions and generate detailed sales reports
  • Manage contracts, payouts, and financial reconciliation
  • Control access with role-based permissions

Prerequisites

Before you begin, ensure you have:

Valid Account

An active TMT account with appropriate permissions

Firebase Credentials

Access to the Firebase authentication system

Getting Started

1

Sign In to Your Account

Navigate to the login page and authenticate with your credentials.
// Authentication is handled via Firebase
// src/views/authentication/authForms/AuthLogin.js:46-93

const formik = useFormik({
  initialValues: {
    email: '',
    password: '',
  },
  validationSchema: LoginSchema,
  onSubmit: async (values) => {
    // Validates user platform access
    await validateUserPlatform({ 
      platform: 'u_clients', 
      email: values.email 
    });
    
    // Signs in with Firebase
    await signin(values.email, values.password);
  }
});
Your account must be active (status: true in Firestore) and authorized for the u_clients platform to access the system.
Account Types Available:
  • Administrador - Full system access
  • Cliente - Client account with event management capabilities
  • Coordinador - Coordinator with limited administrative access
  • Contador - Accountant with financial reporting access
  • Soporte - Support staff with read-only access
2

Navigate the Dashboard

After successful login, you’ll be redirected to the modern dashboard at /dashboards/modern.The dashboard displays:
  • Top Cards: Sales metrics and ticket statistics
  • Yearly Breakup: Ticket sales vs. available seats
  • Distribution Charts: Money distribution across payment methods
  • Top Performers: Sales breakdown by box office
  • Active Offices: Office activity metrics
// Dashboard filters (src/views/dashboard/Modern.js:89-113)
const getData = async ({ id, dateFrom, dateTo }) => {
  const parameters = { 
    event_id: id ?? selectedEvent, 
    from: moment(dateFrom ?? from).format("YYYY-MM-DD"), 
    to: moment(dateTo ?? to).format("YYYY-MM-DD") 
  };
  
  // Fetch dashboard metrics
  await sold_by_office(parameters);
  await money_distribution(parameters);
  await number_tickets_vs_sold(parameters);
  await offices_vs_offices_active(parameters);
}
Use the filter panel at the top of the dashboard to analyze specific events or date ranges.
3

Create an Event Venue (Optional)

Before creating an event, you may want to set up a venue. Navigate to Salones de EventosCrear Salón.
This step is optional if your events don’t require a physical venue or if venues are already configured.
Required Venue Information:
  • Venue name and description
  • Location details (address, city, country)
  • Capacity information
  • Contact details
4

Create Your First Event

Navigate to EventosCrear Evento or access /eventos-crear directly.

Basic Event Information

Fill out the event form with the following details:
// Event creation form structure (src/components/apps/events/NewEventForm.js)
const EventSchema = Yup.object().shape({
  client_id: Yup.string().required('Cliente es requerido'),
  event_name: Yup.string().required('Nombre del evento es requerido'),
  event_type: Yup.string().required('Tipo de evento es requerido'),
  venue_id: Yup.string().required('Salón es requerido'),
  date_start: Yup.date().required('Fecha de inicio es requerida'),
  date_end: Yup.date().required('Fecha de fin es requerida'),
  contract_id: Yup.array().min(1, 'Debe seleccionar al menos un contrato'),
});
Event Fields:
{
  "event": {
    "name": "Concert 2024",
    "description": "Annual music festival",
    "type": "Concierto"
  },
  "client_id": "uid_of_client",
  "venue_id": "venue_document_id",
  "date_start": "2024-06-15T19:00:00",
  "date_end": "2024-06-15T23:00:00",
  "status": "Pre-Montaje",
  "contract_id": ["contract_id_1"],
  "image": "https://storage.url/event-image.jpg"
}
Ensure you have an active contract associated with the client before creating an event. Events require at least one contract to be selected.
5

Configure Event Zones and Pricing

After creating the event, configure ticket zones:
  1. Navigate to your event details
  2. Click Configurar Evento to access /eventos-config
  3. Set up zones with pricing:
Zone Configuration:
  • Zone name (e.g., “VIP”, “General”, “Balcony”)
  • Ticket capacity per zone
  • Pricing per ticket
  • Zone-specific rules or restrictions
You can split ticket inventory across different sales channels (online vs. box office) using the split configuration at /eventos-config-split.
6

Generate Tickets

Once zones are configured, generate tickets for your event.
// Ticket generation via Firebase Cloud Function
// src/guards/firebase/Firebase.js:59

const generateTickets = async (eventId) => {
  const result = await tickets_generate({ 
    event_id: eventId 
  });
  return result;
};
The system will:
  • Create unique ticket IDs for each seat
  • Generate QR codes for ticket validation
  • Assign tickets to the appropriate zones
  • Make tickets available for sale
Tickets are stored in the Firestore tickets collection with status tracking for availability and sales.
7

Set Up Sales Channels

Configure where tickets can be sold:

Online Portals

Navigate to PortalesCrear Portal to create a web portal:
  • Portal name and URL
  • Associated events
  • Branding and customization
  • Payment method configuration

Box Offices (Taquillas)

Navigate to TaquillasCrear Taquilla to set up physical sales points:
  • Office name and location
  • Assigned collaborators
  • Active events for sale
  • PIN-based security for transactions
// Box office setup with PIN (src/guards/firebase/Firebase.js:62)
await office_pin_set({ 
  office_id: officeId, 
  pin: securePin 
});
8

Activate Your Event

Change the event status from “Pre-Montaje” to “Activo” to begin accepting ticket sales.Event Statuses:
  • Pre-Montaje: Setup phase, tickets not available for sale
  • Activo: Event is live, tickets available for purchase
  • Finalizado: Event completed, no more sales
  • Cancelado: Event cancelled
Only users with the appropriate permissions can change event status. The change:eventsStatus permission is required.
9

Monitor Sales and Transactions

Track your event performance:
  • Transactions: View at /transacciones for all payment records
  • Orders: Check /ordenes for customer purchase history
  • Tickets: Monitor sold/available tickets at /tickets
  • Event Details: Access comprehensive event analytics at /evento-detalles
// Fetch event transactions
const querySnapshot = await Firestore
  .collection('transactions')
  .where('event_id', '==', eventId)
  .get();

Next Steps

Architecture Overview

Learn about the technical architecture and how components interact

User Management

Set up staff, clients, collaborators, and manage permissions

Contract Management

Create and manage contracts with clients

Financial Reports

Generate payout reports and reconcile transactions

Common Issues

Ensure your account has the ViewEventsCreate permission. Contact your administrator to verify your role has the necessary permissions defined in src/guards/contexts/DefineAbilities.js.
Check that:
  • You have selected a valid client with an active contract
  • The event venue exists in the system
  • Start date is before end date
  • All required fields are filled
Verify that:
  • Tickets have been generated for the event
  • Event status is set to “Activo”
  • The sales channel (portal or box office) has the event assigned
  • Ticket inventory hasn’t been exhausted
Common authentication errors:
  • auth/invalid-email: Email format is incorrect
  • auth/invalid-credential: Wrong email or password
  • auth/too-many-requests: Too many failed attempts, wait before retrying
  • User not authorized: Account not active or not in u_clients platform

Support

If you need assistance:
  • Check the authentication status in your Firestore u_clients collection
  • Verify Firebase configuration in src/guards/firebase/Firebase.js
  • Review permission definitions for your account type
  • Contact your system administrator for access issues

Build docs developers (and LLMs) love