Files
edr-platform/apps/edr-passenger-web/backoffice/public/docs.md
2026-07-08 09:01:07 +03:00

100 KiB
Raw Blame History

Passenger Backoffice App - Comprehensive Documentation

Last Updated: 2026-01-15
Version: 1.0.0
Platform: Ethio-Djibouti Railway (EDR) Passenger Management System


Table of Contents

  1. Overview
  2. Application Structure
  3. Sidebar Navigation Guide
  4. Operations Management
  5. Master Data Management
  6. Financial Management
  7. Customer Services
  8. Security & Compliance
  9. Analytics & Reports
  10. System Administration
  11. Common Features

Overview

The Passenger Backoffice Application is a comprehensive management system for the Ethio-Djibouti Railway passenger platform. It provides tools for operational staff, supervisors, and administrators to manage bookings, passengers, fares, fleet, and compliance operations.

Key Features

  • Real-time Booking Management: View, modify, and cancel bookings
  • Passenger Management: Track and manage passenger information
  • Dynamic Pricing: Configure fares with segment-based and nationality-specific pricing
  • Fleet Management: Manage trains, coaches, and seats
  • Live Tracking: Monitor trip status and real-time updates
  • Security Monitoring: Fraud detection and audit logging
  • Comprehensive Analytics: Revenue, occupancy, and performance reports
  • 🆕 Excess Luggage Management: Handle boarding baggage charges with agent tools
  • 🆕 Travel Packages: Manage pilgrimage and group travel packages with tiered pricing
  • 🆕 System Health Monitoring: Real-time API health checks and system status
  • 🆕 Advanced Fare Configuration: Dynamic pricing with segment-based rules
  • 🆕 Boarding Management: Gate operations and passenger processing
  • 🆕 Payment Methods Configuration: Multi-provider payment setup
  • 🆕 Package Inquiries: Lead management for travel package bookings
  • 🆕 Centralized Configuration: Feature flags and operational controls

Supported Roles

  • Agent: Counter booking and basic operations
  • Supervisor: Agent oversight and operational decisions
  • Admin: Full system access and configuration
  • Staff: Limited access to specific modules

Application Structure

Sidebar Organization

The application is organized into 8 main sections:

├── Overview
│   └── Dashboard
├── Operations
│   ├── Bookings
│   ├── Passengers
│   └── Tickets
├── Master Data
│   ├── Stations
│   ├── Trains
│   ├── Coaches
│   ├── Seats
│   ├── Classes
│   ├── Routes
│   └── Schedules
├── Financial
│   ├── Pricing & Fares
│   ├── Currencies
│   ├── Payments
│   └── Promo Codes
├── Customer Services
│   ├── Loyalty Program
│   ├── Support Center
│   └── Notifications
├── Security & Compliance
│   ├── Audit Logs
│   ├── Fraud Detection
│   └── Verifayda Integration
├── Analytics & Reports
│   ├── Reports
│   └── Operational Reports
└── System
    ├── Agent Operations
    ├── User Management
    ├── System Config
    └── Settings
└── Enhanced Features
    ├── Excess Luggage
    ├── Travel Packages
    ├── Package Inquiries
    ├── Health Monitoring
    ├── Boarding Management
    ├── Advanced Fare Config
    └── Payment Methods

Theme & Personalization

  • Dark Mode Toggle: Available in the header for reduced eye strain
  • Sidebar Collapse: Click the chevron icon to minimize sidebar for more screen space
  • Responsive Design: Fully responsive interface for desktop and tablet use
  • Accessible UI: WCAG 2.1 AA compliant for accessibility

Sidebar Navigation Guide

Collapsible Sidebar

Feature: Expand/Collapse Navigation
Location: Top-right corner of sidebar header

How to Use:

  1. Click the Chevron (</> or >>) icon in the sidebar header
  2. Sidebar collapses to icon-only view
  3. Hover over icons to see tooltip labels
  4. Click again to expand full sidebar

Benefits:

  • Maximize content viewing area
  • Cleaner interface for focused work
  • Quick navigation with tooltips

Operations Management

Bookings

Purpose: Manage all passenger bookings, view details, modify, and process cancellations
Access Level: Agent, Supervisor, Admin
Icon: Ticket

Features Overview

┌─────────────────────────────┐
│    BOOKINGS MANAGEMENT      │
├─────────────────────────────┤
│ ✓ List & Filter             │
│ ✓ Search by Reference       │
│ ✓ View Full Details         │
│ ✓ Cancel with Refunds       │
│ ✓ Delete Records            │
│ ✓ Export Data               │
└─────────────────────────────┘

CRUD Operations

CREATE (Direct Booking Creation)

Note: Bookings are primarily created through the passenger portal. Backoffice staff use agent operations module for counter bookings.

  1. Agent Counter Booking:
    • Navigate to Agent Operations (System section)
    • Create booking through dedicated agent interface
    • Specify passengers, seats, and payment method
  1. Access Bookings Page:

    • Click Bookings in Operations section
    • Page displays table with all bookings
  2. Search Functionality:

    • Search Box: Filter by reference number, email, or phone
    • Status Filter: Select from dropdown:
      • All Status (default)
      • Pending Payment
      • Confirmed
      • Cancelled
      • Completed
    • Results update in real-time
  3. Table Columns:

    • Reference: Unique booking identifier (6-character code)
    • Passenger: Name and contact info
    • Status: Current booking state (badge color-coded)
    • Amount: Total fare in ETB
    • Payment: Payment status indicator
    • Created: Booking date and time
  4. View Full Details:

    • Click "View Details" action button
    • Modal opens showing:
      • Booking Information (Reference, Status, Type, Created Date)
      • Passenger Information (Name, Email, Phone, ID)
      • Journey Details (Adult/Child counts, Schedule, Promo Code)
      • Payment Information (Amount, Status, Paid Date, Currency)
      • Additional Information (Source, Last Updated)
UPDATE (Modify Booking)

Current Limitations: Direct modifications limited in backoffice. For booking changes:

  1. Passenger-initiated Changes:

    • Direct passenger through passenger portal
    • Support team can assist via Support Center
  2. Admin Modifications (if needed):

    • Contact system administrator
    • Modifications logged in Audit Logs
DELETE (Remove Booking)
  1. Access Delete:

    • Click "Delete" action button on booking row
    • Confirmation dialog appears
  2. Deletion Process:

    • Dialog shows booking reference
    • Warning: "This will release all associated seats"
    • Click "Delete" to confirm
    • Seats automatically released back to availability
    • Related records (modifications, cancellations) retained for audit
  3. Undo: Not available after deletion. Action is permanent.

Additional Features

Pagination:

  • Navigate between pages at table bottom
  • Default: 20 bookings per page
  • Jump to specific page or use next/previous buttons

Bulk Actions:

  • Select multiple bookings via checkboxes (planned feature)
  • Export selected or all bookings as CSV

Export:

  • Click "Export" button in header
  • Downloads filtered bookings as spreadsheet
  • Includes all visible columns

Status Management:

  • Cancel Booking:
    • Available for non-completed/non-cancelled bookings
    • Automatically processes refund (80% refund for confirmed, 0% for pending)
    • Updates payment status

Passengers

Purpose: Manage passenger profiles, view details, and track passenger information
Access Level: Agent, Supervisor, Admin
Icon: Users

Features Overview

┌──────────────────────────────┐
│   PASSENGERS MANAGEMENT      │
├──────────────────────────────┤
│ ✓ View Passenger Profiles    │
│ ✓ Search & Filter            │
│ ✓ Verifayda Status Check     │
│ ✓ Booking History            │
│ ✓ Loyalty Information         │
│ ✓ Wallet Balance             │
└──────────────────────────────┘

CRUD Operations

READ (List & Filter)
  1. Access Passengers Page:

    • Click Passengers in Operations section
    • Displays passenger listing with filters
  2. Search Options:

    • Search Box: Filter by name, email, phone, or ID
    • Nationality Filter: Ethiopian, Djiboutian, Other
    • Verifayda Status: Verified, Unverified, All
    • Loyalty Tier: Bronze, Silver, Gold, Platinum
  3. Passenger Information Displayed:

    • Full Name
    • Email & Phone
    • Nationality
    • Verifayda Verification Status
    • Loyalty Tier
    • Wallet Balance
    • Total Bookings
    • Registration Date
VIEW DETAILS
  1. Click Passenger Row:

    • Opens detailed profile modal
    • Sections included:
      • Account Information: Email, Phone, Nationality, Registration Date
      • Verification Status: Fayd Status, Last Verified Date
      • Loyalty Information: Tier, Points Balance, Lifetime Points
      • Wallet: Current Balance, Currency
      • Booking History: List of all bookings with links
  2. Quick Actions:

    • View booking details
    • Check loyalty rewards available
    • View wallet transaction history

UPDATE (Modify Passenger)

Current Status: Read-only in backoffice
To Modify: Passengers update via their portal or contact support

DELETE (Remove Passenger)

Not Recommended: Deletes all associated data
Alternative: Deactivate account (contact admin)


Tickets

Purpose: Manage ticket generation, distribution, and validation
Access Level: Supervisor, Admin
Icon: FileText

Features Overview

┌──────────────────────────────┐
│      TICKETS MANAGEMENT      │
├──────────────────────────────┤
│ ✓ View All Tickets           │
│ ✓ Search by Reference        │
│ ✓ Check Validation Status    │
│ ✓ Resend Tickets             │
│ ✓ Generate Report            │
└──────────────────────────────┘

CRUD Operations

READ (List & View)
  1. Access Tickets Page:

    • Click Tickets in Operations section
    • Shows all issued tickets
  2. Search & Filter:

    • Booking Reference: Find tickets by booking
    • Status: Confirmed, Validated, Cancelled
    • Date Range: Filter by issue or validation date
    • Passenger Name: Quick search by name
  3. Ticket Information:

    • Booking Reference
    • Passenger Name
    • QR Code / Barcode
    • Trip Details (Train, Stations, Times)
    • Seat Information
    • Issue Date
    • Validation Status
VIEW FULL TICKET
  1. Click View Button:

    • Opens ticket details modal
    • Shows:
      • QR/Barcode payload
      • Full passenger manifest
      • Seat assignments
      • Fare breakdown
      • Payment confirmation
  2. Download/Print:

    • Generate PDF for printing
    • Send to passenger email
    • Save to system
VALIDATION STATUS
  1. Gate Validation:

    • Unvalidated: Ticket not yet scanned at gate
    • Validated: Scanned and approved for boarding
    • Cancelled: Ticket cancelled or expired
  2. Validation History:

    • View gate validation logs
    • See timestamp and validator ID
    • Track validation attempts

Master Data Management

Stations

Purpose: Configure railway stations and maintain station information
Access Level: Supervisor, Admin
Icon: MapPin

Features Overview

┌──────────────────────────────┐
│     STATIONS MANAGEMENT      │
├──────────────────────────────┤
│ ✓ Add New Stations           │
│ ✓ Edit Station Details       │
│ ✓ Manage Operational Status  │
│ ✓ Delete Stations            │
│ ✓ Bulk Import                │
└──────────────────────────────┘

Station Information

Each station includes:

  • Code: Unique 3-letter airport-style code (e.g., ADD, DJI)
  • Name: Full station name
  • City: Location city
  • Country Code: Country identifier (ET, DJ)
  • Operational Status: Active/Inactive
  • Timezone: Local timezone
  • Coordinates: Latitude/Longitude for mapping

