mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
3818 lines
100 KiB
Markdown
3818 lines
100 KiB
Markdown
# 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
|
||
- **🆕 Excess Luggage Management**: Handle boarding baggage charges with agent tools
|
||
- **🆕 Travel Packages**: Manage pilgrimage and group travel packages with tiered pricing
|
||
- **🆕 System Health Monitoring**: Real-time API health checks and system status
|
||
- **🆕 Advanced Fare Configuration**: Dynamic pricing with segment-based rules
|
||
- **🆕 Boarding Management**: Gate operations and passenger processing
|
||
- **🆕 Payment Methods Configuration**: Multi-provider payment setup
|
||
- **🆕 Package Inquiries**: Lead management for travel package bookings
|
||
- **🆕 Centralized Configuration**: Feature flags and operational controls
|
||
|
||
### Supported Roles
|
||
- **Agent**: Counter booking and basic operations
|
||
- **Supervisor**: Agent oversight and operational decisions
|
||
- **Admin**: Full system access and configuration
|
||
- **Staff**: Limited access to specific modules
|
||
|
||
---
|
||
|
||
## Application Structure
|
||
|
||
### Sidebar Organization
|
||
|
||
The application is organized into 8 main sections:
|
||
|
||
```
|
||
├── Overview
|
||
│ └── Dashboard
|
||
├── Operations
|
||
│ ├── Bookings
|
||
│ ├── Passengers
|
||
│ └── Tickets
|
||
├── Master Data
|
||
│ ├── Stations
|
||
│ ├── Trains
|
||
│ ├── Coaches
|
||
│ ├── Seats
|
||
│ ├── Classes
|
||
│ ├── Routes
|
||
│ └── Schedules
|
||
├── Financial
|
||
│ ├── Pricing & Fares
|
||
│ ├── Currencies
|
||
│ ├── Payments
|
||
│ └── Promo Codes
|
||
├── Customer Services
|
||
│ ├── Loyalty Program
|
||
│ ├── Support Center
|
||
│ └── Notifications
|
||
├── Security & Compliance
|
||
│ ├── Audit Logs
|
||
│ ├── Fraud Detection
|
||
│ └── Verifayda Integration
|
||
├── Analytics & Reports
|
||
│ ├── Reports
|
||
│ └── Operational Reports
|
||
└── System
|
||
├── Agent Operations
|
||
├── User Management
|
||
├── System Config
|
||
└── Settings
|
||
└── Enhanced Features
|
||
├── Excess Luggage
|
||
├── Travel Packages
|
||
├── Package Inquiries
|
||
├── Health Monitoring
|
||
├── Boarding Management
|
||
├── Advanced Fare Config
|
||
└── Payment Methods
|
||
```
|
||
|
||
### Theme & Personalization
|
||
|
||
- **Dark Mode Toggle**: Available in the header for reduced eye strain
|
||
- **Sidebar Collapse**: Click the chevron icon to minimize sidebar for more screen space
|
||
- **Responsive Design**: Fully responsive interface for desktop and tablet use
|
||
- **Accessible UI**: WCAG 2.1 AA compliant for accessibility
|
||
|
||
---
|
||
|
||
## Sidebar Navigation Guide
|
||
|
||
### Collapsible Sidebar
|
||
|
||
**Feature**: Expand/Collapse Navigation
|
||
**Location**: Top-right corner of sidebar header
|
||
|
||
**How to Use:**
|
||
1. Click the **Chevron** (</> or >>) icon in the sidebar header
|
||
2. Sidebar collapses to icon-only view
|
||
3. Hover over icons to see tooltip labels
|
||
4. Click again to expand full sidebar
|
||
|
||
**Benefits:**
|
||
- Maximize content viewing area
|
||
- Cleaner interface for focused work
|
||
- Quick navigation with tooltips
|
||
|
||
---
|
||
|
||
## Operations Management
|
||
|
||
### Bookings
|
||
|
||
**Purpose**: Manage all passenger bookings, view details, modify, and process cancellations
|
||
**Access Level**: Agent, Supervisor, Admin
|
||
**Icon**: Ticket
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ BOOKINGS MANAGEMENT │
|
||
├─────────────────────────────┤
|
||
│ ✓ List & Filter │
|
||
│ ✓ Search by Reference │
|
||
│ ✓ View Full Details │
|
||
│ ✓ Cancel with Refunds │
|
||
│ ✓ Delete Records │
|
||
│ ✓ Export Data │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
#### CRUD Operations
|
||
|
||
##### CREATE (Direct Booking Creation)
|
||
**Note**: Bookings are primarily created through the passenger portal. Backoffice staff use agent operations module for counter bookings.
|
||
|
||
1. **Agent Counter Booking**:
|
||
- Navigate to **Agent Operations** (System section)
|
||
- Create booking through dedicated agent interface
|
||
- Specify passengers, seats, and payment method
|
||
|
||
##### 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 (January 15, 2026)
|
||
- **Complete Platform Release** - Full-featured passenger management system
|
||
- **Excess Luggage Management** - Complete boarding baggage handling with agent tools and passenger self-pay options
|
||
- **Travel Packages** - Pilgrimage and group travel packages with tiered pricing, capacity management, and inquiry handling
|
||
- **System Health Monitoring** - Real-time API health checks with liveness, readiness, and performance metrics
|
||
- **System Configuration** - Centralized config management with feature flags, rate limiting, and operational controls
|
||
- **Package Inquiries** - Dedicated management for package booking inquiries with status tracking
|
||
- **Boarding Management** - Gate operations, passenger processing, and boarding workflow tools
|
||
- **Advanced Fare Configuration** - Dynamic fare management with complex pricing rules and segment-based pricing
|
||
- **Payment Methods Configuration** - Multi-provider payment setup and management interface
|
||
- **Enhanced Settings** - Improved settings interface with tabbed sections and live configuration updates
|
||
- **Multi-currency support** - ETB, DJF, USD with real-time exchange rates
|
||
- **Verifayda 2.0 integration** - Ethiopian national ID verification
|
||
- **Age-based pricing** - ADULT/CHILD categories with free first child policy
|
||
- **Segment fare rules** - Complex pricing with nationality-specific rates
|
||
|
||
---
|
||
|
||
## Appendix
|
||
|
||
### Acronyms & Abbreviations
|
||
|
||
| Acronym | Meaning |
|
||
|---------|---------|
|
||
| ETB | Ethiopian Birr |
|
||
| DJF | Djiboutian Franc |
|
||
| USD | US Dollar |
|
||
| EDR | Ethio-Djibouti Railway |
|
||
| SMS | Short Message Service |
|
||
| WCAG | Web Content Accessibility Guidelines |
|
||
| CSV | Comma-Separated Values |
|
||
| API | Application Programming Interface |
|
||
| SMTP | Simple Mail Transfer Protocol |
|
||
| CRUD | Create, Read, Update, Delete |
|
||
| IAM | Identity and Access Management |
|
||
|
||
### Currency Codes
|
||
|
||
| Code | Currency | Country |
|
||
|------|----------|---------|
|
||
| ETB | Ethiopian Birr | Ethiopia |
|
||
| DJF | Djiboutian Franc | Djibouti |
|
||
| USD | US Dollar | United States |
|
||
|
||
### Timezone Reference
|
||
|
||
| Timezone | Region | UTC Offset |
|
||
|----------|--------|------------|
|
||
| Africa/Addis_Ababa | Ethiopia | UTC+3 |
|
||
| Africa/Djibouti | Djibouti | UTC+3 |
|
||
| UTC | Coordinated Universal Time | UTC+0 |
|
||
|
||
---
|
||
|
||
**For more information or feedback, please contact the development team or visit the support portal.**
|
||
|
||
---
|
||
|
||
## Enhanced Features
|
||
|
||
### Excess Luggage
|
||
|
||
**Purpose**: Manage excess baggage charges at boarding with agent tools and passenger self-pay
|
||
**Access Level**: Agent, Supervisor, Admin
|
||
**Icon**: Package
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ EXCESS BAGGAGE MANAGEMENT │
|
||
├──────────────────────────────┤
|
||
│ ✓ View Excess Charges │
|
||
│ ✓ Search by Booking Ref │
|
||
│ ✓ Track Payment Status │
|
||
│ ✓ Waive Charges │
|
||
│ ✓ Resend Payment Links │
|
||
│ ✓ Agent Cash Collection │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Excess Luggage Process
|
||
|
||
1. **At Boarding**: Agent weighs passenger baggage
|
||
2. **If Excess**: Agent creates charge in system
|
||
3. **Payment Options**:
|
||
- Passenger self-pay via mobile link
|
||
- Agent collects cash on-the-spot
|
||
4. **Completion**: Passenger boards after payment
|
||
|
||
#### Charge Statuses
|
||
|
||
- **PENDING**: Awaiting passenger payment (5-minute link expiry)
|
||
- **PAID**: Successfully paid via mobile payment
|
||
- **CASH_COLLECTED**: Agent collected cash payment
|
||
- **EXPIRED**: Payment link expired
|
||
- **WAIVED**: Supervisor waived the charge
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (List Charges)
|
||
|
||
1. **Access Excess Luggage Page**:
|
||
- Click **Excess Luggage** in Enhanced Features section
|
||
- Shows all baggage charges
|
||
|
||
2. **Search & Filter**:
|
||
- **Search Box**: Filter by booking reference
|
||
- **Status Filter**: PENDING, PAID, CASH_COLLECTED, EXPIRED, WAIVED
|
||
- **Date Range**: Filter by creation date
|
||
|
||
3. **Charge Information**:
|
||
- Booking Reference
|
||
- Excess Weight (kg)
|
||
- Fee per kg
|
||
- Total Amount (ETB)
|
||
- Payment Status
|
||
- Contact Information
|
||
- Expiry Time
|
||
|
||
##### MANAGE CHARGES
|
||
|
||
**Resend Payment Link**:
|
||
1. **For PENDING charges**: Click "Resend Link"
|
||
2. **New SMS/Email**: Sent to passenger
|
||
3. **Fresh 5-minute**: New expiry timer
|
||
|
||
**Waive Charge**:
|
||
1. **Click "Waive"** on pending/expired charge
|
||
2. **Enter Reason**: Medical exemption, scale error, etc.
|
||
3. **Confirm**: Charge marked as waived
|
||
4. **Audit**: Action logged for compliance
|
||
|
||
**Delete Charge**:
|
||
1. **Only for EXPIRED/WAIVED**: Click "Delete"
|
||
2. **Confirm**: Permanent removal from system
|
||
3. **Note**: Cannot delete active or paid charges
|
||
|
||
#### Agent Workflow
|
||
|
||
1. **Weigh Luggage**: Use station scales
|
||
2. **Check Allowance**: Compare to passenger's seat class allowance
|
||
3. **Create Charge**: If excess weight found
|
||
4. **Offer Payment Options**:
|
||
- Mobile payment link (passenger's phone)
|
||
- Cash payment (agent collection)
|
||
5. **Process Boarding**: After payment completed
|
||
|
||
---
|
||
|
||
### Travel Packages
|
||
|
||
**Purpose**: Manage pilgrimage and group travel packages with tiered pricing
|
||
**Access Level**: Supervisor, Admin
|
||
**Icon**: Package
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ TRAVEL PACKAGES MANAGEMENT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Create Packages │
|
||
│ ✓ Multi-tier Pricing │
|
||
│ ✓ Capacity Management │
|
||
│ ✓ Schedule Integration │
|
||
│ ✓ Bus Transfer Coordination │
|
||
│ ✓ Package Status Control │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Package Information
|
||
|
||
- **Code**: Unique package identifier (e.g., "KULUBBI-2025")
|
||
- **Name**: Package display name
|
||
- **Origin/Destination**: Station pairs
|
||
- **Schedules**: Outbound and return train schedules
|
||
- **Capacity**: Total seats available
|
||
- **Coach Configuration**: Train composition
|
||
- **Included Services**: List of package inclusions
|
||
- **Bus Transfer**: Optional bus coordination
|
||
- **Validity Period**: Package booking window
|
||
|
||
#### Package Statuses
|
||
|
||
- **DRAFT**: Created but not yet active
|
||
- **ACTIVE**: Available for booking
|
||
- **SOLD_OUT**: All seats booked
|
||
- **EXPIRED**: Past validity period
|
||
- **CANCELLED**: No longer offered
|
||
|
||
#### CRUD Operations
|
||
|
||
##### CREATE
|
||
|
||
1. **Click "New Package"** button
|
||
2. **Fill Package Form**:
|
||
- **Code** (required): Unique identifier
|
||
- **Name** (required): Display name
|
||
- **Description**: Optional details
|
||
- **Origin/Destination Stations**: Select from dropdown
|
||
- **Outbound/Return Schedules**: Link to existing schedules
|
||
- **Boarding/Departure/Arrival Times**: Package timeline
|
||
- **Total Capacity**: Available seats
|
||
- **Coach Configuration**: Train setup description
|
||
- **Included Services**: One service per line
|
||
- **Bus Transfer**: Enable and specify route
|
||
- **Valid From/Until**: Booking window
|
||
3. **Save**: Click "Create Package"
|
||
4. **Next Step**: Add price tiers
|
||
|
||
##### READ (List Packages)
|
||
|
||
1. **View Packages**:
|
||
- Table shows all packages
|
||
- Search by name or code
|
||
- Filter by status
|
||
- Filter by validity dates
|
||
|
||
2. **Package Details**:
|
||
- Click "View" to see full information
|
||
- Shows all configuration details
|
||
- Lists price tiers with booking status
|
||
- Displays included services
|
||
|
||
##### UPDATE
|
||
|
||
1. **Click "Edit"** on package
|
||
2. **Modify Details**:
|
||
- Update package information
|
||
- Change validity periods
|
||
- Adjust capacity (if no bookings)
|
||
3. **Save**: Click "Update Package"
|
||
|
||
##### MANAGE PRICE TIERS
|
||
|
||
1. **Click "Tiers"** on package
|
||
2. **View Existing Tiers**:
|
||
- Shows seat type, label, price, capacity
|
||
- Displays booking progress
|
||
3. **Add New Tier**:
|
||
- **Seat Type**: HSC, VIP, etc.
|
||
- **Label**: Display name (e.g., "Regular Seat (HSC)")
|
||
- **Price (minor)**: Amount in cents/minor units
|
||
- **Available Seats**: Tier capacity
|
||
4. **Edit Existing Tier**:
|
||
- Click "Edit" on tier
|
||
- Modify details (limited if bookings exist)
|
||
5. **Delete Tier**:
|
||
- Click "Delete" (only if no bookings)
|
||
|
||
##### ACTIVATE/DEACTIVATE
|
||
|
||
**Activate Package**:
|
||
1. **For DRAFT packages**: Click "Activate"
|
||
2. **Confirmation**: Package becomes publicly bookable
|
||
3. **Status Change**: DRAFT → ACTIVE
|
||
|
||
**Deactivate Package**:
|
||
1. **For ACTIVE packages**: Click "Deactivate"
|
||
2. **Confirmation**: Removes from public booking
|
||
3. **Existing Bookings**: Remain valid
|
||
|
||
##### DELETE
|
||
|
||
1. **Click "Delete"** on package
|
||
2. **Warning**: Shows impact on existing bookings
|
||
3. **Confirm**: Permanent removal
|
||
4. **Cascade**: Also removes price tiers
|
||
|
||
#### Example Package
|
||
|
||
```
|
||
Code: KULUBBI-2025
|
||
Name: Kulubbi Pilgrimage Package
|
||
Route: Addis Ababa → Awash (return)
|
||
Capacity: 912 passengers
|
||
Includes:
|
||
- Round trip train ticket
|
||
- Bus transfer to Kulubbi site
|
||
- Meal on board
|
||
- Guided tour
|
||
|
||
Price Tiers:
|
||
- Regular Seat (HSC): 10,232 ETB
|
||
- Premium Seat (VIP): 15,348 ETB
|
||
- Sleeper Bed (BED): 20,464 ETB
|
||
```
|
||
|
||
---
|
||
|
||
### Package Inquiries
|
||
|
||
**Purpose**: Manage incoming package booking inquiries and lead conversion
|
||
**Access Level**: Agent, Supervisor, Admin
|
||
**Icon**: MessageSquare
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ PACKAGE INQUIRIES MANAGEMENT │
|
||
├──────────────────────────────┤
|
||
│ ✓ View All Inquiries │
|
||
│ ✓ Filter by Package │
|
||
│ ✓ Track Inquiry Status │
|
||
│ ✓ Contact Information │
|
||
│ ✓ Lead Conversion │
|
||
│ ✓ Delete Inquiries │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Inquiry Information
|
||
|
||
- **Contact Name**: Inquirer's name
|
||
- **Contact Email/Phone**: Contact details
|
||
- **Package**: Requested package
|
||
- **Price Tier**: Selected tier (if specified)
|
||
- **Traveler Count**: Number of passengers
|
||
- **Inquiry Date**: When submitted
|
||
- **Notes**: Additional comments
|
||
- **Status**: Current inquiry status
|
||
|
||
#### Inquiry Statuses
|
||
|
||
- **NEW**: Just received, not yet contacted
|
||
- **CONTACTED**: Agent has reached out
|
||
- **CONVERTED**: Successfully converted to booking
|
||
- **CLOSED**: Not converted, inquiry closed
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (List Inquiries)
|
||
|
||
1. **Access Package Inquiries**:
|
||
- Click **Package Inquiries** in Enhanced Features
|
||
- Shows all inquiries
|
||
|
||
2. **Filter Options**:
|
||
- **Package Filter**: Select specific package
|
||
- **Status Filter**: NEW, CONTACTED, CONVERTED, CLOSED
|
||
|
||
3. **Inquiry Details**:
|
||
- Contact information
|
||
- Requested package and tier
|
||
- Traveler count
|
||
- Price information
|
||
- Inquiry notes
|
||
|
||
##### UPDATE STATUS
|
||
|
||
1. **Status Dropdown**: In each inquiry row
|
||
2. **Change Status**: Select new status
|
||
3. **Auto-save**: Updates immediately
|
||
4. **Track Progress**: Monitor conversion funnel
|
||
|
||
**Status Workflow**:
|
||
```
|
||
NEW → CONTACTED → CONVERTED/CLOSED
|
||
```
|
||
|
||
##### DELETE
|
||
|
||
1. **Click "Delete"** on inquiry
|
||
2. **Confirmation**: Cannot be undone
|
||
3. **Use Case**: Remove spam or duplicate inquiries
|
||
|
||
#### Lead Management
|
||
|
||
**Best Practices**:
|
||
1. **Respond Quickly**: Contact NEW inquiries within 24 hours
|
||
2. **Follow Up**: Move to CONTACTED after first contact
|
||
3. **Track Conversion**: Mark as CONVERTED when booked
|
||
4. **Close Non-converts**: Mark as CLOSED if not interested
|
||
|
||
---
|
||
|
||
### Health Monitoring
|
||
|
||
**Purpose**: Monitor EDR Passenger API health and system performance
|
||
**Access Level**: Admin, Supervisor
|
||
**Icon**: Activity
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ HEALTH MONITORING MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Liveness Checks │
|
||
│ ✓ Readiness Probes │
|
||
│ ✓ Database Health │
|
||
│ ✓ Application Info │
|
||
│ ✓ Real-time Status │
|
||
│ ✓ Rate Limit Overview │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Health Check Types
|
||
|
||
**Liveness Probe** (`GET /health`):
|
||
- Confirms API process is alive
|
||
- Quick response check
|
||
- Auto-refreshes every 30 seconds
|
||
|
||
**Readiness Probe** (`GET /health/ready`):
|
||
- Database connectivity test
|
||
- Live database ping with latency
|
||
- Indicates if API can serve traffic
|
||
|
||
**Application Info** (`GET /health/info`):
|
||
- App version and environment
|
||
- System uptime
|
||
- Refreshes every 60 seconds
|
||
|
||
#### Health Status Indicators
|
||
|
||
**Overall Status Banner**:
|
||
- **Green**: All systems operational
|
||
- **Red**: Service degraded
|
||
- **Gray**: Checking status...
|
||
|
||
**Individual Probe Cards**:
|
||
- Status dot (green/red/gray)
|
||
- Health badge (Healthy/Degraded/Checking...)
|
||
- Last check timestamp
|
||
- Error details (if failed)
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (Monitor Health)
|
||
|
||
1. **Access Health Page**:
|
||
- Click **Health Monitoring** in Enhanced Features
|
||
- Auto-refreshing dashboard
|
||
|
||
2. **System Overview**:
|
||
- Overall health banner
|
||
- Individual probe status
|
||
- Real-time updates
|
||
|
||
3. **Detailed Metrics**:
|
||
- Database latency (ms)
|
||
- Application uptime
|
||
- Version information
|
||
- Environment details
|
||
|
||
##### REFRESH STATUS
|
||
|
||
1. **Manual Refresh**: Click "Refresh" button
|
||
2. **Auto-refresh**:
|
||
- Health probes: 30 seconds
|
||
- App info: 60 seconds
|
||
3. **Loading States**: Shows during refresh
|
||
|
||
#### Rate Limits Reference
|
||
|
||
The health page includes a rate limits table:
|
||
|
||
| Tier | Limit | Applied to |
|
||
|------|-------|------------|
|
||
| **auth** | 5 req/min | `/auth`, `/fayda/verification` |
|
||
| **strict** | 20 req/min | `/bookings`, `/passengers`, `/payments`, `/wallet` |
|
||
| **default** | 100 req/min | All other endpoints |
|
||
| **exempt** | No limit | `/health/*`, payment webhooks |
|
||
|
||
#### Troubleshooting
|
||
|
||
**Common Issues**:
|
||
|
||
1. **Database Connectivity**:
|
||
- Check network connection
|
||
- Verify database server status
|
||
- Review connection string
|
||
|
||
2. **High Latency**:
|
||
- Monitor database performance
|
||
- Check server resources
|
||
- Review query optimization
|
||
|
||
3. **Failed Health Checks**:
|
||
- Review API server logs
|
||
- Check system resources
|
||
- Verify service configuration
|
||
|
||
---
|
||
|
||
### System Config
|
||
|
||
**Purpose**: Centralized system configuration management with feature flags
|
||
**Access Level**: Admin
|
||
**Icon**: Settings
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ SYSTEM CONFIG MANAGEMENT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Rate Limit Configuration │
|
||
│ ✓ Seat Booking Settings │
|
||
│ ✓ Feature Flags │
|
||
│ ✓ Operational Controls │
|
||
│ ✓ Live Configuration Updates │
|
||
│ ✓ Validation & Saving │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Configuration Categories
|
||
|
||
**Rate Limiting** (requests per minute per IP):
|
||
- **Auth endpoints**: Login, register, OTP (default: 5)
|
||
- **Strict endpoints**: Sensitive operations (default: 20)
|
||
- **Default endpoints**: All other endpoints (default: 100)
|
||
|
||
**Seat Booking**:
|
||
- **Hold Duration**: How long seats stay held (default: 5 minutes)
|
||
- **Hold Cutoff**: Stop accepting holds X hours before departure (default: 2 hours)
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (View Configuration)
|
||
|
||
1. **Access System Config**:
|
||
- Click **System Config** in System section
|
||
- Loads current configuration values
|
||
|
||
2. **Configuration Display**:
|
||
- Rate limiting settings with descriptions
|
||
- Seat booking parameters
|
||
- Current values shown
|
||
|
||
##### UPDATE CONFIGURATION
|
||
|
||
1. **Modify Settings**:
|
||
- **Auth Limit**: Adjust authentication rate limit
|
||
- **Strict Limit**: Change sensitive operations limit
|
||
- **Default Limit**: Update general rate limit
|
||
- **Hold Duration**: Set seat hold time in minutes
|
||
- **Hold Cutoff**: Set cutoff hours before departure
|
||
|
||
2. **Validation**:
|
||
- Minimum values enforced
|
||
- Reasonable maximums suggested
|
||
- Input validation on save
|
||
|
||
3. **Save Changes**:
|
||
- Click "Save Changes" button
|
||
- Configuration applied immediately
|
||
- Success/error feedback shown
|
||
|
||
#### Configuration Examples
|
||
|
||
**Rate Limiting Tiers**:
|
||
```
|
||
Auth endpoints (5/min):
|
||
- /auth/login
|
||
- /auth/register
|
||
- /fayda/verification
|
||
|
||
Strict endpoints (20/min):
|
||
- /bookings/*
|
||
- /passengers/*
|
||
- /payments/*
|
||
- /wallet/*
|
||
|
||
Default endpoints (100/min):
|
||
- /search/*
|
||
- /stations/*
|
||
- All other public endpoints
|
||
```
|
||
|
||
**Seat Management**:
|
||
```
|
||
Hold Duration: 5 minutes
|
||
- Passenger has 5 minutes to complete booking
|
||
- After expiry, seats released automatically
|
||
|
||
Hold Cutoff: 2 hours
|
||
- No new holds accepted within 2 hours of departure
|
||
- Prevents last-minute booking complications
|
||
```
|
||
|
||
#### System Impact
|
||
|
||
**Rate Limit Changes**:
|
||
- Applied immediately to new requests
|
||
- Existing connections not affected
|
||
- Monitor for performance impact
|
||
|
||
**Seat Booking Changes**:
|
||
- New holds use updated duration
|
||
- Existing holds retain original expiry
|
||
- Cutoff affects future booking attempts
|
||
|
||
#### Best Practices
|
||
|
||
1. **Monitor Impact**: Watch system performance after changes
|
||
2. **Conservative Adjustments**: Make incremental changes
|
||
3. **Peak Periods**: Consider higher limits during busy times
|
||
4. **Security Balance**: Balance usability with abuse prevention
|
||
5. **Documentation**: Document reasons for configuration changes
|
||
|
||
---
|
||
|
||
### Boarding Management
|
||
|
||
**Purpose**: Manage gate operations and passenger boarding processes
|
||
**Access Level**: Agent, Supervisor, Admin
|
||
**Icon**: Users
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ BOARDING MANAGEMENT MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Gate Operations │
|
||
│ ✓ Passenger Check-in │
|
||
│ ✓ Boarding Pass Validation │
|
||
│ ✓ Seat Assignment Verification│
|
||
│ ✓ Boarding Status Tracking │
|
||
│ ✓ Real-time Updates │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (Monitor Boarding)
|
||
|
||
1. **Access Boarding Page**:
|
||
- Click **Boarding Management** in Enhanced Features
|
||
- Select active trip/schedule
|
||
- View real-time boarding status
|
||
|
||
2. **Boarding Dashboard**:
|
||
- Total passengers expected
|
||
- Passengers boarded
|
||
- Boarding progress tracking
|
||
|
||
---
|
||
|
||
### Advanced Fare Configuration
|
||
|
||
**Purpose**: Manage complex fare rules and dynamic pricing strategies
|
||
**Access Level**: Admin, Supervisor
|
||
**Icon**: Calculator
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ ADVANCED FARE CONFIG MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Dynamic Fare Rules │
|
||
│ ✓ Segment-based Pricing │
|
||
│ ✓ Nationality-specific Rates │
|
||
│ ✓ Seasonal Adjustments │
|
||
│ ✓ Fare Engine Integration │
|
||
│ ✓ Real-time Calculations │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### CRUD Operations
|
||
|
||
##### CREATE FARE RULES
|
||
|
||
1. **Access Fare Management**:
|
||
- Click **Advanced Fare Config** in Enhanced Features
|
||
- Choose between Schedule Fares or Segment Fares
|
||
|
||
2. **Configure Rules**:
|
||
- Set fare amounts and validity periods
|
||
- Define passenger categories and nationalities
|
||
- Apply to specific routes or schedules
|
||
|
||
---
|
||
|
||
### Payment Methods Configuration
|
||
|
||
**Purpose**: Configure and manage payment provider integrations
|
||
**Access Level**: Admin
|
||
**Icon**: CreditCard
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ PAYMENT METHODS CONFIG MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Provider Setup │
|
||
│ ✓ API Configuration │
|
||
│ ✓ Enable/Disable Methods │
|
||
│ ✓ Webhook Management │
|
||
│ ✓ Test Transactions │
|
||
│ ✓ Fee Configuration │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Supported Providers
|
||
|
||
- **Telebirr**: Ethiopian mobile payment
|
||
- **CBE Birr**: Commercial Bank of Ethiopia
|
||
- **eBirr**: Electronic wallet service
|
||
- **Card Payments**: VISA, Mastercard
|
||
- **WAAFI**: Money transfer service
|
||
- **Agent Cash**: Counter collection
|
||
|
||
#### CRUD Operations
|
||
|
||
##### UPDATE CONFIGURATION
|
||
|
||
1. **Provider Setup**:
|
||
- Configure API credentials
|
||
- Set transaction fees and limits
|
||
- Enable/disable providers
|
||
|
||
2. **Test & Validate**:
|
||
- Run test transactions
|
||
- Validate webhook endpoints
|
||
- Monitor connectivity
|
||
|
||
---
|
||
|
||
### Boarding Management
|
||
|
||
**Purpose**: Manage gate operations and passenger boarding processes
|
||
**Access Level**: Agent, Supervisor, Admin
|
||
**Icon**: Users
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ BOARDING MANAGEMENT MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Gate Operations │
|
||
│ ✓ Passenger Check-in │
|
||
│ ✓ Boarding Pass Validation │
|
||
│ ✓ Seat Assignment Verification│
|
||
│ ✓ Boarding Status Tracking │
|
||
│ ✓ Real-time Updates │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Boarding Process
|
||
|
||
1. **Pre-boarding Setup**: Configure gates and boarding times
|
||
2. **Passenger Check-in**: Validate tickets and documents
|
||
3. **Boarding Queue**: Manage passenger flow and priority boarding
|
||
4. **Seat Verification**: Confirm seat assignments and resolve conflicts
|
||
5. **Boarding Completion**: Final passenger count and departure clearance
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (Monitor Boarding)
|
||
|
||
1. **Access Boarding Page**:
|
||
- Click **Boarding Management** in Enhanced Features
|
||
- Select active trip/schedule
|
||
- View real-time boarding status
|
||
|
||
2. **Boarding Dashboard**:
|
||
- Total passengers expected
|
||
- Passengers boarded
|
||
- Remaining passengers
|
||
- Boarding progress percentage
|
||
- Gate status and alerts
|
||
|
||
##### MANAGE BOARDING PROCESS
|
||
|
||
**Start Boarding**:
|
||
1. **Select Trip**: Choose scheduled departure
|
||
2. **Open Gates**: Activate boarding process
|
||
3. **Scan Tickets**: Validate passenger tickets and documents
|
||
4. **Update Status**: Track boarding progress in real-time
|
||
|
||
**Handle Issues**:
|
||
1. **Seat Conflicts**: Resolve duplicate seat assignments
|
||
2. **Missing Passengers**: Mark no-shows
|
||
3. **Late Arrivals**: Process last-minute passengers
|
||
4. **Special Assistance**: Handle wheelchair, elderly, child passengers
|
||
|
||
---
|
||
|
||
### Advanced Fare Configuration
|
||
|
||
**Purpose**: Manage complex fare rules and dynamic pricing strategies
|
||
**Access Level**: Admin, Supervisor
|
||
**Icon**: Calculator
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ ADVANCED FARE CONFIG MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Dynamic Fare Rules │
|
||
│ ✓ Segment-based Pricing │
|
||
│ ✓ Nationality-specific Rates │
|
||
│ ✓ Seasonal Adjustments │
|
||
│ ✓ Fare Engine Integration │
|
||
│ ✓ Real-time Calculations │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Fare Rule Types
|
||
|
||
**Schedule-specific Fares**:
|
||
- Fixed rates for specific train schedules
|
||
- Override default fare calculations
|
||
- Temporary promotional pricing
|
||
|
||
**Route Segment Fares**:
|
||
- Different pricing for route segments
|
||
- Origin-destination specific rates
|
||
- Distance-based calculations
|
||
|
||
**Passenger Category Fares**:
|
||
- ADULT vs CHILD pricing
|
||
- Nationality-based rates (Ethiopian, Djiboutian, Other)
|
||
- Group discounts
|
||
|
||
#### CRUD Operations
|
||
|
||
##### CREATE FARE RULES
|
||
|
||
1. **Access Fare Management**:
|
||
- Click **Advanced Fare Config** in Enhanced Features
|
||
- Choose between Schedule Fares or Segment Fares
|
||
|
||
2. **Schedule Fare Rule**:
|
||
- **Schedule**: Select specific trip
|
||
- **Seat Class**: Choose class (Economy, VIP, etc.)
|
||
- **Fare Amount**: Set price in ETB
|
||
- **Passenger Type**: ADULT or CHILD (optional)
|
||
- **Nationality**: Specific nationality or All
|
||
- **Valid Period**: Start and end dates
|
||
|
||
3. **Segment Fare Rule**:
|
||
- **Route**: Select route
|
||
- **Origin/Destination**: Choose station pair
|
||
- **Seat Class**: Select class
|
||
- **Fare Amount**: Set segment price
|
||
- **Passenger Type**: ADULT/CHILD filter
|
||
- **Valid Period**: Effective dates
|
||
|
||
##### READ (View Fare Rules)
|
||
|
||
1. **Schedule Fares Tab**:
|
||
- Select schedule to view calculated fares
|
||
- See all active seat classes
|
||
- View fare breakdown by category
|
||
|
||
2. **Segment Fares Tab**:
|
||
- Select route to view segment rules
|
||
- See origin-destination combinations
|
||
- Filter by fare rule criteria
|
||
|
||
##### UPDATE/DELETE FARE RULES
|
||
|
||
1. **Edit Rules**: Click "Edit" on existing fare rule
|
||
2. **Delete Rules**: Click "Delete" to remove rule
|
||
3. **Validation**: Changes affect future bookings only
|
||
|
||
#### Fare Calculation Priority
|
||
|
||
```
|
||
1. Segment Fare (nationality-specific)
|
||
2. Segment Fare (generic)
|
||
3. Schedule Fare (nationality-specific)
|
||
4. Schedule Fare (generic)
|
||
5. Default Class Base Fare
|
||
```
|
||
|
||
---
|
||
|
||
### Payment Methods Configuration
|
||
|
||
**Purpose**: Configure and manage payment provider integrations
|
||
**Access Level**: Admin
|
||
**Icon**: CreditCard
|
||
|
||
#### Features Overview
|
||
|
||
```
|
||
┌──────────────────────────────┐
|
||
│ PAYMENT METHODS CONFIG MGMT │
|
||
├──────────────────────────────┤
|
||
│ ✓ Provider Setup │
|
||
│ ✓ API Configuration │
|
||
│ ✓ Enable/Disable Methods │
|
||
│ ✓ Webhook Management │
|
||
│ ✓ Test Transactions │
|
||
│ ✓ Fee Configuration │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Supported Payment Providers
|
||
|
||
- **Telebirr**: Ethiopian mobile payment
|
||
- **CBE Birr**: Commercial Bank of Ethiopia
|
||
- **eBirr**: Electronic wallet service
|
||
- **Card Payments**: VISA, Mastercard via gateway
|
||
- **WAAFI**: Money transfer service
|
||
- **Agent Cash**: Counter cash collection
|
||
|
||
#### CRUD Operations
|
||
|
||
##### READ (View Payment Methods)
|
||
|
||
1. **Access Payment Methods**:
|
||
- Click **Payment Methods** in Enhanced Features
|
||
- View all configured providers
|
||
- See status and configuration
|
||
|
||
2. **Provider Status**:
|
||
- Enabled/Disabled toggle
|
||
- Configuration status
|
||
- Last transaction test
|
||
- Error logs (if any)
|
||
|
||
##### UPDATE CONFIGURATION
|
||
|
||
**Provider Setup**:
|
||
1. **API Credentials**:
|
||
- Base URL
|
||
- API Key/Secret
|
||
- Merchant ID
|
||
- Webhook endpoints
|
||
|
||
2. **Settings**:
|
||
- Enable/disable provider
|
||
- Transaction fees
|
||
- Minimum/maximum amounts
|
||
- Currency support
|
||
|
||
3. **Test Configuration**:
|
||
- Run test transactions
|
||
- Validate webhook endpoints
|
||
- Check API connectivity
|
||
|
||
**Webhook Management**:
|
||
1. **Endpoint URLs**: Configure callback URLs
|
||
2. **Security**: Set webhook secrets
|
||
3. **Event Types**: Select events to receive
|
||
4. **Retry Logic**: Configure retry attempts
|
||
|
||
##### TROUBLESHOOTING
|
||
|
||
**Common Issues**:
|
||
1. **API Connectivity**: Check network and credentials
|
||
2. **Webhook Failures**: Verify endpoint accessibility
|
||
3. **Transaction Failures**: Review provider logs
|
||
4. **Configuration Errors**: Validate API settings
|