# 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](#overview) 2. [Application Structure](#application-structure) 3. [Sidebar Navigation Guide](#sidebar-navigation-guide) 4. [Operations Management](#operations-management) 5. [Master Data Management](#master-data-management) 6. [Financial Management](#financial-management) 7. [Customer Services](#customer-services) 8. [Security & Compliance](#security--compliance) 9. [Analytics & Reports](#analytics--reports) 10. [System Administration](#system-administration) 11. [Common Features](#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 ##### READ (List & Search) 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