CRUD Operations

CREATE
  1. Click "Add Station" button
  2. Fill Form:
    • Code (required): 3-letter unique code
    • Name (required): Station name
    • City (required): City location
    • Country Code: Country identifier
    • Latitude: Geographic coordinate
    • Longitude: Geographic coordinate
    • Timezone: Select from list
    • Operational Status: Toggle active/inactive
  3. Save: Click "Create Station"
  4. Confirmation: Station appears in list
READ
  1. View Station List:

    • All stations displayed in table
    • Search by code, name, or city
    • Filter by operational status
  2. Columns:

    • Code
    • Name
    • City
    • Country
    • Operational Status (badge)
    • Creation Date
UPDATE
  1. Click "Edit" on station row
  2. Modify Fields:
    • All fields editable
    • Changes reflected immediately
  3. Save: Click "Update Station"
  4. Audit: Changes logged
DELETE
  1. Click "Delete" on station row
  2. Confirmation: Dialog warns about:
    • Routes using this station
    • Schedules affected
    • Passenger trips dependent
  3. Confirm: Only with explicit consent

Trains

Purpose: Manage fleet of trains and their configurations
Access Level: Supervisor, Admin
Icon: Train

Features Overview

┌──────────────────────────────┐
│      TRAINS MANAGEMENT       │
├──────────────────────────────┤
│ ✓ Add New Trains             │
│ ✓ Edit Train Details         │
│ ✓ Manage Coaches             │
│ ✓ Track Status               │
│ ✓ Archive Trains             │
└──────────────────────────────┘

Train Information

Each train includes:

  • Number: Unique train identifier (e.g., T-001)
  • Name: Display name
  • Operator: Operating company
  • Description: Train details/notes
  • Status: Active/Inactive
  • Total Coaches: Count of attached coaches

CRUD Operations

CREATE
  1. Click "Add Train" button
  2. Fill Form:
    • Number (required): Unique identifier
    • Name (required): Display name
    • Operator (required): Operating company
    • Description: Optional notes
    • Status: Toggle Active/Inactive
  3. Save: Click "Create Train"
  4. Next Step: Assign coaches to train
READ
  1. View Train List:

    • Table shows all trains
    • Filter by status
    • Search by number or name
  2. Columns:

    • Train Number
    • Name
    • Operator
    • Status (badge)
    • Total Coaches
    • Active Status
UPDATE
  1. Click "Edit" on train row
  2. Modify Details:
    • Update name, operator, description
    • Change status
  3. Coach Management:
    • Add coaches to train
    • Remove coaches
    • Adjust coach sequence
  4. Save: Click "Update Train"
DELETE
  1. Click "Delete" on train
  2. Warning: Shows:
    • Schedules using this train
    • Active bookings affected
  3. Confirm: Only deletable if no active schedules

Coaches

Purpose: Manage coach inventory and seat configurations
Access Level: Supervisor, Admin
Icon: Grid3x3

Features Overview

┌──────────────────────────────┐
│     COACHES MANAGEMENT       │
├──────────────────────────────┤
│ ✓ Add New Coaches            │
│ ✓ Configure Seat Layout      │
│ ✓ Set Coach Type             │
│ ✓ Manage Maintenance         │
│ ✓ Bulk Import Configs        │
└──────────────────────────────┘

Coach Information

  • Number: Coach identifier (e.g., C-001)
  • Coach Type: Type selector (Standard, Sleeper, etc.)
  • Arrangement: Seat layout (2+2, 3+2, etc.)
  • Capacity: Total seats/beds
  • Status: Active/Maintenance/Inactive
  • Seat Classes: Associated seat classes

CRUD Operations

CREATE
  1. Click "Add Coach" button
  2. Fill Form:
    • Number (required): Coach ID
    • Coach Type (required): Select from types
    • Arrangement: Seat layout pattern
    • Capacity (required): Total seats
    • Status: Active/Maintenance/Inactive
  3. Seat Configuration:
    • Auto-generate seats based on arrangement
    • Or manually configure seat map
  4. Save: Click "Create Coach"
READ
  1. View Coach List:

    • Table shows all coaches
    • Filter by status, type
    • Search by number
  2. Columns:

    • Coach Number
    • Type
    • Arrangement
    • Capacity
    • Status Badge
    • Assigned Train
UPDATE
  1. Click "Edit" on coach
  2. Modify:
    • Update arrangement (limited if seats occupied)
    • Change status
    • Update capacity (data migration needed)
  3. Seat Management:
    • Add/remove individual seats
    • Update seat properties (window, aisle, bed position)
  4. Save: Click "Update Coach"
DELETE
  1. Click "Delete" on coach
  2. Checks:
    • Scheduled trips using coach
    • Active bookings on seats
    • Maintenance records
  3. Confirm: If no conflicts

Seats

Purpose: Manage individual seat inventory and properties
Access Level: Supervisor, Admin
Icon: Armchair

Features Overview

┌──────────────────────────────┐
│      SEATS MANAGEMENT        │
├──────────────────────────────┤
│ ✓ View Seat Maps             │
│ ✓ Update Seat Properties     │
│ ✓ Block/Unblock Seats        │
│ ✓ Bulk Operations            │
│ ✓ Inventory Report           │
└──────────────────────────────┘

Seat Properties

  • Seat Number: Position identifier
  • Row/Column: Grid coordinates
  • Kind: Standard, Premium, Accessible
  • Type: Regular or Bed (lower/middle/upper)
  • Status: Available, Held, Booked, Blocked
  • Premium Fee: Extra charge (in ETB)
  • Properties: Window, Aisle, Bed Position

CRUD Operations

READ
  1. View Seat Maps:

    • Select coach from dropdown
    • Visual grid shows all seats
    • Color-coded by status:
      • Green: Available
      • Yellow: Held
      • Blue: Booked
      • Red: Blocked
  2. Seat Details:

    • Click seat to view properties
    • Shows occupancy history
    • Displays current booking (if occupied)
  3. Filters:

    • By coach
    • By status
    • By kind (Premium, Accessible, etc.)
UPDATE
  1. Bulk Seat Updates:
    • Select multiple seats
    • Change properties:
      • Status (block/unblock)
      • Kind (upgrade/downgrade)
      • Premium fee
  2. Individual Updates:
    • Click seat and edit
    • Update window/aisle designation
    • Modify bed position
BLOCK/UNBLOCK
  1. Block Seat:

    • Click "Block" action
    • Reason dropdown:
      • Maintenance
      • Reserved
      • Damaged
      • Other
    • Until date (optional)
    • Reason notes
  2. Unblock Seat:

    • Click "Unblock" action
    • Seat becomes available
SPECIAL OPERATIONS

CSV Import:

  • Upload CSV with seat configurations
  • Format: CoachID, Row, Column, Kind, etc.
  • Bulk creates/updates seats

CSV Export:

  • Export seat map as CSV
  • Includes all properties
  • For backup or analysis

Classes (Seat Classes)

Purpose: Define and manage seat class types and pricing tiers
Access Level: Supervisor, Admin
Icon: Settings

Features Overview

┌──────────────────────────────┐
│   SEAT CLASSES MANAGEMENT    │
├──────────────────────────────┤
│ ✓ Create Class Types         │
│ ✓ Set Base Fares             │
│ ✓ Define Fees                │
│ ✓ Manage Availability        │
│ ✓ Link Coaches               │
└──────────────────────────────┘

Seat Class Structure

  • Name: Class identifier (e.g., "Economy Regular")
  • Coach Type: Associated coach type
  • Base Fare: Per-km rate (in ETB cents)
  • Premium Fee: Flat fee per passenger (in ETB cents)
  • Insurance Fee: Flat fee per passenger (in ETB cents)
  • Active Status: Available for booking

CRUD Operations

CREATE
  1. Click "Add Class" button
  2. Fill Form:
    • Name (required): Unique class name
    • Coach Type (required): Select type
    • Base Fare (ETB) (required): Per-km rate
    • Premium Fee (ETB): Flat fee per passenger
    • Insurance Fee (ETB): Per passenger coverage fee
    • Active: Toggle to enable/disable
  3. Save: Click "Create Class"

Example:

Name: "Economy Regular"
Coach Type: "Passenger Coach"
Base Fare: 350 ETB (for full journey)
Premium Fee: 0 ETB
Insurance Fee: 5 ETB (per passenger)
Active: Yes
READ
  1. View Classes:

    • Table shows all seat classes
    • Filter by coach type
    • Search by name
  2. Columns:

    • Class Name
    • Coach Type
    • Base Fare (ETB)
    • Premium Fee (ETB)
    • Insurance Fee (ETB)
    • Active Status
    • Total Seats (across all coaches)
UPDATE
  1. Click "Edit" on class
  2. Modify:
    • Update name (if not in use)
    • Adjust base fare
    • Update premium/insurance fees
    • Toggle active status
  3. Save: Click "Update Class"
  4. Impact: Changes apply to new bookings only
DELETE
  1. Click "Delete" on class
  2. Checks:
    • Bookings using this class
    • Fare rules referencing it
    • Seats assigned to it
  3. Confirm: Only if minimal impact

Pricing Examples

Economy Regular (Standard comfort)

  • Base: 350 ETB
  • Premium: 0 ETB
  • Insurance: 5 ETB
  • Total per Adult: 355 ETB

Economy Bed (Sleeper comfort)

  • Base: 490 ETB
  • Premium: 50 ETB
  • Insurance: 10 ETB
  • Total per Adult: 550 ETB

VIP Bed (Premium sleeper)

  • Base: 630 ETB
  • Premium: 150 ETB
  • Insurance: 15 ETB
  • Total per Adult: 795 ETB

Routes

Purpose: Define railway routes with ordered station stops
Access Level: Supervisor, Admin
Icon: Route

Features Overview

┌──────────────────────────────┐
│      ROUTES MANAGEMENT       │
├──────────────────────────────┤
│ ✓ Create Routes              │
│ ✓ Add Stops                  │
│ ✓ Set Stop Distances         │
│ ✓ Configure Fare Rules       │
│ ✓ Manage Routing             │
└──────────────────────────────┘

Route Information

  • Code: Route identifier (e.g., "ADD-DJI")
  • Name: Route description
  • Stops: Ordered list of stations
  • Distance: Total route distance
  • Effective Date: Start date
  • Active Status: Available for scheduling

CRUD Operations

CREATE
  1. Click "Add Route" button
  2. Fill Form:
    • Code (required): Route code
    • Name (required): Route name
    • Effective From: Start date
    • Effective Until: End date (optional)
    • Active: Toggle status
  3. Add Stops:
    • Click "Add Stop"
    • Select station from dropdown
    • Sequence auto-assigned or manual
    • Enter distance from previous stop
  4. Save: Click "Create Route"
READ
  1. View Routes:

    • Table shows all routes
    • Filter by status
    • Search by code or name
  2. Route Details:

    • Click route to expand
    • Shows:
      • All stops in sequence
      • Cumulative distance
      • Distance between stops
      • Fare rules for route
  3. Columns:

    • Code
    • Name
    • Total Stops
    • Total Distance
    • Status Badge
    • Active Status
UPDATE
  1. Click "Edit" on route
  2. Modify Route:
    • Update name or description
    • Change effective dates
    • Toggle active status
  3. Manage Stops:
    • Add new stops
    • Remove stops (if no bookings)
    • Reorder stops (drag-and-drop)
    • Update distances
  4. Save: Click "Update Route"
