Files
edr-platform/apps/edr-passenger-web/backoffice/public/docs.md

73 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

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
    └── Settings

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 (June 15, 2026)

  • Initial release
  • All core modules implemented
  • Multi-currency support added
  • Verifayda 2.0 integration complete
  • Premium and insurance fees added to fares
  • Age-based pricing fully functional
  • Segment fare rules implemented

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.

Last Updated: January 15, 2026
Document Version: 1.0.0
Maintained By: EDR Development Team