100 KiB
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
- Overview
- Application Structure
- Sidebar Navigation Guide
- Operations Management
- Master Data Management
- Financial Management
- Customer Services
- Security & Compliance
- Analytics & Reports
- System Administration
- Common Features
Overview
The Passenger Backoffice Application is a comprehensive management system for the Ethio-Djibouti Railway passenger platform. It provides tools for operational staff, supervisors, and administrators to manage bookings, passengers, fares, fleet, and compliance operations.
Key Features
- Real-time Booking Management: View, modify, and cancel bookings
- Passenger Management: Track and manage passenger information
- Dynamic Pricing: Configure fares with segment-based and nationality-specific pricing
- Fleet Management: Manage trains, coaches, and seats
- Live Tracking: Monitor trip status and real-time updates
- Security Monitoring: Fraud detection and audit logging
- Comprehensive Analytics: Revenue, occupancy, and performance reports
- 🆕 Excess Luggage Management: Handle boarding baggage charges with agent tools
- 🆕 Travel Packages: Manage pilgrimage and group travel packages with tiered pricing
- 🆕 System Health Monitoring: Real-time API health checks and system status
- 🆕 Advanced Fare Configuration: Dynamic pricing with segment-based rules
- 🆕 Boarding Management: Gate operations and passenger processing
- 🆕 Payment Methods Configuration: Multi-provider payment setup
- 🆕 Package Inquiries: Lead management for travel package bookings
- 🆕 Centralized Configuration: Feature flags and operational controls
Supported Roles
- Agent: Counter booking and basic operations
- Supervisor: Agent oversight and operational decisions
- Admin: Full system access and configuration
- Staff: Limited access to specific modules
Application Structure
Sidebar Organization
The application is organized into 8 main sections:
├── Overview
│ └── Dashboard
├── Operations
│ ├── Bookings
│ ├── Passengers
│ └── Tickets
├── Master Data
│ ├── Stations
│ ├── Trains
│ ├── Coaches
│ ├── Seats
│ ├── Classes
│ ├── Routes
│ └── Schedules
├── Financial
│ ├── Pricing & Fares
│ ├── Currencies
│ ├── Payments
│ └── Promo Codes
├── Customer Services
│ ├── Loyalty Program
│ ├── Support Center
│ └── Notifications
├── Security & Compliance
│ ├── Audit Logs
│ ├── Fraud Detection
│ └── Verifayda Integration
├── Analytics & Reports
│ ├── Reports
│ └── Operational Reports
└── System
├── Agent Operations
├── User Management
├── System Config
└── Settings
└── Enhanced Features
├── Excess Luggage
├── Travel Packages
├── Package Inquiries
├── Health Monitoring
├── Boarding Management
├── Advanced Fare Config
└── Payment Methods
Theme & Personalization
- Dark Mode Toggle: Available in the header for reduced eye strain
- Sidebar Collapse: Click the chevron icon to minimize sidebar for more screen space
- Responsive Design: Fully responsive interface for desktop and tablet use
- Accessible UI: WCAG 2.1 AA compliant for accessibility
Sidebar Navigation Guide
Collapsible Sidebar
Feature: Expand/Collapse Navigation
Location: Top-right corner of sidebar header
How to Use:
- Click the Chevron (</> or >>) icon in the sidebar header
- Sidebar collapses to icon-only view
- Hover over icons to see tooltip labels
- 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.
- Agent Counter Booking:
- Navigate to Agent Operations (System section)
- Create booking through dedicated agent interface
- Specify passengers, seats, and payment method
READ (List & Search)
-
Access Bookings Page:
- Click Bookings in Operations section
- Page displays table with all bookings
-
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
-
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
-
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:
-
Passenger-initiated Changes:
- Direct passenger through passenger portal
- Support team can assist via Support Center
-
Admin Modifications (if needed):
- Contact system administrator
- Modifications logged in Audit Logs
DELETE (Remove Booking)
-
Access Delete:
- Click "Delete" action button on booking row
- Confirmation dialog appears
-
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
-
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)
-
Access Passengers Page:
- Click Passengers in Operations section
- Displays passenger listing with filters
-
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
-
Passenger Information Displayed:
- Full Name
- Email & Phone
- Nationality
- Verifayda Verification Status
- Loyalty Tier
- Wallet Balance
- Total Bookings
- Registration Date
VIEW DETAILS
-
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
-
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)
-
Access Tickets Page:
- Click Tickets in Operations section
- Shows all issued tickets
-
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
-
Ticket Information:
- Booking Reference
- Passenger Name
- QR Code / Barcode
- Trip Details (Train, Stations, Times)
- Seat Information
- Issue Date
- Validation Status
VIEW FULL TICKET
-
Click View Button:
- Opens ticket details modal
- Shows:
- QR/Barcode payload
- Full passenger manifest
- Seat assignments
- Fare breakdown
- Payment confirmation
-
Download/Print:
- Generate PDF for printing
- Send to passenger email
- Save to system
VALIDATION STATUS
-
Gate Validation:
- Unvalidated: Ticket not yet scanned at gate
- Validated: Scanned and approved for boarding
- Cancelled: Ticket cancelled or expired
-
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
- Click "Add Station" button
- 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
- Save: Click "Create Station"
- Confirmation: Station appears in list
READ
-
View Station List:
- All stations displayed in table
- Search by code, name, or city
- Filter by operational status
-
Columns:
- Code
- Name
- City
- Country
- Operational Status (badge)
- Creation Date
UPDATE
- Click "Edit" on station row
- Modify Fields:
- All fields editable
- Changes reflected immediately
- Save: Click "Update Station"
- Audit: Changes logged
DELETE
- Click "Delete" on station row
- Confirmation: Dialog warns about:
- Routes using this station
- Schedules affected
- Passenger trips dependent
- 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
- Click "Add Train" button
- Fill Form:
- Number (required): Unique identifier
- Name (required): Display name
- Operator (required): Operating company
- Description: Optional notes
- Status: Toggle Active/Inactive
- Save: Click "Create Train"
- Next Step: Assign coaches to train
READ
-
View Train List:
- Table shows all trains
- Filter by status
- Search by number or name
-
Columns:
- Train Number
- Name
- Operator
- Status (badge)
- Total Coaches
- Active Status
UPDATE
- Click "Edit" on train row
- Modify Details:
- Update name, operator, description
- Change status
- Coach Management:
- Add coaches to train
- Remove coaches
- Adjust coach sequence
- Save: Click "Update Train"
DELETE
- Click "Delete" on train
- Warning: Shows:
- Schedules using this train
- Active bookings affected
- 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
- Click "Add Coach" button
- Fill Form:
- Number (required): Coach ID
- Coach Type (required): Select from types
- Arrangement: Seat layout pattern
- Capacity (required): Total seats
- Status: Active/Maintenance/Inactive
- Seat Configuration:
- Auto-generate seats based on arrangement
- Or manually configure seat map
- Save: Click "Create Coach"
READ
-
View Coach List:
- Table shows all coaches
- Filter by status, type
- Search by number
-
Columns:
- Coach Number
- Type
- Arrangement
- Capacity
- Status Badge
- Assigned Train
UPDATE
- Click "Edit" on coach
- Modify:
- Update arrangement (limited if seats occupied)
- Change status
- Update capacity (data migration needed)
- Seat Management:
- Add/remove individual seats
- Update seat properties (window, aisle, bed position)
- Save: Click "Update Coach"
DELETE
- Click "Delete" on coach
- Checks:
- Scheduled trips using coach
- Active bookings on seats
- Maintenance records
- 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
-
View Seat Maps:
- Select coach from dropdown
- Visual grid shows all seats
- Color-coded by status:
- Green: Available
- Yellow: Held
- Blue: Booked
- Red: Blocked
-
Seat Details:
- Click seat to view properties
- Shows occupancy history
- Displays current booking (if occupied)
-
Filters:
- By coach
- By status
- By kind (Premium, Accessible, etc.)
UPDATE
- Bulk Seat Updates:
- Select multiple seats
- Change properties:
- Status (block/unblock)
- Kind (upgrade/downgrade)
- Premium fee
- Individual Updates:
- Click seat and edit
- Update window/aisle designation
- Modify bed position
BLOCK/UNBLOCK
-
Block Seat:
- Click "Block" action
- Reason dropdown:
- Maintenance
- Reserved
- Damaged
- Other
- Until date (optional)
- Reason notes
-
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
- Click "Add Class" button
- 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
- 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
-
View Classes:
- Table shows all seat classes
- Filter by coach type
- Search by name
-
Columns:
- Class Name
- Coach Type
- Base Fare (ETB)
- Premium Fee (ETB)
- Insurance Fee (ETB)
- Active Status
- Total Seats (across all coaches)
UPDATE
- Click "Edit" on class
- Modify:
- Update name (if not in use)
- Adjust base fare
- Update premium/insurance fees
- Toggle active status
- Save: Click "Update Class"
- Impact: Changes apply to new bookings only
DELETE
- Click "Delete" on class
- Checks:
- Bookings using this class
- Fare rules referencing it
- Seats assigned to it
- 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
- Click "Add Route" button
- Fill Form:
- Code (required): Route code
- Name (required): Route name
- Effective From: Start date
- Effective Until: End date (optional)
- Active: Toggle status
- Add Stops:
- Click "Add Stop"
- Select station from dropdown
- Sequence auto-assigned or manual
- Enter distance from previous stop
- Save: Click "Create Route"
READ
-
View Routes:
- Table shows all routes
- Filter by status
- Search by code or name
-
Route Details:
- Click route to expand
- Shows:
- All stops in sequence
- Cumulative distance
- Distance between stops
- Fare rules for route
-
Columns:
- Code
- Name
- Total Stops
- Total Distance
- Status Badge
- Active Status
UPDATE
- Click "Edit" on route
- Modify Route:
- Update name or description
- Change effective dates
- Toggle active status
- Manage Stops:
- Add new stops
- Remove stops (if no bookings)
- Reorder stops (drag-and-drop)
- Update distances
- Save: Click "Update Route"
DELETE
- Click "Delete" on route
- Checks:
- Active schedules using route
- Bookings on those schedules
- 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
- Click "Create Schedule" button
- Fill Form:
- Train (required): Select train
- Route (required): Select route
- Departure (required): Date and time
- Arrival (required): Date and time
- Status: Scheduled (default)
- Assign Coaches:
- Select coaches from list
- Checkboxes for multi-select
- Order matters (Position Number assigned)
- Save: Click "Create Schedule"
CREATE - Bulk Generate
- Click "Bulk Generate" button
- 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
- Preview:
- Shows calculated number of schedules
- Example: 30 days ÷ 1 day = ~30 schedules
- 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
-
View Schedules:
- Table shows all schedules
- Search by train, station, status
- Filter by date, route, train
-
Schedule Details:
- Train name and number
- From/To stations
- Departure/Arrival times
- Coach assignments
- Current status (badge)
-
Columns:
- Train
- From
- To
- Departure
- Arrival
- Coaches Count
- Status Badge
UPDATE
- Click "Edit" on schedule
- Modify:
- Departure/Arrival Times: Adjust times
- Status: Change to Boarding, En Route, Arrived, Cancelled
- Coach Assignment: Add/remove coaches
- Validation:
- Arrival must be after departure
- Coach conflicts checked
- Save: Click "Update Schedule"
DELETE
- Click "Delete" on schedule
- Warning: Shows
- Active bookings affected
- Seats will be released
- Cannot be undone
- Confirm: Click "Delete" to proceed
- Cascade: Automatically deletes:
- Associated seat holds
- Trip live status records
Bulk Delete:
- Select Multiple schedules via checkboxes
- Click "Delete [N] Schedules"
- Confirm: Warning for bulk action
- Process: All selected deleted with cascade
Viewing Fares
-
In Schedule Row:
- Shows calculated fares per seat class
- Displayed inline if space available
-
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:
- Base Fare: Per-km rate × distance
- Premium Fee: Flat fee per passenger (e.g., 50 ETB)
- Insurance Fee: Flat fee per passenger (e.g., 5 ETB)
- 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
-
Select Schedule:
- Dropdown to choose schedule
- Shows train, route, date
-
View Fares:
- Table shows calculated fares
- "Dynamically calculated" disclaimer
- Includes all active seat classes
-
Columns:
- Seat Class
- Passenger Type (All/ADULT/CHILD)
- Fare (ETB)
- Nationality (All/Specific)
- Route
- Valid From/Until
ADD OVERRIDE FARE
- Click "Add Fare Rule" button
- 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
- 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
- Click "Edit" on fare row
- Modify Fields:
- Update fare amount
- Change dates
- Adjust nationality/type filters
- Save: Click "Update Fare Rule"
DELETE FARE RULE
- Click "Delete" on fare row
- Confirm: Click "Delete" in dialog
- Impact: Removed immediately for new bookings
CRUD Operations - Segment Fares
Segment fares allow different pricing for different route segments.
VIEW SEGMENT FARES
-
Select Route:
- Dropdown to choose route
- Shows route code and name
- Displays all stops in sequence
-
View Fares:
- Table shows segment fare rules
- Organized by origin/destination stops
-
Columns:
- Segment (Stop sequence → Sequence)
- Seat Class
- Passenger Type
- Fare (ETB)
- Nationality
- Valid From/Until
CREATE SEGMENT FARE
- Click "Add Fare Rule" button
- Tab: Switch to "Segment Fares"
- 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
- Validation:
- Destination must be after origin
- Stations must be on route
- 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
- Click "Edit" on segment row
- Modify:
- Change stations (if no bookings)
- Update fare
- Adjust dates
- Save: Click "Update Segment Fare Rule"
DELETE SEGMENT FARE
- Click "Delete" on segment row
- Confirm: Delete dialog
- 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)
-
Access Currencies Page:
- Click Currencies in Financial section
- Shows all active exchange rates
-
Table Columns:
- From Currency
- To Currency
- Exchange Rate
- Effective Date
- Source (Manual/API)
- Last Updated
-
View Details:
- Hover rate to see precision
- Historical rates available
CREATE
- Click "Add Currency Rate" button
- 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
- Save: Click "Create Rate"
Example:
From: ETB
To: USD
Rate: 0.018
Effective: 2026-06-15
Source: Manual (updated daily)
UPDATE
- Click "Edit" on exchange rate
- Modify:
- Update rate value
- Change effective date
- Update source
- Save: Click "Update Rate"
- Impact: Applies to future bookings/display
DELETE
- Click "Delete" on rate
- Confirm: Dialog confirmation
- 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)
-
Access Payments Page:
- Click Payments in Financial section
- Shows all payment transactions
-
Search & Filter:
- Search Box: Booking reference, transaction ID
- Status Filter: Succeeded, Failed, Processing, Refunded
- Method Filter: Payment provider
- Date Range: Filter by transaction date
-
Payment Information:
- Booking Reference
- Payment Method
- Amount (ETB)
- Status (badge)
- Transaction ID
- Date & Time
VIEW DETAILS
- 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
-
On Failed/Completed Payment:
- Click "Process Refund" action
- Dialog opens for confirmation
-
Refund Form:
- Amount: Pre-filled or custom
- Reason: Dropdown (Cancellation, Adjustment, Error, etc.)
- Notes: Optional explanation
-
Process: Click "Process Refund"
-
Confirmation: Shows refund processing
Refund Status:
- Pending: Awaiting processor
- Processing: In transit
- Completed: Credited to customer
- Failed: Retry or manual intervention
WEBHOOK MANAGEMENT
-
View Webhooks:
- Click "Webhook History" tab
- Shows payment provider callbacks
-
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
- Click "Add Promo Code" button
- 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
- 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)
-
View Promo Codes:
- Table shows all promo codes
- Filter by status (Active/Inactive)
- Search by code
-
Columns:
- Code
- Title
- Discount (% or ETB)
- Valid Until
- Status Badge
- Total Uses
- Savings Generated
UPDATE
- Click "Edit" on promo code
- Modify:
- Update title/subtitle
- Change discount value
- Extend/shorten validity
- Toggle active status
- Save: Click "Update Promo Code"
DELETE/DEACTIVATE
- Click "Delete" on code
- Options:
- Archive: Keep for audit, disable for new bookings
- Delete: Remove completely
- Confirm: Dialog confirmation
- Impact: Already used bookings keep discount
Usage Tracking
-
View Code Usage:
- Click code to expand
- Shows:
- Total times used
- Total discount dispensed
- Recent applications
-
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)
-
Access Loyalty Page:
- Click Loyalty Program in Customer Services
- Shows all passenger loyalty accounts
-
Search & Filter:
- Search: Passenger name or email
- Tier Filter: BRONZE, SILVER, GOLD, PLATINUM
- Sort: Points balance, tier status, activity
-
Account Information:
- Passenger Name
- Current Tier (badge)
- Points Balance
- Lifetime Points
- Last Activity
- Member Since
VIEW DETAILS
-
Click Account Row:
- Opens loyalty detail modal
- Shows:
- Account information
- Points balance breakdown
- Tier history
- Redemption history
- Available rewards
-
Points Breakdown:
- Current balance
- Pending expiry points
- Tier multiplier applied
UPDATE ACCOUNT
-
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"
-
Tier Management:
- System auto-promotes/demotes based on points
- Manual override available (Admin)
MANAGE REWARDS
-
View Available Rewards:
- Shows reward catalog
- Points cost per reward
- Availability
-
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)
-
Access Support Page:
- Click Support Center in Customer Services
- Shows all support tickets
-
View Options:
- Tab 1: Open Tickets (unresolved)
- Tab 2: All Conversations (open & closed)
- Tab 3: FAQ Management
-
Search & Filter:
- Status: Open, Resolved, Closed
- Assigned To: Support agent filter
- Search: Ticket ID, passenger name
- Date Range: Filter by creation date
-
Ticket List Columns:
- Ticket ID
- Passenger Name
- Subject
- Status Badge
- Last Message
- Created Date
- Assigned Agent
VIEW CONVERSATION
-
Click Ticket Row:
- Opens conversation thread modal
- Shows message history
-
Conversation Details:
- All messages in chronological order
- Sender identification (Agent/Customer)
- Timestamps
- Attachments (if any)
-
Message Sidebar:
- Passenger info
- Ticket metadata
- Linked bookings
UPDATE (Add Response)
-
Click Ticket:
- View current conversation
-
Reply to Ticket:
- Type message in compose area
- Optionally add attachments
- Click "Send Response"
- Message sent to passenger
-
Status Management:
- Mark as "Resolved"
- Change assignment
- Add notes
CLOSE TICKET
-
Mark as Resolved:
- Click "Mark Resolved" button
- Passenger notified
- Ticket moved to closed
-
Reopen:
- If passenger responds, auto-reopens
- Or manually reopen if needed
FAQ Management
-
View FAQ Articles:
- Tab: "FAQ Management"
- Shows all published FAQs
-
Create FAQ:
- Click "Add FAQ Article"
- Select category
- Enter question & answer
- Publish
-
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)
-
Access Notifications:
- Click Notifications in Customer Services
- Shows notification log
-
Search & Filter:
- Recipient: Passenger name/email
- Status: Sent, Failed, Pending
- Channel: Email, SMS, Push
- Date Range: Filter by send date
-
Notification Details:
- Recipient
- Template used
- Channel(s)
- Status
- Sent Date/Time
- Delivery confirmation
SEND MANUAL NOTIFICATION
- Click "Send Notification" button
- Select Recipients:
- Specific passenger or group
- Filters: Booking status, tier, loyalty, etc.
- Choose Template:
- Select from templates
- Or custom message
- Configure:
- Select channels (Email, SMS, Push)
- Schedule send time
- Add personalization
- Preview: Show how it looks
- Send: Click "Send Notification"
Example:
Recipients: All PLATINUM tier passengers
Template: Special Promo - 15% Discount
Channels: Email, Push Notification
Send: Immediately
MANAGE TEMPLATES
-
View Templates Tab:
- Shows all notification templates
- Filter by channel
-
Edit Template:
- Click template to edit
- Modify subject/body
- Add placeholders {{name}}, {{bookingRef}}
- Save
-
Create New Template:
- Click "Add Template"
- Template code
- Channels (multi-select)
- Subject & body
- Variables/placeholders
- Save
DELIVERY TRACKING
-
View Delivery Status:
- Notification details show status per channel
- Timestamp for each delivery
-
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)
-
Access Audit Logs:
- Click Audit Logs in Security & Compliance
- Shows all logged activities
-
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
-
Log Columns:
- Timestamp
- User (Name, Email)
- Action (badge)
- Entity Type
- Entity ID
- Summary
- IP Address
VIEW DETAILS
-
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
-
Change Visualization:
- Highlights changed fields
- Shows before/after values
- Timestamp precision
EXPORT AUDIT TRAIL
- Click "Export" button
- Select Options:
- Format: CSV, JSON, PDF
- Date Range: Custom range
- Filters: Apply current filters
- Download: File starts downloading
- 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)
-
Access Fraud Detection:
- Click Fraud Detection in Security & Compliance
- Shows active fraud alerts
-
Alert List:
- Filter by severity (Low, Medium, High)
- Filter by status (Open, Acknowledged, Resolved)
- Search by user ID, booking ref
-
Alert Information:
- Alert ID
- User/Passenger
- Severity (badge color)
- Event Type (rule triggered)
- Timestamp
- Status
VIEW ALERT DETAILS
-
Click Alert Row:
- Opens alert detail modal
- Shows:
- Full context information
- Triggering rule details
- Rules triggered list
- Recommended action
- User history
-
Risk Assessment:
- Risk score (0-100)
- Contributing factors
- Historical pattern
ACKNOWLEDGE ALERT
-
Click "Acknowledge":
- Alert marked as reviewed
- Timestamp recorded
- Can still take action
-
Add Notes:
- Click "Add Investigation Notes"
- Document findings
- Save
TAKE ACTION
Allow Booking:
- Click "Allow" button
- Booking proceeds despite alert
- Logged for audit
Block User:
- Click "Block User" button
- Enter block duration
- Reason dropdown:
- Fraud Suspected
- Multiple Failed Payments
- Suspicious Pattern
- Manual Review Needed
- Confirm
- User cannot book during block period
Escalate:
- Click "Escalate to Admin"
- Adds to priority queue
- Admin reviews and decides
MANAGE FRAUD RULES
-
View Rules Tab:
- Shows all active fraud detection rules
- Rule thresholds
- Triggering conditions
-
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)
-
Access Verifayda Page:
- Click Verifayda Integration in Security & Compliance
- Shows verification history
-
Search & Filter:
- Search: Passenger name, national ID
- Status: Verified, Unverified, Pending, Failed
- Date Range: Filter by verification date
-
Verification Record:
- Passenger Name
- National ID (masked)
- Verification Status (badge)
- Verified Name (from government DB)
- Date of Birth
- Nationality
- Verified Date
VERIFY NATIONAL ID
-
Manual Verification:
- Click "Verify ID" button
- Enter National ID number
- Click "Verify"
-
Verification Process:
- Sends to Verifayda API
- Checks against government database
- Returns: Name, DOB, Nationality
-
Result:
- Success: Shows verified data
- Failed: Shows error reason
- Retry: Can attempt again
VIEW VERIFICATION DETAILS
- 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
-
Access Reports Page:
- Click Reports in Analytics & Reports
- Multiple report options available
-
Select Report Type:
- Revenue
- Occupancy
- Agent Performance
- Passenger Analytics
-
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
-
Generate: Click "Generate Report"
-
Display: Charts and tables appear
VIEW REPORT DETAILS
-
Charts:
- Line charts for trends
- Bar charts for comparisons
- Pie charts for distribution
-
Tables:
- Detailed data rows
- Sortable columns
- Pagination for large datasets
-
Export Options:
- Download as PDF
- Download as Excel
- Download as CSV
- Schedule recurring export
CUSTOMIZE REPORT
-
Add Metrics:
- Click "Add Metric"
- Select from available metrics
- Charts update
-
Change Date Range:
- Click date range selector
- Pick new dates
- Report regenerates
-
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)
-
Access Operational Reports:
- Click Operational Reports in Analytics & Reports
- Shows current system health
-
Health Dashboard:
- System status indicators
- Key metrics
- Recent issues (if any)
-
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
-
Access Agent Bookings:
- Click Agent Operations in System section
- Click "New Booking" button
-
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
-
Payment:
- Payment Method: Cash, Card, Check, etc.
- Amount Received (for cash)
- Change Calculation: Auto-calculated
-
Process:
- Click "Create Booking"
- Confirmation with booking reference
- Ticket printed or emailed
MANAGE SHIFTS
-
Open Shift:
- Click "Open Shift"
- Enter opening balance (cash)
- Click "Start Shift"
-
Close Shift:
- Click "Close Shift"
- Verify final cash
- Enter closing balance
- Reconcile differences
- Click "Complete Shift"
-
Shift Details:
- Opening/Closing Balance
- Total Bookings
- Total Sales
- Commission Earned
- Cash Count Variance
VIEW AGENT PERFORMANCE
- 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
- Click "Add User" button
- Fill Form:
- Email (required): Unique email
- Full Name (required): Display name
- Phone: Contact number
- Role (required): Select role
- Department: Optional
- Status: Active/Inactive
- Save: Click "Create User"
- Auto-email: Temporary password sent to email
READ (List Users)
-
View Users:
- Table shows all users
- Filter by role
- Search by name/email
-
Columns:
- Name
- Role (badge)
- Status
- Last Login
- Created Date
UPDATE
-
Click User Row:
- Opens user detail modal
- Shows profile & activity
-
Modify:
- Update name/phone
- Change role
- Update department
- Toggle active status
-
Password Reset:
- Click "Reset Password"
- Temporary password generated
- Sent to user email
DELETE
- Click "Delete" on user
- Confirm: Warns about implications
- 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
-
Navigate to Settings:
- Click Settings in System section
-
Select Category:
- General, Email, Payments, API, etc.
-
Modify Settings:
- Update configuration values
- Test connections (where applicable)
- Save changes
-
Confirmation:
- Settings updated with timestamp
- Changes take effect immediately
- Audit logged
Common Features
Data Table Features
All data tables include:
-
Search & Filter:
- Real-time search box
- Multiple filter dropdowns
- Date range pickers
- Status/category filters
-
Sorting:
- Click column headers to sort
- Sort order toggle (Asc/Desc)
- Multi-column sort (optional)
-
Pagination:
- Previous/Next buttons
- Jump to page input
- Page size selector
- Total record count
-
Bulk Actions:
- Checkbox selection
- Select All / Deselect All
- Bulk operations (Delete, Export, Update)
-
Export:
- Export visible columns
- Export filtered results
- Format options (CSV, Excel, JSON)
- Scheduled exports
Modal Dialog Features
All modals include:
-
Title Bar:
- Clear action title
- Close button (X)
-
Form Fields:
- Required field indicators (*)
- Field validation
- Error messages
- Helpful tooltips
-
Action Buttons:
- Primary action (Create, Save, Update)
- Secondary action (Cancel)
- Danger action (Delete)
- Loading state with spinner
-
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
- Always verify information before submitting
- Use dropdown selections when available
- Check date formats match system requirements
- Include descriptive notes for manual entries
- Save frequently during long forms
Booking Management
- Verify passenger identity before processing
- Confirm payment method before transaction
- Double-check seat assignments
- Note any special passenger requirements
- Provide clear confirmation references
Financial Operations
- Reconcile daily at shift end
- Verify exchange rates before currency conversion
- Keep refund documentation
- Review fraud alerts carefully
- Audit payment discrepancies
Security
- Lock screen when away from desk
- Use strong passwords (min. 12 characters)
- Enable two-factor authentication
- Report suspicious activity immediately
- Clear browser cache after sensitive operations
Compliance
- Follow audit procedures
- Retain records per retention policy
- Document all manual overrides
- Report data discrepancies
- Keep credentials confidential
Support & Help
Getting Help
In-App Help:
- Hover over fields for tooltips
- Click "?" icons for context help
- Use "Help" menu in navigation
Documentation:
- This comprehensive guide
- Video tutorials (under production)
- FAQ section in Support Center
Contact Support:
- Email: support@edr-platform.com
- Phone: +251-XXX-XXX-XXXX
- Chat: Available during business hours
- Ticket System: Create support ticket in app
Troubleshooting
Issue: Cannot login
- Verify email/password
- Check caps lock
- Try password reset
- Contact admin if locked out
Issue: Page not loading
- Refresh browser (F5)
- Clear browser cache
- Try different browser
- Check internet connection
Issue: Data not saving
- Verify all required fields
- Check for error messages
- Review audit logs
- Try again or contact support
Change Log
Version 1.0.0 (January 15, 2026)
- Complete Platform Release - Full-featured passenger management system
- Excess Luggage Management - Complete boarding baggage handling with agent tools and passenger self-pay options
- Travel Packages - Pilgrimage and group travel packages with tiered pricing, capacity management, and inquiry handling
- System Health Monitoring - Real-time API health checks with liveness, readiness, and performance metrics
- System Configuration - Centralized config management with feature flags, rate limiting, and operational controls
- Package Inquiries - Dedicated management for package booking inquiries with status tracking
- Boarding Management - Gate operations, passenger processing, and boarding workflow tools
- Advanced Fare Configuration - Dynamic fare management with complex pricing rules and segment-based pricing
- Payment Methods Configuration - Multi-provider payment setup and management interface
- Enhanced Settings - Improved settings interface with tabbed sections and live configuration updates
- Multi-currency support - ETB, DJF, USD with real-time exchange rates
- Verifayda 2.0 integration - Ethiopian national ID verification
- Age-based pricing - ADULT/CHILD categories with free first child policy
- Segment fare rules - Complex pricing with nationality-specific rates
Appendix
Acronyms & Abbreviations
| Acronym | Meaning |
|---|---|
| ETB | Ethiopian Birr |
| DJF | Djiboutian Franc |
| USD | US Dollar |
| EDR | Ethio-Djibouti Railway |
| SMS | Short Message Service |
| WCAG | Web Content Accessibility Guidelines |
| CSV | Comma-Separated Values |
| API | Application Programming Interface |
| SMTP | Simple Mail Transfer Protocol |
| CRUD | Create, Read, Update, Delete |
| IAM | Identity and Access Management |
Currency Codes
| Code | Currency | Country |
|---|---|---|
| ETB | Ethiopian Birr | Ethiopia |
| DJF | Djiboutian Franc | Djibouti |
| USD | US Dollar | United States |
Timezone Reference
| Timezone | Region | UTC Offset |
|---|---|---|
| Africa/Addis_Ababa | Ethiopia | UTC+3 |
| Africa/Djibouti | Djibouti | UTC+3 |
| UTC | Coordinated Universal Time | UTC+0 |
For more information or feedback, please contact the development team or visit the support portal.
Enhanced Features
Excess Luggage
Purpose: Manage excess baggage charges at boarding with agent tools and passenger self-pay
Access Level: Agent, Supervisor, Admin
Icon: Package
Features Overview
┌──────────────────────────────┐
│ EXCESS BAGGAGE MANAGEMENT │
├──────────────────────────────┤
│ ✓ View Excess Charges │
│ ✓ Search by Booking Ref │
│ ✓ Track Payment Status │
│ ✓ Waive Charges │
│ ✓ Resend Payment Links │
│ ✓ Agent Cash Collection │
└──────────────────────────────┘
Excess Luggage Process
- At Boarding: Agent weighs passenger baggage
- If Excess: Agent creates charge in system
- Payment Options:
- Passenger self-pay via mobile link
- Agent collects cash on-the-spot
- Completion: Passenger boards after payment
Charge Statuses
- PENDING: Awaiting passenger payment (5-minute link expiry)
- PAID: Successfully paid via mobile payment
- CASH_COLLECTED: Agent collected cash payment
- EXPIRED: Payment link expired
- WAIVED: Supervisor waived the charge
CRUD Operations
READ (List Charges)
-
Access Excess Luggage Page:
- Click Excess Luggage in Enhanced Features section
- Shows all baggage charges
-
Search & Filter:
- Search Box: Filter by booking reference
- Status Filter: PENDING, PAID, CASH_COLLECTED, EXPIRED, WAIVED
- Date Range: Filter by creation date
-
Charge Information:
- Booking Reference
- Excess Weight (kg)
- Fee per kg
- Total Amount (ETB)
- Payment Status
- Contact Information
- Expiry Time
MANAGE CHARGES
Resend Payment Link:
- For PENDING charges: Click "Resend Link"
- New SMS/Email: Sent to passenger
- Fresh 5-minute: New expiry timer
Waive Charge:
- Click "Waive" on pending/expired charge
- Enter Reason: Medical exemption, scale error, etc.
- Confirm: Charge marked as waived
- Audit: Action logged for compliance
Delete Charge:
- Only for EXPIRED/WAIVED: Click "Delete"
- Confirm: Permanent removal from system
- Note: Cannot delete active or paid charges
Agent Workflow
- Weigh Luggage: Use station scales
- Check Allowance: Compare to passenger's seat class allowance
- Create Charge: If excess weight found
- Offer Payment Options:
- Mobile payment link (passenger's phone)
- Cash payment (agent collection)
- Process Boarding: After payment completed
Travel Packages
Purpose: Manage pilgrimage and group travel packages with tiered pricing
Access Level: Supervisor, Admin
Icon: Package
Features Overview
┌──────────────────────────────┐
│ TRAVEL PACKAGES MANAGEMENT │
├──────────────────────────────┤
│ ✓ Create Packages │
│ ✓ Multi-tier Pricing │
│ ✓ Capacity Management │
│ ✓ Schedule Integration │
│ ✓ Bus Transfer Coordination │
│ ✓ Package Status Control │
└──────────────────────────────┘
Package Information
- Code: Unique package identifier (e.g., "KULUBBI-2025")
- Name: Package display name
- Origin/Destination: Station pairs
- Schedules: Outbound and return train schedules
- Capacity: Total seats available
- Coach Configuration: Train composition
- Included Services: List of package inclusions
- Bus Transfer: Optional bus coordination
- Validity Period: Package booking window
Package Statuses
- DRAFT: Created but not yet active
- ACTIVE: Available for booking
- SOLD_OUT: All seats booked
- EXPIRED: Past validity period
- CANCELLED: No longer offered
CRUD Operations
CREATE
- Click "New Package" button
- Fill Package Form:
- Code (required): Unique identifier
- Name (required): Display name
- Description: Optional details
- Origin/Destination Stations: Select from dropdown
- Outbound/Return Schedules: Link to existing schedules
- Boarding/Departure/Arrival Times: Package timeline
- Total Capacity: Available seats
- Coach Configuration: Train setup description
- Included Services: One service per line
- Bus Transfer: Enable and specify route
- Valid From/Until: Booking window
- Save: Click "Create Package"
- Next Step: Add price tiers
READ (List Packages)
-
View Packages:
- Table shows all packages
- Search by name or code
- Filter by status
- Filter by validity dates
-
Package Details:
- Click "View" to see full information
- Shows all configuration details
- Lists price tiers with booking status
- Displays included services
UPDATE
- Click "Edit" on package
- Modify Details:
- Update package information
- Change validity periods
- Adjust capacity (if no bookings)
- Save: Click "Update Package"
MANAGE PRICE TIERS
- Click "Tiers" on package
- View Existing Tiers:
- Shows seat type, label, price, capacity
- Displays booking progress
- Add New Tier:
- Seat Type: HSC, VIP, etc.
- Label: Display name (e.g., "Regular Seat (HSC)")
- Price (minor): Amount in cents/minor units
- Available Seats: Tier capacity
- Edit Existing Tier:
- Click "Edit" on tier
- Modify details (limited if bookings exist)
- Delete Tier:
- Click "Delete" (only if no bookings)
ACTIVATE/DEACTIVATE
Activate Package:
- For DRAFT packages: Click "Activate"
- Confirmation: Package becomes publicly bookable
- Status Change: DRAFT → ACTIVE
Deactivate Package:
- For ACTIVE packages: Click "Deactivate"
- Confirmation: Removes from public booking
- Existing Bookings: Remain valid
DELETE
- Click "Delete" on package
- Warning: Shows impact on existing bookings
- Confirm: Permanent removal
- Cascade: Also removes price tiers
Example Package
Code: KULUBBI-2025
Name: Kulubbi Pilgrimage Package
Route: Addis Ababa → Awash (return)
Capacity: 912 passengers
Includes:
- Round trip train ticket
- Bus transfer to Kulubbi site
- Meal on board
- Guided tour
Price Tiers:
- Regular Seat (HSC): 10,232 ETB
- Premium Seat (VIP): 15,348 ETB
- Sleeper Bed (BED): 20,464 ETB
Package Inquiries
Purpose: Manage incoming package booking inquiries and lead conversion
Access Level: Agent, Supervisor, Admin
Icon: MessageSquare
Features Overview
┌──────────────────────────────┐
│ PACKAGE INQUIRIES MANAGEMENT │
├──────────────────────────────┤
│ ✓ View All Inquiries │
│ ✓ Filter by Package │
│ ✓ Track Inquiry Status │
│ ✓ Contact Information │
│ ✓ Lead Conversion │
│ ✓ Delete Inquiries │
└──────────────────────────────┘
Inquiry Information
- Contact Name: Inquirer's name
- Contact Email/Phone: Contact details
- Package: Requested package
- Price Tier: Selected tier (if specified)
- Traveler Count: Number of passengers
- Inquiry Date: When submitted
- Notes: Additional comments
- Status: Current inquiry status
Inquiry Statuses
- NEW: Just received, not yet contacted
- CONTACTED: Agent has reached out
- CONVERTED: Successfully converted to booking
- CLOSED: Not converted, inquiry closed
CRUD Operations
READ (List Inquiries)
-
Access Package Inquiries:
- Click Package Inquiries in Enhanced Features
- Shows all inquiries
-
Filter Options:
- Package Filter: Select specific package
- Status Filter: NEW, CONTACTED, CONVERTED, CLOSED
-
Inquiry Details:
- Contact information
- Requested package and tier
- Traveler count
- Price information
- Inquiry notes
UPDATE STATUS
- Status Dropdown: In each inquiry row
- Change Status: Select new status
- Auto-save: Updates immediately
- Track Progress: Monitor conversion funnel
Status Workflow:
NEW → CONTACTED → CONVERTED/CLOSED
DELETE
- Click "Delete" on inquiry
- Confirmation: Cannot be undone
- Use Case: Remove spam or duplicate inquiries
Lead Management
Best Practices:
- Respond Quickly: Contact NEW inquiries within 24 hours
- Follow Up: Move to CONTACTED after first contact
- Track Conversion: Mark as CONVERTED when booked
- Close Non-converts: Mark as CLOSED if not interested
Health Monitoring
Purpose: Monitor EDR Passenger API health and system performance
Access Level: Admin, Supervisor
Icon: Activity
Features Overview
┌──────────────────────────────┐
│ HEALTH MONITORING MGMT │
├──────────────────────────────┤
│ ✓ Liveness Checks │
│ ✓ Readiness Probes │
│ ✓ Database Health │
│ ✓ Application Info │
│ ✓ Real-time Status │
│ ✓ Rate Limit Overview │
└──────────────────────────────┘
Health Check Types
Liveness Probe (GET /health):
- Confirms API process is alive
- Quick response check
- Auto-refreshes every 30 seconds
Readiness Probe (GET /health/ready):
- Database connectivity test
- Live database ping with latency
- Indicates if API can serve traffic
Application Info (GET /health/info):
- App version and environment
- System uptime
- Refreshes every 60 seconds
Health Status Indicators
Overall Status Banner:
- Green: All systems operational
- Red: Service degraded
- Gray: Checking status...
Individual Probe Cards:
- Status dot (green/red/gray)
- Health badge (Healthy/Degraded/Checking...)
- Last check timestamp
- Error details (if failed)
CRUD Operations
READ (Monitor Health)
-
Access Health Page:
- Click Health Monitoring in Enhanced Features
- Auto-refreshing dashboard
-
System Overview:
- Overall health banner
- Individual probe status
- Real-time updates
-
Detailed Metrics:
- Database latency (ms)
- Application uptime
- Version information
- Environment details
REFRESH STATUS
- Manual Refresh: Click "Refresh" button
- Auto-refresh:
- Health probes: 30 seconds
- App info: 60 seconds
- Loading States: Shows during refresh
Rate Limits Reference
The health page includes a rate limits table:
| Tier | Limit | Applied to |
|---|---|---|
| auth | 5 req/min | /auth, /fayda/verification |
| strict | 20 req/min | /bookings, /passengers, /payments, /wallet |
| default | 100 req/min | All other endpoints |
| exempt | No limit | /health/*, payment webhooks |
Troubleshooting
Common Issues:
-
Database Connectivity:
- Check network connection
- Verify database server status
- Review connection string
-
High Latency:
- Monitor database performance
- Check server resources
- Review query optimization
-
Failed Health Checks:
- Review API server logs
- Check system resources
- Verify service configuration
System Config
Purpose: Centralized system configuration management with feature flags
Access Level: Admin
Icon: Settings
Features Overview
┌──────────────────────────────┐
│ SYSTEM CONFIG MANAGEMENT │
├──────────────────────────────┤
│ ✓ Rate Limit Configuration │
│ ✓ Seat Booking Settings │
│ ✓ Feature Flags │
│ ✓ Operational Controls │
│ ✓ Live Configuration Updates │
│ ✓ Validation & Saving │
└──────────────────────────────┘
Configuration Categories
Rate Limiting (requests per minute per IP):
- Auth endpoints: Login, register, OTP (default: 5)
- Strict endpoints: Sensitive operations (default: 20)
- Default endpoints: All other endpoints (default: 100)
Seat Booking:
- Hold Duration: How long seats stay held (default: 5 minutes)
- Hold Cutoff: Stop accepting holds X hours before departure (default: 2 hours)
CRUD Operations
READ (View Configuration)
-
Access System Config:
- Click System Config in System section
- Loads current configuration values
-
Configuration Display:
- Rate limiting settings with descriptions
- Seat booking parameters
- Current values shown
UPDATE CONFIGURATION
-
Modify Settings:
- Auth Limit: Adjust authentication rate limit
- Strict Limit: Change sensitive operations limit
- Default Limit: Update general rate limit
- Hold Duration: Set seat hold time in minutes
- Hold Cutoff: Set cutoff hours before departure
-
Validation:
- Minimum values enforced
- Reasonable maximums suggested
- Input validation on save
-
Save Changes:
- Click "Save Changes" button
- Configuration applied immediately
- Success/error feedback shown
Configuration Examples
Rate Limiting Tiers:
Auth endpoints (5/min):
- /auth/login
- /auth/register
- /fayda/verification
Strict endpoints (20/min):
- /bookings/*
- /passengers/*
- /payments/*
- /wallet/*
Default endpoints (100/min):
- /search/*
- /stations/*
- All other public endpoints
Seat Management:
Hold Duration: 5 minutes
- Passenger has 5 minutes to complete booking
- After expiry, seats released automatically
Hold Cutoff: 2 hours
- No new holds accepted within 2 hours of departure
- Prevents last-minute booking complications
System Impact
Rate Limit Changes:
- Applied immediately to new requests
- Existing connections not affected
- Monitor for performance impact
Seat Booking Changes:
- New holds use updated duration
- Existing holds retain original expiry
- Cutoff affects future booking attempts
Best Practices
- Monitor Impact: Watch system performance after changes
- Conservative Adjustments: Make incremental changes
- Peak Periods: Consider higher limits during busy times
- Security Balance: Balance usability with abuse prevention
- Documentation: Document reasons for configuration changes
Boarding Management
Purpose: Manage gate operations and passenger boarding processes
Access Level: Agent, Supervisor, Admin
Icon: Users
Features Overview
┌──────────────────────────────┐
│ BOARDING MANAGEMENT MGMT │
├──────────────────────────────┤
│ ✓ Gate Operations │
│ ✓ Passenger Check-in │
│ ✓ Boarding Pass Validation │
│ ✓ Seat Assignment Verification│
│ ✓ Boarding Status Tracking │
│ ✓ Real-time Updates │
└──────────────────────────────┘
CRUD Operations
READ (Monitor Boarding)
-
Access Boarding Page:
- Click Boarding Management in Enhanced Features
- Select active trip/schedule
- View real-time boarding status
-
Boarding Dashboard:
- Total passengers expected
- Passengers boarded
- Boarding progress tracking
Advanced Fare Configuration
Purpose: Manage complex fare rules and dynamic pricing strategies
Access Level: Admin, Supervisor
Icon: Calculator
Features Overview
┌──────────────────────────────┐
│ ADVANCED FARE CONFIG MGMT │
├──────────────────────────────┤
│ ✓ Dynamic Fare Rules │
│ ✓ Segment-based Pricing │
│ ✓ Nationality-specific Rates │
│ ✓ Seasonal Adjustments │
│ ✓ Fare Engine Integration │
│ ✓ Real-time Calculations │
└──────────────────────────────┘
CRUD Operations
CREATE FARE RULES
-
Access Fare Management:
- Click Advanced Fare Config in Enhanced Features
- Choose between Schedule Fares or Segment Fares
-
Configure Rules:
- Set fare amounts and validity periods
- Define passenger categories and nationalities
- Apply to specific routes or schedules
Payment Methods Configuration
Purpose: Configure and manage payment provider integrations
Access Level: Admin
Icon: CreditCard
Features Overview
┌──────────────────────────────┐
│ PAYMENT METHODS CONFIG MGMT │
├──────────────────────────────┤
│ ✓ Provider Setup │
│ ✓ API Configuration │
│ ✓ Enable/Disable Methods │
│ ✓ Webhook Management │
│ ✓ Test Transactions │
│ ✓ Fee Configuration │
└──────────────────────────────┘
Supported Providers
- Telebirr: Ethiopian mobile payment
- CBE Birr: Commercial Bank of Ethiopia
- eBirr: Electronic wallet service
- Card Payments: VISA, Mastercard
- WAAFI: Money transfer service
- Agent Cash: Counter collection
CRUD Operations
UPDATE CONFIGURATION
-
Provider Setup:
- Configure API credentials
- Set transaction fees and limits
- Enable/disable providers
-
Test & Validate:
- Run test transactions
- Validate webhook endpoints
- Monitor connectivity
Boarding Management
Purpose: Manage gate operations and passenger boarding processes
Access Level: Agent, Supervisor, Admin
Icon: Users
Features Overview
┌──────────────────────────────┐
│ BOARDING MANAGEMENT MGMT │
├──────────────────────────────┤
│ ✓ Gate Operations │
│ ✓ Passenger Check-in │
│ ✓ Boarding Pass Validation │
│ ✓ Seat Assignment Verification│
│ ✓ Boarding Status Tracking │
│ ✓ Real-time Updates │
└──────────────────────────────┘
Boarding Process
- Pre-boarding Setup: Configure gates and boarding times
- Passenger Check-in: Validate tickets and documents
- Boarding Queue: Manage passenger flow and priority boarding
- Seat Verification: Confirm seat assignments and resolve conflicts
- Boarding Completion: Final passenger count and departure clearance
CRUD Operations
READ (Monitor Boarding)
-
Access Boarding Page:
- Click Boarding Management in Enhanced Features
- Select active trip/schedule
- View real-time boarding status
-
Boarding Dashboard:
- Total passengers expected
- Passengers boarded
- Remaining passengers
- Boarding progress percentage
- Gate status and alerts
MANAGE BOARDING PROCESS
Start Boarding:
- Select Trip: Choose scheduled departure
- Open Gates: Activate boarding process
- Scan Tickets: Validate passenger tickets and documents
- Update Status: Track boarding progress in real-time
Handle Issues:
- Seat Conflicts: Resolve duplicate seat assignments
- Missing Passengers: Mark no-shows
- Late Arrivals: Process last-minute passengers
- Special Assistance: Handle wheelchair, elderly, child passengers
Advanced Fare Configuration
Purpose: Manage complex fare rules and dynamic pricing strategies
Access Level: Admin, Supervisor
Icon: Calculator
Features Overview
┌──────────────────────────────┐
│ ADVANCED FARE CONFIG MGMT │
├──────────────────────────────┤
│ ✓ Dynamic Fare Rules │
│ ✓ Segment-based Pricing │
│ ✓ Nationality-specific Rates │
│ ✓ Seasonal Adjustments │
│ ✓ Fare Engine Integration │
│ ✓ Real-time Calculations │
└──────────────────────────────┘
Fare Rule Types
Schedule-specific Fares:
- Fixed rates for specific train schedules
- Override default fare calculations
- Temporary promotional pricing
Route Segment Fares:
- Different pricing for route segments
- Origin-destination specific rates
- Distance-based calculations
Passenger Category Fares:
- ADULT vs CHILD pricing
- Nationality-based rates (Ethiopian, Djiboutian, Other)
- Group discounts
CRUD Operations
CREATE FARE RULES
-
Access Fare Management:
- Click Advanced Fare Config in Enhanced Features
- Choose between Schedule Fares or Segment Fares
-
Schedule Fare Rule:
- Schedule: Select specific trip
- Seat Class: Choose class (Economy, VIP, etc.)
- Fare Amount: Set price in ETB
- Passenger Type: ADULT or CHILD (optional)
- Nationality: Specific nationality or All
- Valid Period: Start and end dates
-
Segment Fare Rule:
- Route: Select route
- Origin/Destination: Choose station pair
- Seat Class: Select class
- Fare Amount: Set segment price
- Passenger Type: ADULT/CHILD filter
- Valid Period: Effective dates
READ (View Fare Rules)
-
Schedule Fares Tab:
- Select schedule to view calculated fares
- See all active seat classes
- View fare breakdown by category
-
Segment Fares Tab:
- Select route to view segment rules
- See origin-destination combinations
- Filter by fare rule criteria
UPDATE/DELETE FARE RULES
- Edit Rules: Click "Edit" on existing fare rule
- Delete Rules: Click "Delete" to remove rule
- Validation: Changes affect future bookings only
Fare Calculation Priority
1. Segment Fare (nationality-specific)
2. Segment Fare (generic)
3. Schedule Fare (nationality-specific)
4. Schedule Fare (generic)
5. Default Class Base Fare
Payment Methods Configuration
Purpose: Configure and manage payment provider integrations
Access Level: Admin
Icon: CreditCard
Features Overview
┌──────────────────────────────┐
│ PAYMENT METHODS CONFIG MGMT │
├──────────────────────────────┤
│ ✓ Provider Setup │
│ ✓ API Configuration │
│ ✓ Enable/Disable Methods │
│ ✓ Webhook Management │
│ ✓ Test Transactions │
│ ✓ Fee Configuration │
└──────────────────────────────┘
Supported Payment Providers
- Telebirr: Ethiopian mobile payment
- CBE Birr: Commercial Bank of Ethiopia
- eBirr: Electronic wallet service
- Card Payments: VISA, Mastercard via gateway
- WAAFI: Money transfer service
- Agent Cash: Counter cash collection
CRUD Operations
READ (View Payment Methods)
-
Access Payment Methods:
- Click Payment Methods in Enhanced Features
- View all configured providers
- See status and configuration
-
Provider Status:
- Enabled/Disabled toggle
- Configuration status
- Last transaction test
- Error logs (if any)
UPDATE CONFIGURATION
Provider Setup:
-
API Credentials:
- Base URL
- API Key/Secret
- Merchant ID
- Webhook endpoints
-
Settings:
- Enable/disable provider
- Transaction fees
- Minimum/maximum amounts
- Currency support
-
Test Configuration:
- Run test transactions
- Validate webhook endpoints
- Check API connectivity
Webhook Management:
- Endpoint URLs: Configure callback URLs
- Security: Set webhook secrets
- Event Types: Select events to receive
- Retry Logic: Configure retry attempts
TROUBLESHOOTING
Common Issues:
- API Connectivity: Check network and credentials
- Webhook Failures: Verify endpoint accessibility
- Transaction Failures: Review provider logs
- Configuration Errors: Validate API settings