DELETE
  1. Click "Delete" on route
  2. Checks:
    • Active schedules using route
    • Bookings on those schedules
  3. Confirm: If no conflicts

Route Example

Code: ADD-DJI
Name: Addis Ababa to Djibouti Main Line
Stops:
  1. Addis Ababa (ADD) - 0 km
  2. Adama (ADA) - 100 km
  3. Awash (AWS) - 50 km
  4. Dire Dawa (DDA) - 80 km
  5. Harar (HAR) - 100 km
  6. Djibouti (DJI) - 280 km

Total Distance: 610 km

Schedules

Purpose: Create and manage train schedules for specific routes
Access Level: Supervisor, Admin
Icon: Calendar

Features Overview

┌──────────────────────────────┐
│   SCHEDULES MANAGEMENT       │
├──────────────────────────────┤
│ ✓ Create Individual Schedule │
│ ✓ Bulk Generate Schedules    │
│ ✓ Edit Times & Assignments   │
│ ✓ Manage Coach Assignments   │
│ ✓ View Fare Breakdown        │
│ ✓ Delete Schedules           │
└──────────────────────────────┘

Schedule Information

  • Train: Associated train
  • Route: Assigned route
  • Departure: Date and time
  • Arrival: Date and time
  • Duration: Calculated in minutes
  • Status: Scheduled, Boarding, En Route, Arrived, Cancelled
  • Coaches: Assigned coaches with positions

CRUD Operations

CREATE - Single Schedule
  1. Click "Create Schedule" button
  2. Fill Form:
    • Train (required): Select train
    • Route (required): Select route
    • Departure (required): Date and time
    • Arrival (required): Date and time
    • Status: Scheduled (default)
  3. Assign Coaches:
    • Select coaches from list
    • Checkboxes for multi-select
    • Order matters (Position Number assigned)
  4. Save: Click "Create Schedule"
CREATE - Bulk Generate
  1. Click "Bulk Generate" button
  2. Configuration:
    • Train (required): Select train
    • Route (required): Select route
    • Start Date & Time (required): First departure
    • Duration (Hours): Trip length (default: 12)
    • Repeat Every (Days): Schedule frequency (default: 1)
    • For Next (Days): Generation period (default: 30)
    • Coaches (optional): Pre-select coaches
  3. Preview:
    • Shows calculated number of schedules
    • Example: 30 days ÷ 1 day = ~30 schedules
  4. Generate: Click "Generate Schedules"

Example:

Train: Ethio Express
Route: ADD-DJI (610 km)
Start: 2026-06-20 08:00
Duration: 12 hours
Repeat: Every 1 day
For: 30 days
Result: 30 daily schedules from June 20-July 19
READ
  1. View Schedules:

    • Table shows all schedules
    • Search by train, station, status
    • Filter by date, route, train
  2. Schedule Details:

    • Train name and number
    • From/To stations
    • Departure/Arrival times
    • Coach assignments
    • Current status (badge)
  3. Columns:

    • Train
    • From
    • To
    • Departure
    • Arrival
    • Coaches Count
    • Status Badge
UPDATE
  1. Click "Edit" on schedule
  2. Modify:
    • Departure/Arrival Times: Adjust times
    • Status: Change to Boarding, En Route, Arrived, Cancelled
    • Coach Assignment: Add/remove coaches
  3. Validation:
    • Arrival must be after departure
    • Coach conflicts checked
  4. Save: Click "Update Schedule"
DELETE
  1. Click "Delete" on schedule
  2. Warning: Shows
    • Active bookings affected
    • Seats will be released
    • Cannot be undone
  3. Confirm: Click "Delete" to proceed
  4. Cascade: Automatically deletes:
    • Associated seat holds
    • Trip live status records

Bulk Delete:

  1. Select Multiple schedules via checkboxes
  2. Click "Delete [N] Schedules"
  3. Confirm: Warning for bulk action
  4. Process: All selected deleted with cascade

Viewing Fares

  1. In Schedule Row:

    • Shows calculated fares per seat class
    • Displayed inline if space available
  2. Detailed Fare View:

    • Click schedule to expand
    • Shows:
      • All seat classes
      • Base fare per class
      • Premium/Insurance fees
      • Total per passenger

Financial Management

Pricing & Fares

Purpose: Manage complex pricing with route segments and nationality support
Access Level: Admin, Supervisor
Icon: DollarSign

Features Overview

┌──────────────────────────────┐
│   PRICING & FARES MGMT       │
├──────────────────────────────┤
│ ✓ View Schedule Fares        │
│ ✓ Create Segment Fares       │
│ ✓ Edit Fare Rules            │
│ ✓ Delete Fare Rules          │
│ ✓ Nationality Override       │
│ ✓ Passenger Type Pricing     │
└──────────────────────────────┘

Pricing Structure

Fare Components:

  1. Base Fare: Per-km rate × distance
  2. Premium Fee: Flat fee per passenger (e.g., 50 ETB)
  3. Insurance Fee: Flat fee per passenger (e.g., 5 ETB)
  4. Total Fare: Base + Premium + Insurance

Passenger Categories:

  • ADULT (5+ years): Pays 100% of fare
  • CHILD (<5 years): First child FREE, subsequent pay 100%

CRUD Operations - Schedule Fares

VIEW SCHEDULE FARES
  1. Select Schedule:

    • Dropdown to choose schedule
    • Shows train, route, date
  2. View Fares:

    • Table shows calculated fares
    • "Dynamically calculated" disclaimer
    • Includes all active seat classes
  3. Columns:

    • Seat Class
    • Passenger Type (All/ADULT/CHILD)
    • Fare (ETB)
    • Nationality (All/Specific)
    • Route
    • Valid From/Until
ADD OVERRIDE FARE
  1. Click "Add Fare Rule" button
  2. Fill Form:
    • Schedule (optional): Leave empty for global
    • Route Code (optional): e.g., "ADD-DJI"
    • Seat Class (required): Select from list
    • Fare (ETB) (required): Price in Ethiopian Birr
    • Passenger Type (optional): ADULT or CHILD
    • Nationality (optional): Ethiopian, Djiboutian, Other
    • Valid From (required): Start date
    • Valid Until (optional): End date
  3. Save: Click "Save Fare Rule"

Example Override:

Seat Class: VIP Bed
Base Fare: 630 ETB (for full route)
Passenger Type: ADULT
Nationality: All
Valid From: 2026-06-01
Valid Until: 2026-08-31
Purpose: High season pricing
EDIT FARE RULE
  1. Click "Edit" on fare row
  2. Modify Fields:
    • Update fare amount
    • Change dates
    • Adjust nationality/type filters
  3. Save: Click "Update Fare Rule"
DELETE FARE RULE
  1. Click "Delete" on fare row
  2. Confirm: Click "Delete" in dialog
  3. Impact: Removed immediately for new bookings

CRUD Operations - Segment Fares

Segment fares allow different pricing for different route segments.

VIEW SEGMENT FARES
  1. Select Route:

    • Dropdown to choose route
    • Shows route code and name
    • Displays all stops in sequence
  2. View Fares:

    • Table shows segment fare rules
    • Organized by origin/destination stops
  3. Columns:

    • Segment (Stop sequence → Sequence)
    • Seat Class
    • Passenger Type
    • Fare (ETB)
    • Nationality
    • Valid From/Until
CREATE SEGMENT FARE
  1. Click "Add Fare Rule" button
  2. Tab: Switch to "Segment Fares"
  3. Fill Form:
    • Origin Station (required): From station dropdown
    • Destination Station (required): To station dropdown
    • Seat Class (required): Select class
    • Fare (ETB) (required): Segment price
    • Passenger Type (optional): ADULT or CHILD
    • Nationality (optional): Specific nationality
    • Valid From (required): Effective date
    • Valid Until (optional): End date
  4. Validation:
    • Destination must be after origin
    • Stations must be on route
  5. Save: Click "Save Segment Fare Rule"

Example Segment Fares:

Route: ADD-DJI (5 stops)

Segment 1: ADD → ADA (100 km)
  Economy: 150 ETB
  VIP: 300 ETB

Segment 2: ADA → DDA (130 km)
  Economy: 200 ETB
  VIP: 400 ETB

Segment 3: DDA → DJI (280 km)
  Economy: 250 ETB
  VIP: 500 ETB
UPDATE SEGMENT FARE
  1. Click "Edit" on segment row
  2. Modify:
    • Change stations (if no bookings)
    • Update fare
    • Adjust dates
  3. Save: Click "Update Segment Fare Rule"
DELETE SEGMENT FARE
  1. Click "Delete" on segment row
  2. Confirm: Delete dialog
  3. Removed: Immediately applied

Pricing Priority

When calculating fares, system checks in this order:

1. Segment Fare (nationality-specific if exists)
2. Segment Fare (generic for segment)
3. Schedule Fare (nationality-specific if exists)
4. Schedule Fare (generic for schedule)
5. Default Fare (350 ETB)

Currencies

Purpose: Manage currency exchange rates for multi-currency display
Access Level: Admin
Icon: Banknote

Features Overview

┌──────────────────────────────┐
│   CURRENCIES MANAGEMENT      │
├──────────────────────────────┤
│ ✓ View Exchange Rates        │
│ ✓ Create New Rates           │
│ ✓ Edit Rates                 │
│ ✓ Delete Rates               │
│ ✓ Sync from API              │
│ ✓ Set Effective Dates        │
└──────────────────────────────┘

Supported Currencies

Code Currency Symbol Type
ETB Ethiopian Birr ብር Transaction (base)
DJF Djiboutian Franc Fdj Display
USD US Dollar $ Display

Currency Information

  • From Currency: Source (usually ETB)
  • To Currency: Target (DJF, USD, etc.)
  • Rate: Exchange multiplier (e.g., 1 ETB = 0.018 USD)
  • Effective Date: When rate takes effect
  • Source: Manual or API

CRUD Operations

READ (List Exchange Rates)
  1. Access Currencies Page:

    • Click Currencies in Financial section
    • Shows all active exchange rates
  2. Table Columns:

    • From Currency
    • To Currency
    • Exchange Rate
    • Effective Date
    • Source (Manual/API)
    • Last Updated
  3. View Details:

    • Hover rate to see precision
    • Historical rates available
CREATE
  1. Click "Add Currency Rate" button
  2. Fill Form:
    • From Currency (required): ETB (usually)
    • To Currency (required): DJF or USD
    • Exchange Rate (required): Decimal value
    • Effective Date (required): Date to apply
    • Source: Manual (default) or API
  3. Save: Click "Create Rate"

Example:

From: ETB
To: USD
Rate: 0.018
Effective: 2026-06-15
Source: Manual (updated daily)
UPDATE
  1. Click "Edit" on exchange rate
  2. Modify:
    • Update rate value
    • Change effective date
    • Update source
  3. Save: Click "Update Rate"
  4. Impact: Applies to future bookings/display
DELETE
  1. Click "Delete" on rate
  2. Confirm: Dialog confirmation
  3. Impact: Next rate in history used

Rate Conversion Example

For a 3,500 ETB booking, display in different currencies:

  • ETB: 3,500 (1:1)
  • DJF: 11,375 (1:3.25 rate)
  • USD: 63 (1:0.018 rate)

Payments

Purpose: Monitor payment transactions and handle refunds
Access Level: Supervisor, Admin
Icon: CreditCard

Features Overview

┌──────────────────────────────┐
│     PAYMENTS MANAGEMENT      │
├──────────────────────────────┤
│ ✓ View All Payments          │
│ ✓ Track Payment Status       │
│ ✓ Process Refunds            │
│ ✓ View Webhooks              │
│ ✓ Transaction History        │
│ ✓ Failed Payment Handling    │
└──────────────────────────────┘

Payment Methods

Supported payment providers:

  • Telebirr: Mobile money (Ethiopia)
  • CBE Birr: Commercial Bank (Ethiopia)
  • eBirr: E-wallet (Ethiopia)
  • Card: Credit/Debit cards (VISA, Mastercard)
  • Wallet: Internal EDR wallet
  • WAAFI: Money transfer service

Payment Statuses

  • Requires Action: Awaiting customer input
  • Processing: Payment being processed
  • Succeeded: Payment completed
  • Failed: Payment declined
  • Cancelled: Payment cancelled by user
  • Refunded: Payment refunded to customer

CRUD Operations

READ (List Payments)
  1. Access Payments Page:

    • Click Payments in Financial section
    • Shows all payment transactions
  2. Search & Filter:

    • Search Box: Booking reference, transaction ID
    • Status Filter: Succeeded, Failed, Processing, Refunded
    • Method Filter: Payment provider
    • Date Range: Filter by transaction date
  3. Payment Information:

    • Booking Reference
    • Payment Method
    • Amount (ETB)
    • Status (badge)
    • Transaction ID
    • Date & Time
VIEW DETAILS
  1. Click Payment Row:
    • Opens transaction detail modal
    • Shows:
      • Payment Intent ID
      • Booking Information
      • Amount & Currency
      • Method & Provider
      • Provider Transaction ID
      • Status & Timeline
      • Webhook History
PROCESS REFUND
  1. On Failed/Completed Payment:

    • Click "Process Refund" action
    • Dialog opens for confirmation
  2. Refund Form:

    • Amount: Pre-filled or custom
    • Reason: Dropdown (Cancellation, Adjustment, Error, etc.)
    • Notes: Optional explanation
  3. Process: Click "Process Refund"

  4. Confirmation: Shows refund processing

Refund Status:

  • Pending: Awaiting processor
  • Processing: In transit
  • Completed: Credited to customer
  • Failed: Retry or manual intervention
WEBHOOK MANAGEMENT
  1. View Webhooks:

    • Click "Webhook History" tab
    • Shows payment provider callbacks
  2. Webhook Details:

    • Event timestamp
    • Webhook payload
    • Processing status
    • Error details (if failed)

Promo Codes

Purpose: Create and manage promotional discount codes
Access Level: Admin, Supervisor
Icon: Gift

Features Overview

┌──────────────────────────────┐
│    PROMO CODES MANAGEMENT    │
├──────────────────────────────┤
│ ✓ Create Promo Codes         │
│ ✓ Set Discount Types         │
│ ✓ Configure Validity         │
│ ✓ Edit Codes                 │
│ ✓ Deactivate Codes           │
│ ✓ Track Usage                │
└──────────────────────────────┘

Promo Code Information

  • Code: Unique promotional code (e.g., "SUMMER20")
  • Discount Type: Percentage or fixed amount
  • Value: Discount percentage (%) or ETB amount
  • Valid Until: Expiration date
  • Active Status: Available for use
  • CTA Label: Button text (optional)

CRUD Operations

CREATE
  1. Click "Add Promo Code" button
  2. Fill Form:
    • Code (required): Unique code (uppercase)
    • Title: Display title
    • Subtitle: Promotional message
    • Discount Type (required): Percentage or Amount
    • Value (required): Discount % or ETB amount
    • Valid Until (required): Expiration date
    • CTA Label (optional): Button text
    • Deep Link (optional): App link
    • Active: Toggle status
  3. Save: Click "Create Promo Code"

Example:

Code: SUMMER20
Title: Summer Getaway
Discount Type: Percentage
Value: 20
Valid Until: 2026-08-31
Active: Yes
READ (List Codes)
  1. View Promo Codes:

    • Table shows all promo codes
    • Filter by status (Active/Inactive)
    • Search by code
  2. Columns:

    • Code
    • Title
    • Discount (% or ETB)
    • Valid Until
    • Status Badge
    • Total Uses
    • Savings Generated
UPDATE
  1. Click "Edit" on promo code
  2. Modify:
    • Update title/subtitle
    • Change discount value
    • Extend/shorten validity
    • Toggle active status
  3. Save: Click "Update Promo Code"
DELETE/DEACTIVATE
  1. Click "Delete" on code
  2. Options:
    • Archive: Keep for audit, disable for new bookings
    • Delete: Remove completely
  3. Confirm: Dialog confirmation
  4. Impact: Already used bookings keep discount

Usage Tracking

  1. View Code Usage:

    • Click code to expand
    • Shows:
      • Total times used
      • Total discount dispensed
      • Recent applications
  2. Analytics:

    • Revenue impact
    • Passenger uptake
    • Peak usage periods

Customer Services

Loyalty Program

Purpose: Manage passenger loyalty tiers and rewards
Access Level: Agent, Supervisor, Admin
Icon: Gift

Features Overview

┌──────────────────────────────┐
│  LOYALTY PROGRAM MANAGEMENT  │
├──────────────────────────────┤
│ ✓ View Loyalty Accounts      │
│ ✓ Check Points Balance       │
│ ✓ Manage Tier Status         │
│ ✓ Adjust Points              │
│ ✓ Manage Rewards             │
│ ✓ View History               │
└──────────────────────────────┘

Loyalty Tiers

Tier Points Required Benefits
BRONZE 0-999 Standard benefits
SILVER 1,000-2,999 +5% points bonus
GOLD 3,000-4,999 +10% points bonus
PLATINUM 5,000+ +15% points bonus, Priority support

Points Earning

  • Per Booking: 1 point per 100 ETB spent
  • Bonus: Tier multiplier (5-15%)
  • Promotions: Additional bonus campaigns
  • Expiry: Annual expiration if inactive

CRUD Operations

READ (View Accounts)
  1. Access Loyalty Page:

    • Click Loyalty Program in Customer Services
    • Shows all passenger loyalty accounts
  2. Search & Filter:

    • Search: Passenger name or email
    • Tier Filter: BRONZE, SILVER, GOLD, PLATINUM
    • Sort: Points balance, tier status, activity
  3. Account Information:

    • Passenger Name
    • Current Tier (badge)
    • Points Balance
    • Lifetime Points
    • Last Activity
    • Member Since
VIEW DETAILS
  1. Click Account Row:

    • Opens loyalty detail modal
    • Shows:
      • Account information
      • Points balance breakdown
      • Tier history
      • Redemption history
      • Available rewards
  2. Points Breakdown:

    • Current balance
    • Pending expiry points
    • Tier multiplier applied
UPDATE ACCOUNT
  1. Manual Point Adjustment (Admin only):

    • Click "Adjust Points" on account
    • Dialog opens
    • Enter points to add/subtract
    • Reason dropdown (Bonus, Correction, Promotion, etc.)
    • Click "Apply"
  2. Tier Management:

    • System auto-promotes/demotes based on points
    • Manual override available (Admin)
MANAGE REWARDS
  1. View Available Rewards:

    • Shows reward catalog
    • Points cost per reward
    • Availability
  2. Assign Rewards:

    • Select reward from list
    • Specify quantity
    • Click "Grant Reward"
    • Confirmation email sent to passenger

Support Center

Purpose: Manage customer support tickets and conversations
Access Level: Agent, Supervisor, Admin
Icon: MessageSquare

Features Overview

┌──────────────────────────────┐
│    SUPPORT CENTER MGMT       │
├──────────────────────────────┤
│ ✓ View Support Tickets       │
│ ✓ Respond to Inquiries       │
│ ✓ Manage Conversations       │
│ ✓ FAQ Management             │
│ ✓ Live Chat Monitoring       │
│ ✓ Ticket Analytics           │
└──────────────────────────────┘

Support Ticket Structure

  • Ticket ID: Unique identifier
  • Status: Open, Resolved, Closed
  • Passenger: Linked passenger
  • Subject: Inquiry topic
  • Messages: Conversation thread
  • Assigned Agent: Support staff member
  • Created Date: Ticket creation
  • Resolved Date: When closed (if applicable)

CRUD Operations

READ (List Tickets)
  1. Access Support Page:

    • Click Support Center in Customer Services
    • Shows all support tickets
  2. View Options:

    • Tab 1: Open Tickets (unresolved)
    • Tab 2: All Conversations (open & closed)
    • Tab 3: FAQ Management
  3. Search & Filter:

    • Status: Open, Resolved, Closed
    • Assigned To: Support agent filter
    • Search: Ticket ID, passenger name
    • Date Range: Filter by creation date
  4. Ticket List Columns:

    • Ticket ID
    • Passenger Name
    • Subject
    • Status Badge
    • Last Message
    • Created Date
    • Assigned Agent
VIEW CONVERSATION
  1. Click Ticket Row:

    • Opens conversation thread modal
    • Shows message history
  2. Conversation Details:

    • All messages in chronological order
    • Sender identification (Agent/Customer)
    • Timestamps
    • Attachments (if any)
  3. Message Sidebar:

    • Passenger info
    • Ticket metadata
    • Linked bookings
UPDATE (Add Response)
  1. Click Ticket:

    • View current conversation
  2. Reply to Ticket:

    • Type message in compose area
    • Optionally add attachments
    • Click "Send Response"
    • Message sent to passenger
  3. Status Management:

    • Mark as "Resolved"
    • Change assignment
    • Add notes
CLOSE TICKET
  1. Mark as Resolved:

    • Click "Mark Resolved" button
    • Passenger notified
    • Ticket moved to closed
  2. Reopen:

    • If passenger responds, auto-reopens
    • Or manually reopen if needed

FAQ Management

  1. View FAQ Articles:

    • Tab: "FAQ Management"
    • Shows all published FAQs
  2. Create FAQ:

    • Click "Add FAQ Article"
    • Select category
    • Enter question & answer
    • Publish
  3. Edit/Delete:

    • Edit existing articles
    • Archive outdated articles

Notifications

Purpose: Configure and send notifications to passengers
Access Level: Supervisor, Admin
Icon: Bell

Features Overview

┌──────────────────────────────┐
│  NOTIFICATIONS MANAGEMENT    │
├──────────────────────────────┤
│ ✓ View Notification Log      │
│ ✓ Configure Templates        │
│ ✓ Send Manual Notifications  │
│ ✓ Set Preferences            │
│ ✓ View Delivery Status       │
│ ✓ Analytics                  │
└──────────────────────────────┘

Notification Channels

  • Email: Direct email delivery
  • SMS: Text message delivery
  • Push Notification: Mobile app push
  • In-App: Platform notifications

Notification Templates

Pre-configured templates for:

  • Booking Confirmation: "Your booking is confirmed"
  • Ticket Issued: "Your ticket is ready"
  • Payment Received: "Payment received successfully"
  • Trip Reminder: "Your trip is tomorrow"
  • Delay Alert: "Trip delayed by X minutes"
  • Promo: Special offers and discounts

CRUD Operations

READ (View Notifications)
  1. Access Notifications:

    • Click Notifications in Customer Services
    • Shows notification log
  2. Search & Filter:

    • Recipient: Passenger name/email
    • Status: Sent, Failed, Pending
    • Channel: Email, SMS, Push
    • Date Range: Filter by send date
  3. Notification Details:

    • Recipient
    • Template used
    • Channel(s)
    • Status
    • Sent Date/Time
    • Delivery confirmation
SEND MANUAL NOTIFICATION
  1. Click "Send Notification" button
  2. Select Recipients:
    • Specific passenger or group
    • Filters: Booking status, tier, loyalty, etc.
  3. Choose Template:
    • Select from templates
    • Or custom message
  4. Configure:
    • Select channels (Email, SMS, Push)
    • Schedule send time
    • Add personalization
  5. Preview: Show how it looks
  6. Send: Click "Send Notification"

Example:

Recipients: All PLATINUM tier passengers
Template: Special Promo - 15% Discount
Channels: Email, Push Notification
Send: Immediately
MANAGE TEMPLATES
  1. View Templates Tab:

    • Shows all notification templates
    • Filter by channel
  2. Edit Template:

    • Click template to edit
    • Modify subject/body
    • Add placeholders {{name}}, {{bookingRef}}
    • Save
  3. Create New Template:

    • Click "Add Template"
    • Template code
    • Channels (multi-select)
    • Subject & body
    • Variables/placeholders
    • Save
DELIVERY TRACKING
  1. View Delivery Status:

    • Notification details show status per channel
    • Timestamp for each delivery
  2. Retry Failed:

    • Failed notifications show retry option
    • Click "Retry" to resend
    • Max retries: 3

Security & Compliance

Audit Logs

Purpose: Monitor all system activities for compliance and security
Access Level: Supervisor, Admin
Icon: AlertTriangle

Features Overview

┌──────────────────────────────┐
│      AUDIT LOGS MGMT         │
├──────────────────────────────┤
│ ✓ View All Activities        │
│ ✓ Filter by User             │
│ ✓ Search by Entity           │
│ ✓ View Change History        │
│ ✓ Export Audit Trail         │
│ ✓ Compliance Reports         │
└──────────────────────────────┘

Logged Activities

  • User Actions: Login, logout, access
  • Data Changes: Create, update, delete operations
  • Sensitive Actions: Payment processing, cancellations, refunds
  • Authentication: Failed logins, password resets
  • System Events: Configuration changes, deployments

Audit Record Structure

  • Timestamp: When action occurred
  • User: Who performed action
  • Action: Type of action (Create, Update, Delete)
  • Entity: What was affected (Booking, Payment, etc.)
  • Entity ID: ID of affected record
  • Old Data: Previous values (for updates)
  • New Data: New values (for updates)
  • IP Address: Source IP
  • User Agent: Browser/client info

CRUD Operations

READ (View Audit Log)
  1. Access Audit Logs:

    • Click Audit Logs in Security & Compliance
    • Shows all logged activities
  2. Search & Filter:

    • User Filter: Specific user/agent
    • Action Filter: Create, Update, Delete, View
    • Entity Filter: Booking, Payment, Passenger, etc.
    • Date Range: Filter by timestamp
    • Search: Entity ID or description
  3. Log Columns:

    • Timestamp
    • User (Name, Email)
    • Action (badge)
    • Entity Type
    • Entity ID
    • Summary
    • IP Address
VIEW DETAILS
  1. Click Log Entry:

    • Opens full audit detail modal
    • Shows:
      • All metadata
      • Old vs New values (side-by-side)
      • Complete change log
      • IP/User Agent details
  2. Change Visualization:

    • Highlights changed fields
    • Shows before/after values
    • Timestamp precision
EXPORT AUDIT TRAIL
  1. Click "Export" button
  2. Select Options:
    • Format: CSV, JSON, PDF
    • Date Range: Custom range
    • Filters: Apply current filters
  3. Download: File starts downloading
  4. Compliance: Keep for regulatory requirements
AUDIT RETENTION
  • Active Logs: 12 months
  • Archived: 7 years (for compliance)
  • Automatic Archival: Monthly process
  • GDPR Compliance: Subject to retention policies

Fraud Detection

Purpose: Monitor and prevent fraudulent activities
Access Level: Supervisor, Admin
Icon: Shield

Features Overview

┌──────────────────────────────┐
│  FRAUD DETECTION MGMT        │
├──────────────────────────────┤
│ ✓ View Fraud Alerts          │
│ ✓ Configure Rules            │
│ ✓ Block Suspicious Users     │
│ ✓ Review Flagged Bookings    │
│ ✓ Adjust Risk Thresholds     │
│ ✓ Incident Response          │
└──────────────────────────────┘

Fraud Detection Rules

  • Rapid Bookings: Multiple bookings in short timeframe
  • High Value: Unusually large transactions
  • Geographic Anomaly: Bookings from unlikely locations
  • Payment Failures: Multiple failed payment attempts
  • Duplicate Identity: Same ID used multiple times
  • Unusual Pattern: Deviation from normal behavior

Alert Severity

  • LOW: Review before processing
  • MEDIUM: Requires manual approval
  • HIGH: Immediate blocking recommended

CRUD Operations

READ (View Alerts)
  1. Access Fraud Detection:

    • Click Fraud Detection in Security & Compliance
    • Shows active fraud alerts
  2. Alert List:

    • Filter by severity (Low, Medium, High)
    • Filter by status (Open, Acknowledged, Resolved)
    • Search by user ID, booking ref
  3. Alert Information:

    • Alert ID
    • User/Passenger
    • Severity (badge color)
    • Event Type (rule triggered)
    • Timestamp
    • Status
VIEW ALERT DETAILS
  1. Click Alert Row:

    • Opens alert detail modal
    • Shows:
      • Full context information
      • Triggering rule details
      • Rules triggered list
      • Recommended action
      • User history
  2. Risk Assessment:

    • Risk score (0-100)
    • Contributing factors
    • Historical pattern
ACKNOWLEDGE ALERT
  1. Click "Acknowledge":

    • Alert marked as reviewed
    • Timestamp recorded
    • Can still take action
  2. Add Notes:

    • Click "Add Investigation Notes"
    • Document findings
    • Save
TAKE ACTION

Allow Booking:

  1. Click "Allow" button
  2. Booking proceeds despite alert
  3. Logged for audit

Block User:

  1. Click "Block User" button
  2. Enter block duration
  3. Reason dropdown:
    • Fraud Suspected
    • Multiple Failed Payments
    • Suspicious Pattern
    • Manual Review Needed
  4. Confirm
  5. User cannot book during block period

Escalate:

  1. Click "Escalate to Admin"
  2. Adds to priority queue
  3. Admin reviews and decides
MANAGE FRAUD RULES
  1. View Rules Tab:

    • Shows all active fraud detection rules
    • Rule thresholds
    • Triggering conditions
  2. Edit Rules:

    • Click rule to edit
    • Adjust threshold values
    • Change rule status (Active/Inactive)
    • Save

Example Rules:

Rule: Rapid Bookings
Condition: >5 bookings in 1 hour
Severity: Medium
Action: Flag for review

Rule: High Value Transaction
Condition: Amount > 100,000 ETB
Severity: Low
Action: Monitor

Rule: Failed Payments
Condition: >3 failed in 24 hours
Severity: High
Action: Block user

Verifayda Integration

Purpose: Manage Ethiopian national ID verification service
Access Level: Admin
Icon: UserCheck

Features Overview

┌──────────────────────────────┐
│  VERIFAYDA INTEGRATION MGMT  │
├──────────────────────────────┤
│ ✓ View Verification Status   │
│ ✓ Verify Manual ID           │
│ ✓ Check Verification Log     │
│ ✓ Manage Integration         │
│ ✓ Configuration              │
│ ✓ Test Integration           │
└──────────────────────────────┘

Verifayda Overview

  • Service: Ethiopian government national ID verification
  • Real-time: Live verification with government database
  • Privacy: National IDs NOT stored (policy compliant)
  • Non-Ethiopian: Passport alternative (no verification)

Verification Status

  • Verified: Successfully matched with government DB
  • Unverified: Failed or not attempted
  • Pending: In-progress verification
  • Failed: Temporary error, can retry

CRUD Operations

READ (View Verifications)
  1. Access Verifayda Page:

    • Click Verifayda Integration in Security & Compliance
    • Shows verification history
  2. Search & Filter:

    • Search: Passenger name, national ID
    • Status: Verified, Unverified, Pending, Failed
    • Date Range: Filter by verification date
  3. Verification Record:

    • Passenger Name
    • National ID (masked)
    • Verification Status (badge)
    • Verified Name (from government DB)
    • Date of Birth
    • Nationality
    • Verified Date
VERIFY NATIONAL ID
  1. Manual Verification:

    • Click "Verify ID" button
    • Enter National ID number
    • Click "Verify"
  2. Verification Process:

    • Sends to Verifayda API
    • Checks against government database
    • Returns: Name, DOB, Nationality
  3. Result:

    • Success: Shows verified data
    • Failed: Shows error reason
    • Retry: Can attempt again
VIEW VERIFICATION DETAILS
  1. Click Verification Record:
    • Opens detail modal
    • Shows:
      • Verification timestamp
      • Request payload
      • Response data
      • Verification match score
      • Linked bookings

Analytics & Reports

Reports

Purpose: View comprehensive analytics and business reports
Access Level: Supervisor, Admin
Icon: BarChart3

Features Overview

┌──────────────────────────────┐
│      REPORTS ANALYTICS       │
├──────────────────────────────┤
│ ✓ Revenue Reports            │
│ ✓ Occupancy Analysis         │
│ ✓ Agent Performance          │
│ ✓ Passenger Analytics        │
│ ✓ Custom Date Range          │
│ ✓ Export Reports             │
└──────────────────────────────┘

Report Types

Revenue Report:

  • Total revenue (ETB)
  • Revenue by route
  • Revenue by seat class
  • Revenue by payment method
  • Trends over time
  • Promo code impact

Occupancy Report:

  • Seat occupancy %
  • Capacity utilization
  • Empty seats cost
  • Occupancy by route
  • Occupancy trends
  • Peak/off-peak analysis

Agent Performance:

  • Counter bookings
  • Commission earned
  • Sales by period
  • Customer satisfaction
  • Performance ranking

Passenger Analytics:

  • New passengers
  • Repeat passenger rate
  • Loyalty program stats
  • Regional distribution
  • Device/platform breakdown

CRUD Operations

GENERATE REPORT
  1. Access Reports Page:

    • Click Reports in Analytics & Reports
    • Multiple report options available
  2. Select Report Type:

    • Revenue
    • Occupancy
    • Agent Performance
    • Passenger Analytics
  3. Configure Report:

    • Date Range: From/To dates (required)
    • Route Filter (optional): Specific route or all
    • Filters (optional): Additional criteria
    • Group By: Day, Week, Month, Year
  4. Generate: Click "Generate Report"

  5. Display: Charts and tables appear

VIEW REPORT DETAILS
  1. Charts:

    • Line charts for trends
    • Bar charts for comparisons
    • Pie charts for distribution
  2. Tables:

    • Detailed data rows
    • Sortable columns
    • Pagination for large datasets
  3. Export Options:

    • Download as PDF
    • Download as Excel
    • Download as CSV
    • Schedule recurring export
CUSTOMIZE REPORT
  1. Add Metrics:

    • Click "Add Metric"
    • Select from available metrics
    • Charts update
  2. Change Date Range:

    • Click date range selector
    • Pick new dates
    • Report regenerates
  3. Save Report:

    • Click "Save Report"
    • Name the report
    • Can rerun with one click

Operational Reports

Purpose: View system operational metrics and performance
Access Level: Supervisor, Admin
Icon: FileText

Features Overview

┌──────────────────────────────┐
│  OPERATIONAL REPORTS MGMT    │
├──────────────────────────────┤
│ ✓ System Health Status       │
│ ✓ API Performance            │
│ ✓ Error Rates               │
│ ✓ Data Sync Status          │
│ ✓ Scheduled Reports         │
│ ✓ Export History            │
└──────────────────────────────┘

Operational Metrics

  • System Uptime: Percentage
  • API Response Time: Average ms
  • Error Rate: % of failed requests
  • Data Sync Status: Last sync time
  • Scheduled Jobs: Status of cron tasks
  • Storage Usage: Database size, disk usage

CRUD Operations

READ (View Operations Status)
  1. Access Operational Reports:

    • Click Operational Reports in Analytics & Reports
    • Shows current system health
  2. Health Dashboard:

    • System status indicators
    • Key metrics
    • Recent issues (if any)
  3. Performance Metrics:

    • API response times
    • Database query times
    • Error logs
    • Job execution times

System Administration

Agent Operations

Purpose: Manage agent counter bookings and shifts
Access Level: Supervisor, Admin
Icon: Briefcase

Features Overview

┌──────────────────────────────┐
│   AGENT OPERATIONS MGMT      │
├──────────────────────────────┤
│ ✓ Create Bookings            │
│ ✓ Manage Shifts              │
│ ✓ Track Commissions          │
│ ✓ Reconciliation             │
│ ✓ Cash Management            │
│ ✓ Agent Performance          │
└──────────────────────────────┘

Agent Functions

  • Counter Booking: Create bookings on behalf of passengers
  • Shift Management: Open/close shifts and cash handling
  • Commission Tracking: Monitor earnings
  • Reconciliation: Daily settlement

CRUD Operations

CREATE COUNTER BOOKING
  1. Access Agent Bookings:

    • Click Agent Operations in System section
    • Click "New Booking" button
  2. Booking Form:

    • Select Schedule: Choose train and date
    • Select Seats: Pick available seats
    • Add Passengers: Enter passenger details
    • Select Class: Seat class preference
    • Apply Promo: If applicable
  3. Payment:

    • Payment Method: Cash, Card, Check, etc.
    • Amount Received (for cash)
    • Change Calculation: Auto-calculated
  4. Process:

    • Click "Create Booking"
    • Confirmation with booking reference
    • Ticket printed or emailed
MANAGE SHIFTS
  1. Open Shift:

    • Click "Open Shift"
    • Enter opening balance (cash)
    • Click "Start Shift"
  2. Close Shift:

    • Click "Close Shift"
    • Verify final cash
    • Enter closing balance
    • Reconcile differences
    • Click "Complete Shift"
  3. Shift Details:

    • Opening/Closing Balance
    • Total Bookings
    • Total Sales
    • Commission Earned
    • Cash Count Variance
VIEW AGENT PERFORMANCE
  1. Agent Dashboard:
    • Total bookings (period)
    • Total revenue generated
    • Average booking value
    • Commission earned
    • Performance ranking

User Management

Purpose: Manage system users and access control
Access Level: Admin
Icon: Users

Features Overview

┌──────────────────────────────┐
│    USER MANAGEMENT MGMT      │
├──────────────────────────────┤
│ ✓ Create Users               │
│ ✓ Assign Roles               │
│ ✓ Manage Permissions         │
│ ✓ Reset Passwords            │
│ ✓ Deactivate/Activate        │
│ ✓ Audit User Activity        │
└──────────────────────────────┘

User Roles

  • AGENT: Counter operations
  • SUPERVISOR: Oversight and decisions
  • ADMIN: Full access
  • STAFF: Limited specific access

CRUD Operations

CREATE USER
  1. Click "Add User" button
  2. Fill Form:
    • Email (required): Unique email
    • Full Name (required): Display name
    • Phone: Contact number
    • Role (required): Select role
    • Department: Optional
    • Status: Active/Inactive
  3. Save: Click "Create User"
  4. Auto-email: Temporary password sent to email
READ (List Users)
  1. View Users:

    • Table shows all users
    • Filter by role
    • Search by name/email
  2. Columns:

    • Name
    • Email
    • Role (badge)
    • Status
    • Last Login
    • Created Date
UPDATE
  1. Click User Row:

    • Opens user detail modal
    • Shows profile & activity
  2. Modify:

    • Update name/phone
    • Change role
    • Update department
    • Toggle active status
  3. Password Reset:

    • Click "Reset Password"
    • Temporary password generated
    • Sent to user email
DELETE
  1. Click "Delete" on user
  2. Confirm: Warns about implications
  3. Options:
    • Deactivate: Keep records, disable access
    • Delete: Remove user completely

Settings

Purpose: Configure system-wide settings and preferences
Access Level: Admin
Icon: Settings

Features Overview

┌──────────────────────────────┐
│      SETTINGS MGMT           │
├──────────────────────────────┤
│ ✓ Application Settings       │
│ ✓ Email Configuration        │
│ ✓ Payment Provider Setup     │
│ ✓ API Integration            │
│ ✓ Notification Templates     │
│ ✓ System Preferences         │
└──────────────────────────────┘

Configuration Sections

General Settings:

  • Application name
  • Logo and branding
  • Timezone
  • Default currency
  • Language

Email Settings:

  • SMTP server
  • Sender email
  • Email templates
  • Notification preferences

Payment Settings:

  • Provider credentials
  • API keys
  • Webhook endpoints
  • Currency configuration

API Integration:

  • Verifayda setup
  • External service integration
  • API rate limits
  • Webhook configuration

CRUD Operations

UPDATE SETTINGS
  1. Navigate to Settings:

    • Click Settings in System section
  2. Select Category:

    • General, Email, Payments, API, etc.
  3. Modify Settings:

    • Update configuration values
    • Test connections (where applicable)
    • Save changes
  4. Confirmation:

    • Settings updated with timestamp
    • Changes take effect immediately
    • Audit logged

Common Features

Data Table Features

All data tables include:

  1. Search & Filter:

    • Real-time search box
    • Multiple filter dropdowns
    • Date range pickers
    • Status/category filters
  2. Sorting:

    • Click column headers to sort
    • Sort order toggle (Asc/Desc)
    • Multi-column sort (optional)
  3. Pagination:

    • Previous/Next buttons
    • Jump to page input
    • Page size selector
    • Total record count
  4. Bulk Actions:

    • Checkbox selection
    • Select All / Deselect All
    • Bulk operations (Delete, Export, Update)
  5. Export:

    • Export visible columns
    • Export filtered results
    • Format options (CSV, Excel, JSON)
    • Scheduled exports

Modal Dialog Features

All modals include:

  1. Title Bar:

    • Clear action title
    • Close button (X)
  2. Form Fields:

    • Required field indicators (*)
    • Field validation
    • Error messages
    • Helpful tooltips
  3. Action Buttons:

    • Primary action (Create, Save, Update)
    • Secondary action (Cancel)
    • Danger action (Delete)
    • Loading state with spinner
  4. Responsive Design:

    • Mobile-friendly layout
    • Scrollable content areas
    • Optimized for all screen sizes

Status Badges

Color-coded status indicators:

  • Green: Success, Active, Confirmed
  • Yellow: Warning, Pending, Processing
  • Blue: Information, Scheduled
  • Red: Error, Failed, Cancelled
  • Gray: Inactive, Draft

Keyboard Shortcuts

Common shortcuts:

Shortcut Action
Ctrl/Cmd + K Search/Quick filter
Ctrl/Cmd + S Save form
Esc Close modal/dialog
Tab Navigate form fields
Enter Submit form

Best Practices

Data Entry

  1. Always verify information before submitting
  2. Use dropdown selections when available
  3. Check date formats match system requirements
  4. Include descriptive notes for manual entries
  5. Save frequently during long forms

Booking Management

  1. Verify passenger identity before processing
  2. Confirm payment method before transaction
  3. Double-check seat assignments
  4. Note any special passenger requirements
  5. Provide clear confirmation references

Financial Operations

  1. Reconcile daily at shift end
  2. Verify exchange rates before currency conversion
  3. Keep refund documentation
  4. Review fraud alerts carefully
  5. Audit payment discrepancies

Security

  1. Lock screen when away from desk
  2. Use strong passwords (min. 12 characters)
  3. Enable two-factor authentication
  4. Report suspicious activity immediately
  5. Clear browser cache after sensitive operations

Compliance

  1. Follow audit procedures
  2. Retain records per retention policy
  3. Document all manual overrides
  4. Report data discrepancies
  5. Keep credentials confidential

Support & Help

Getting Help

In-App Help:

  • Hover over fields for tooltips
  • Click "?" icons for context help
  • Use "Help" menu in navigation

Documentation:

  • This comprehensive guide
  • Video tutorials (under production)
  • FAQ section in Support Center

Contact Support:

  • Email: support@edr-platform.com
  • Phone: +251-XXX-XXX-XXXX
  • Chat: Available during business hours
  • Ticket System: Create support ticket in app

Troubleshooting

Issue: Cannot login

  • Verify email/password
  • Check caps lock
  • Try password reset
  • Contact admin if locked out

Issue: Page not loading

  • Refresh browser (F5)
  • Clear browser cache
  • Try different browser
  • Check internet connection

Issue: Data not saving

  • Verify all required fields
  • Check for error messages
  • Review audit logs
  • Try again or contact support

Change Log

Version 1.0.0 (January 15, 2026)

  • Complete Platform Release - Full-featured passenger management system
  • Excess Luggage Management - Complete boarding baggage handling with agent tools and passenger self-pay options
  • Travel Packages - Pilgrimage and group travel packages with tiered pricing, capacity management, and inquiry handling
  • System Health Monitoring - Real-time API health checks with liveness, readiness, and performance metrics
  • System Configuration - Centralized config management with feature flags, rate limiting, and operational controls
  • Package Inquiries - Dedicated management for package booking inquiries with status tracking
  • Boarding Management - Gate operations, passenger processing, and boarding workflow tools
  • Advanced Fare Configuration - Dynamic fare management with complex pricing rules and segment-based pricing
  • Payment Methods Configuration - Multi-provider payment setup and management interface
  • Enhanced Settings - Improved settings interface with tabbed sections and live configuration updates
  • Multi-currency support - ETB, DJF, USD with real-time exchange rates
  • Verifayda 2.0 integration - Ethiopian national ID verification
  • Age-based pricing - ADULT/CHILD categories with free first child policy
  • Segment fare rules - Complex pricing with nationality-specific rates

Appendix

Acronyms & Abbreviations

Acronym Meaning
ETB Ethiopian Birr
DJF Djiboutian Franc
USD US Dollar
EDR Ethio-Djibouti Railway
SMS Short Message Service
WCAG Web Content Accessibility Guidelines
CSV Comma-Separated Values
API Application Programming Interface
SMTP Simple Mail Transfer Protocol
CRUD Create, Read, Update, Delete
IAM Identity and Access Management

Currency Codes

Code Currency Country
ETB Ethiopian Birr Ethiopia
DJF Djiboutian Franc Djibouti
USD US Dollar United States

Timezone Reference

Timezone Region UTC Offset
Africa/Addis_Ababa Ethiopia UTC+3
Africa/Djibouti Djibouti UTC+3
UTC Coordinated Universal Time UTC+0

For more information or feedback, please contact the development team or visit the support portal.


Enhanced Features

Excess Luggage

Purpose: Manage excess baggage charges at boarding with agent tools and passenger self-pay
Access Level: Agent, Supervisor, Admin
Icon: Package

Features Overview

┌──────────────────────────────┐
│  EXCESS BAGGAGE MANAGEMENT   │
├──────────────────────────────┤
│ ✓ View Excess Charges        │
│ ✓ Search by Booking Ref      │
│ ✓ Track Payment Status       │
│ ✓ Waive Charges              │
│ ✓ Resend Payment Links       │
│ ✓ Agent Cash Collection      │
└──────────────────────────────┘

Excess Luggage Process

  1. At Boarding: Agent weighs passenger baggage
  2. If Excess: Agent creates charge in system
  3. Payment Options:
    • Passenger self-pay via mobile link
    • Agent collects cash on-the-spot
  4. Completion: Passenger boards after payment

Charge Statuses

  • PENDING: Awaiting passenger payment (5-minute link expiry)
  • PAID: Successfully paid via mobile payment
  • CASH_COLLECTED: Agent collected cash payment
  • EXPIRED: Payment link expired
  • WAIVED: Supervisor waived the charge

CRUD Operations

READ (List Charges)
  1. Access Excess Luggage Page:

    • Click Excess Luggage in Enhanced Features section
    • Shows all baggage charges
  2. Search & Filter:

    • Search Box: Filter by booking reference
    • Status Filter: PENDING, PAID, CASH_COLLECTED, EXPIRED, WAIVED
    • Date Range: Filter by creation date
  3. Charge Information:

    • Booking Reference
    • Excess Weight (kg)
    • Fee per kg
    • Total Amount (ETB)
    • Payment Status
    • Contact Information
    • Expiry Time
MANAGE CHARGES

Resend Payment Link:

  1. For PENDING charges: Click "Resend Link"
  2. New SMS/Email: Sent to passenger
  3. Fresh 5-minute: New expiry timer

Waive Charge:

  1. Click "Waive" on pending/expired charge
  2. Enter Reason: Medical exemption, scale error, etc.
  3. Confirm: Charge marked as waived
  4. Audit: Action logged for compliance

Delete Charge:

  1. Only for EXPIRED/WAIVED: Click "Delete"
  2. Confirm: Permanent removal from system
  3. Note: Cannot delete active or paid charges

Agent Workflow

  1. Weigh Luggage: Use station scales
  2. Check Allowance: Compare to passenger's seat class allowance
  3. Create Charge: If excess weight found
  4. Offer Payment Options:
    • Mobile payment link (passenger's phone)
    • Cash payment (agent collection)
  5. Process Boarding: After payment completed

Travel Packages

Purpose: Manage pilgrimage and group travel packages with tiered pricing
Access Level: Supervisor, Admin
Icon: Package

Features Overview

┌──────────────────────────────┐
│   TRAVEL PACKAGES MANAGEMENT │
├──────────────────────────────┤
│ ✓ Create Packages            │
│ ✓ Multi-tier Pricing         │
│ ✓ Capacity Management        │
│ ✓ Schedule Integration       │
│ ✓ Bus Transfer Coordination  │
│ ✓ Package Status Control     │
└──────────────────────────────┘

Package Information

  • Code: Unique package identifier (e.g., "KULUBBI-2025")
  • Name: Package display name
  • Origin/Destination: Station pairs
  • Schedules: Outbound and return train schedules
  • Capacity: Total seats available
  • Coach Configuration: Train composition
  • Included Services: List of package inclusions
  • Bus Transfer: Optional bus coordination
  • Validity Period: Package booking window

Package Statuses

  • DRAFT: Created but not yet active
  • ACTIVE: Available for booking
  • SOLD_OUT: All seats booked
  • EXPIRED: Past validity period
  • CANCELLED: No longer offered

CRUD Operations

CREATE
  1. Click "New Package" button
  2. Fill Package Form:
    • Code (required): Unique identifier
    • Name (required): Display name
    • Description: Optional details
    • Origin/Destination Stations: Select from dropdown
    • Outbound/Return Schedules: Link to existing schedules
    • Boarding/Departure/Arrival Times: Package timeline
    • Total Capacity: Available seats
    • Coach Configuration: Train setup description
    • Included Services: One service per line
    • Bus Transfer: Enable and specify route
    • Valid From/Until: Booking window
  3. Save: Click "Create Package"
  4. Next Step: Add price tiers
READ (List Packages)
  1. View Packages:

    • Table shows all packages
    • Search by name or code
    • Filter by status
    • Filter by validity dates
  2. Package Details:

    • Click "View" to see full information
    • Shows all configuration details
    • Lists price tiers with booking status
    • Displays included services
UPDATE
  1. Click "Edit" on package
  2. Modify Details:
    • Update package information
    • Change validity periods
    • Adjust capacity (if no bookings)
  3. Save: Click "Update Package"
MANAGE PRICE TIERS
  1. Click "Tiers" on package
  2. View Existing Tiers:
    • Shows seat type, label, price, capacity
    • Displays booking progress
  3. Add New Tier:
    • Seat Type: HSC, VIP, etc.
    • Label: Display name (e.g., "Regular Seat (HSC)")
    • Price (minor): Amount in cents/minor units
    • Available Seats: Tier capacity
  4. Edit Existing Tier:
    • Click "Edit" on tier
    • Modify details (limited if bookings exist)
  5. Delete Tier:
    • Click "Delete" (only if no bookings)
ACTIVATE/DEACTIVATE

Activate Package:

  1. For DRAFT packages: Click "Activate"
  2. Confirmation: Package becomes publicly bookable
  3. Status Change: DRAFT → ACTIVE

Deactivate Package:

  1. For ACTIVE packages: Click "Deactivate"
  2. Confirmation: Removes from public booking
  3. Existing Bookings: Remain valid
DELETE
  1. Click "Delete" on package
  2. Warning: Shows impact on existing bookings
  3. Confirm: Permanent removal
  4. Cascade: Also removes price tiers

Example Package

Code: KULUBBI-2025
Name: Kulubbi Pilgrimage Package
Route: Addis Ababa → Awash (return)
Capacity: 912 passengers
Includes:
- Round trip train ticket
- Bus transfer to Kulubbi site
- Meal on board
- Guided tour

Price Tiers:
- Regular Seat (HSC): 10,232 ETB
- Premium Seat (VIP): 15,348 ETB
- Sleeper Bed (BED): 20,464 ETB

Package Inquiries

Purpose: Manage incoming package booking inquiries and lead conversion
Access Level: Agent, Supervisor, Admin
Icon: MessageSquare

Features Overview

┌──────────────────────────────┐
│ PACKAGE INQUIRIES MANAGEMENT │
├──────────────────────────────┤
│ ✓ View All Inquiries         │
│ ✓ Filter by Package          │
│ ✓ Track Inquiry Status       │
│ ✓ Contact Information        │
│ ✓ Lead Conversion            │
│ ✓ Delete Inquiries           │
└──────────────────────────────┘

Inquiry Information

  • Contact Name: Inquirer's name
  • Contact Email/Phone: Contact details
  • Package: Requested package
  • Price Tier: Selected tier (if specified)
  • Traveler Count: Number of passengers
  • Inquiry Date: When submitted
  • Notes: Additional comments
  • Status: Current inquiry status

Inquiry Statuses

  • NEW: Just received, not yet contacted
  • CONTACTED: Agent has reached out
  • CONVERTED: Successfully converted to booking
  • CLOSED: Not converted, inquiry closed

CRUD Operations

READ (List Inquiries)
  1. Access Package Inquiries:

    • Click Package Inquiries in Enhanced Features
    • Shows all inquiries
  2. Filter Options:

    • Package Filter: Select specific package
    • Status Filter: NEW, CONTACTED, CONVERTED, CLOSED
  3. Inquiry Details:

    • Contact information
    • Requested package and tier
    • Traveler count
    • Price information
    • Inquiry notes
UPDATE STATUS
  1. Status Dropdown: In each inquiry row
  2. Change Status: Select new status
  3. Auto-save: Updates immediately
  4. Track Progress: Monitor conversion funnel

Status Workflow:

NEW → CONTACTED → CONVERTED/CLOSED
DELETE
  1. Click "Delete" on inquiry
  2. Confirmation: Cannot be undone
  3. Use Case: Remove spam or duplicate inquiries

Lead Management

Best Practices:

  1. Respond Quickly: Contact NEW inquiries within 24 hours
  2. Follow Up: Move to CONTACTED after first contact
  3. Track Conversion: Mark as CONVERTED when booked
  4. Close Non-converts: Mark as CLOSED if not interested

Health Monitoring

Purpose: Monitor EDR Passenger API health and system performance
Access Level: Admin, Supervisor
Icon: Activity

Features Overview

┌──────────────────────────────┐
│   HEALTH MONITORING MGMT     │
├──────────────────────────────┤
│ ✓ Liveness Checks            │
│ ✓ Readiness Probes           │
│ ✓ Database Health            │
│ ✓ Application Info           │
│ ✓ Real-time Status           │
│ ✓ Rate Limit Overview        │
└──────────────────────────────┘

Health Check Types

Liveness Probe (GET /health):

  • Confirms API process is alive
  • Quick response check
  • Auto-refreshes every 30 seconds

Readiness Probe (GET /health/ready):

  • Database connectivity test
  • Live database ping with latency
  • Indicates if API can serve traffic

Application Info (GET /health/info):

  • App version and environment
  • System uptime
  • Refreshes every 60 seconds

Health Status Indicators

Overall Status Banner:

  • Green: All systems operational
  • Red: Service degraded
  • Gray: Checking status...

Individual Probe Cards:

  • Status dot (green/red/gray)
  • Health badge (Healthy/Degraded/Checking...)
  • Last check timestamp
  • Error details (if failed)

CRUD Operations

READ (Monitor Health)
  1. Access Health Page:

    • Click Health Monitoring in Enhanced Features
    • Auto-refreshing dashboard
  2. System Overview:

    • Overall health banner
    • Individual probe status
    • Real-time updates
  3. Detailed Metrics:

    • Database latency (ms)
    • Application uptime
    • Version information
    • Environment details
REFRESH STATUS
  1. Manual Refresh: Click "Refresh" button
  2. Auto-refresh:
    • Health probes: 30 seconds
    • App info: 60 seconds
  3. Loading States: Shows during refresh

Rate Limits Reference

The health page includes a rate limits table:

Tier Limit Applied to
auth 5 req/min /auth, /fayda/verification
strict 20 req/min /bookings, /passengers, /payments, /wallet
default 100 req/min All other endpoints
exempt No limit /health/*, payment webhooks

Troubleshooting

Common Issues:

  1. Database Connectivity:

    • Check network connection
    • Verify database server status
    • Review connection string
  2. High Latency:

    • Monitor database performance
    • Check server resources
    • Review query optimization
  3. Failed Health Checks:

    • Review API server logs
    • Check system resources
    • Verify service configuration

System Config

Purpose: Centralized system configuration management with feature flags
Access Level: Admin
Icon: Settings

Features Overview

┌──────────────────────────────┐
│   SYSTEM CONFIG MANAGEMENT   │
├──────────────────────────────┤
│ ✓ Rate Limit Configuration   │
│ ✓ Seat Booking Settings      │
│ ✓ Feature Flags              │
│ ✓ Operational Controls       │
│ ✓ Live Configuration Updates │
│ ✓ Validation & Saving        │
└──────────────────────────────┘

Configuration Categories

Rate Limiting (requests per minute per IP):

  • Auth endpoints: Login, register, OTP (default: 5)
  • Strict endpoints: Sensitive operations (default: 20)
  • Default endpoints: All other endpoints (default: 100)

Seat Booking:

  • Hold Duration: How long seats stay held (default: 5 minutes)
  • Hold Cutoff: Stop accepting holds X hours before departure (default: 2 hours)

CRUD Operations

READ (View Configuration)
  1. Access System Config:

    • Click System Config in System section
    • Loads current configuration values
  2. Configuration Display:

    • Rate limiting settings with descriptions
    • Seat booking parameters
    • Current values shown
UPDATE CONFIGURATION
  1. Modify Settings:

    • Auth Limit: Adjust authentication rate limit
    • Strict Limit: Change sensitive operations limit
    • Default Limit: Update general rate limit
    • Hold Duration: Set seat hold time in minutes
    • Hold Cutoff: Set cutoff hours before departure
  2. Validation:

    • Minimum values enforced
    • Reasonable maximums suggested
    • Input validation on save
  3. Save Changes:

    • Click "Save Changes" button
    • Configuration applied immediately
    • Success/error feedback shown

Configuration Examples

Rate Limiting Tiers:

Auth endpoints (5/min):
- /auth/login
- /auth/register
- /fayda/verification

Strict endpoints (20/min):
- /bookings/*
- /passengers/*
- /payments/*
- /wallet/*

Default endpoints (100/min):
- /search/*
- /stations/*
- All other public endpoints

Seat Management:

Hold Duration: 5 minutes
- Passenger has 5 minutes to complete booking
- After expiry, seats released automatically

Hold Cutoff: 2 hours
- No new holds accepted within 2 hours of departure
- Prevents last-minute booking complications

System Impact

Rate Limit Changes:

  • Applied immediately to new requests
  • Existing connections not affected
  • Monitor for performance impact

Seat Booking Changes:

  • New holds use updated duration
  • Existing holds retain original expiry
  • Cutoff affects future booking attempts

Best Practices

  1. Monitor Impact: Watch system performance after changes
  2. Conservative Adjustments: Make incremental changes
  3. Peak Periods: Consider higher limits during busy times
  4. Security Balance: Balance usability with abuse prevention
  5. Documentation: Document reasons for configuration changes

Boarding Management

Purpose: Manage gate operations and passenger boarding processes
Access Level: Agent, Supervisor, Admin
Icon: Users

Features Overview

┌──────────────────────────────┐
│   BOARDING MANAGEMENT MGMT   │
├──────────────────────────────┤
│ ✓ Gate Operations            │
│ ✓ Passenger Check-in         │
│ ✓ Boarding Pass Validation   │
│ ✓ Seat Assignment Verification│
│ ✓ Boarding Status Tracking   │
│ ✓ Real-time Updates          │
└──────────────────────────────┘

CRUD Operations

READ (Monitor Boarding)
  1. Access Boarding Page:

    • Click Boarding Management in Enhanced Features
    • Select active trip/schedule
    • View real-time boarding status
  2. Boarding Dashboard:

    • Total passengers expected
    • Passengers boarded
    • Boarding progress tracking

Advanced Fare Configuration

Purpose: Manage complex fare rules and dynamic pricing strategies
Access Level: Admin, Supervisor
Icon: Calculator

Features Overview

┌──────────────────────────────┐
│  ADVANCED FARE CONFIG MGMT  │
├──────────────────────────────┤
│ ✓ Dynamic Fare Rules         │
│ ✓ Segment-based Pricing      │
│ ✓ Nationality-specific Rates │
│ ✓ Seasonal Adjustments       │
│ ✓ Fare Engine Integration    │
│ ✓ Real-time Calculations     │
└──────────────────────────────┘

CRUD Operations

CREATE FARE RULES
  1. Access Fare Management:

    • Click Advanced Fare Config in Enhanced Features
    • Choose between Schedule Fares or Segment Fares
  2. Configure Rules:

    • Set fare amounts and validity periods
    • Define passenger categories and nationalities
    • Apply to specific routes or schedules

Payment Methods Configuration

Purpose: Configure and manage payment provider integrations
Access Level: Admin
Icon: CreditCard

Features Overview

┌──────────────────────────────┐
│ PAYMENT METHODS CONFIG MGMT  │
├──────────────────────────────┤
│ ✓ Provider Setup             │
│ ✓ API Configuration          │
│ ✓ Enable/Disable Methods     │
│ ✓ Webhook Management         │
│ ✓ Test Transactions          │
│ ✓ Fee Configuration          │
└──────────────────────────────┘

Supported Providers

  • Telebirr: Ethiopian mobile payment
  • CBE Birr: Commercial Bank of Ethiopia
  • eBirr: Electronic wallet service
  • Card Payments: VISA, Mastercard
  • WAAFI: Money transfer service
  • Agent Cash: Counter collection

CRUD Operations

UPDATE CONFIGURATION
  1. Provider Setup:

    • Configure API credentials
    • Set transaction fees and limits
    • Enable/disable providers
  2. Test & Validate:

    • Run test transactions
    • Validate webhook endpoints
    • Monitor connectivity

Boarding Management

Purpose: Manage gate operations and passenger boarding processes
Access Level: Agent, Supervisor, Admin
Icon: Users

Features Overview

┌──────────────────────────────┐
│   BOARDING MANAGEMENT MGMT   │
├──────────────────────────────┤
│ ✓ Gate Operations            │
│ ✓ Passenger Check-in         │
│ ✓ Boarding Pass Validation   │
│ ✓ Seat Assignment Verification│
│ ✓ Boarding Status Tracking   │
│ ✓ Real-time Updates          │
└──────────────────────────────┘

Boarding Process

  1. Pre-boarding Setup: Configure gates and boarding times
  2. Passenger Check-in: Validate tickets and documents
  3. Boarding Queue: Manage passenger flow and priority boarding
  4. Seat Verification: Confirm seat assignments and resolve conflicts
  5. Boarding Completion: Final passenger count and departure clearance

CRUD Operations

READ (Monitor Boarding)
  1. Access Boarding Page:

    • Click Boarding Management in Enhanced Features
    • Select active trip/schedule
    • View real-time boarding status
  2. Boarding Dashboard:

    • Total passengers expected
    • Passengers boarded
    • Remaining passengers
    • Boarding progress percentage
    • Gate status and alerts
MANAGE BOARDING PROCESS

Start Boarding:

  1. Select Trip: Choose scheduled departure
  2. Open Gates: Activate boarding process
  3. Scan Tickets: Validate passenger tickets and documents
  4. Update Status: Track boarding progress in real-time

Handle Issues:

  1. Seat Conflicts: Resolve duplicate seat assignments
  2. Missing Passengers: Mark no-shows
  3. Late Arrivals: Process last-minute passengers
  4. Special Assistance: Handle wheelchair, elderly, child passengers

Advanced Fare Configuration

Purpose: Manage complex fare rules and dynamic pricing strategies
Access Level: Admin, Supervisor
Icon: Calculator

Features Overview

┌──────────────────────────────┐
│  ADVANCED FARE CONFIG MGMT  │
├──────────────────────────────┤
│ ✓ Dynamic Fare Rules         │
│ ✓ Segment-based Pricing      │
│ ✓ Nationality-specific Rates │
│ ✓ Seasonal Adjustments       │
│ ✓ Fare Engine Integration    │
│ ✓ Real-time Calculations     │
└──────────────────────────────┘

Fare Rule Types

Schedule-specific Fares:

  • Fixed rates for specific train schedules
  • Override default fare calculations
  • Temporary promotional pricing

Route Segment Fares:

  • Different pricing for route segments
  • Origin-destination specific rates
  • Distance-based calculations

Passenger Category Fares:

  • ADULT vs CHILD pricing
  • Nationality-based rates (Ethiopian, Djiboutian, Other)
  • Group discounts

CRUD Operations

CREATE FARE RULES
  1. Access Fare Management:

    • Click Advanced Fare Config in Enhanced Features
    • Choose between Schedule Fares or Segment Fares
  2. Schedule Fare Rule:

    • Schedule: Select specific trip
    • Seat Class: Choose class (Economy, VIP, etc.)
    • Fare Amount: Set price in ETB
    • Passenger Type: ADULT or CHILD (optional)
    • Nationality: Specific nationality or All
    • Valid Period: Start and end dates
  3. Segment Fare Rule:

    • Route: Select route
    • Origin/Destination: Choose station pair
    • Seat Class: Select class
    • Fare Amount: Set segment price
    • Passenger Type: ADULT/CHILD filter
    • Valid Period: Effective dates
READ (View Fare Rules)
  1. Schedule Fares Tab:

    • Select schedule to view calculated fares
    • See all active seat classes
    • View fare breakdown by category
  2. Segment Fares Tab:

    • Select route to view segment rules
    • See origin-destination combinations
    • Filter by fare rule criteria
UPDATE/DELETE FARE RULES
  1. Edit Rules: Click "Edit" on existing fare rule
  2. Delete Rules: Click "Delete" to remove rule
  3. Validation: Changes affect future bookings only

Fare Calculation Priority

1. Segment Fare (nationality-specific)
2. Segment Fare (generic)
3. Schedule Fare (nationality-specific)
4. Schedule Fare (generic)
5. Default Class Base Fare

Payment Methods Configuration

Purpose: Configure and manage payment provider integrations
Access Level: Admin
Icon: CreditCard

Features Overview

┌──────────────────────────────┐
│ PAYMENT METHODS CONFIG MGMT  │
├──────────────────────────────┤
│ ✓ Provider Setup             │
│ ✓ API Configuration          │
│ ✓ Enable/Disable Methods     │
│ ✓ Webhook Management         │
│ ✓ Test Transactions          │
│ ✓ Fee Configuration          │
└──────────────────────────────┘

Supported Payment Providers

  • Telebirr: Ethiopian mobile payment
  • CBE Birr: Commercial Bank of Ethiopia
  • eBirr: Electronic wallet service
  • Card Payments: VISA, Mastercard via gateway
  • WAAFI: Money transfer service
  • Agent Cash: Counter cash collection

CRUD Operations

READ (View Payment Methods)
  1. Access Payment Methods:

    • Click Payment Methods in Enhanced Features
    • View all configured providers
    • See status and configuration
  2. Provider Status:

    • Enabled/Disabled toggle
    • Configuration status
    • Last transaction test
    • Error logs (if any)
UPDATE CONFIGURATION

Provider Setup:

  1. API Credentials:

    • Base URL
    • API Key/Secret
    • Merchant ID
    • Webhook endpoints
  2. Settings:

    • Enable/disable provider
    • Transaction fees
    • Minimum/maximum amounts
    • Currency support
  3. Test Configuration:

    • Run test transactions
    • Validate webhook endpoints
    • Check API connectivity

Webhook Management:

  1. Endpoint URLs: Configure callback URLs
  2. Security: Set webhook secrets
  3. Event Types: Select events to receive
  4. Retry Logic: Configure retry attempts
TROUBLESHOOTING

Common Issues:

  1. API Connectivity: Check network and credentials
  2. Webhook Failures: Verify endpoint accessibility
  3. Transaction Failures: Review provider logs
  4. Configuration Errors: Validate API settings