Skip to content

Air Freight Module ‐ Frontend Beta Testing Guide

Agilasoft Cloud Technologies edited this page Jan 2, 2026 · 1 revision

Air Freight Module - Frontend Beta Testing Guide

Purpose

This guide provides comprehensive testing procedures for the Air Freight module frontend. The purpose is to:

  • Validate end-to-end process flows from booking to shipment delivery
  • Identify UI/UX issues, bugs, and functional gaps
  • Ensure data integrity and validation rules work correctly
  • Test integration points between different doctypes
  • Verify dangerous goods compliance workflows
  • Test consolidation and pricing features
  • Validate milestone tracking and visualization

Process Flow Analysis

Based on code analysis, the Air Freight module follows these main process flows:

1. Booking to Shipment Flow

Sales Quote → Air Booking → Air Shipment → Master Air Waybill → Delivery

Key Steps:

  • Create Sales Quote with Air Freight details
  • Create Air Booking from Sales Quote (or manually)
  • Fetch quotations from Sales Quote to populate Air Booking
  • Convert Air Booking to Air Shipment (after submission)
  • Link Air Shipment to Master Air Waybill
  • Track milestones through delivery

2. Consolidation Flow

Multiple Air Shipments → Air Consolidation → Master Air Waybill → Delivery

Key Steps:

  • Create multiple Air Shipments with compatible routes
  • Create Air Consolidation
  • Add Air Shipments to consolidation
  • Define consolidation routes
  • Optimize routes and check capacity
  • Generate consolidation reports

3. Dangerous Goods Flow

Air Shipment with DG → DG Compliance Check → DG Declaration → Compliance Status

Key Steps:

  • Mark shipment as containing dangerous goods
  • Enter DG details in packages
  • Run DG compliance check
  • Generate DG declaration
  • Monitor compliance status

4. Pricing and Charges Flow

Sales Quote → Load Charges → Calculate Charges → Recalculate → Total Charges

Key Steps:

  • Create Sales Quote with pricing
  • Load charges from Sales Quote to Air Shipment
  • Recalculate charges based on weight/volume
  • Calculate total charges
  • Apply discounts and surcharges

Testing Steps

Section 1: Master Data Setup

Test 1.1: Air Freight Settings

Purpose: Verify default settings are applied correctly

Steps:

  1. Navigate to Air Freight Settings
  2. Create/Edit settings for your company
  3. Set default values for:
    • Default branch, cost center, profit center
    • Default origin/destination ports
    • Default airline and freight agent
    • Volume to weight factor (default: 167)
    • Chargeable weight calculation method
    • Default consolidation type
    • Auto-create job costing (if applicable)

Expected Results:

  • Settings save successfully
  • Default values are applied when creating new Air Shipments
  • Settings are company-specific
  • Cache is cleared on update

Potential Bugs to Check:

  • Settings not applying to new documents
  • Wrong company settings being used
  • Cache not clearing after update
  • Validation errors on invalid values

Section 2: Air Booking Testing

Test 2.1: Create Air Booking Manually

Purpose: Test basic Air Booking creation

Steps:

  1. Navigate to Air Booking → New
  2. Fill required fields:
    • Booking Date (required)
    • Local Customer (required)
    • Direction: Import/Export (required)
    • Shipper (required)
    • Consignee (required)
    • Origin Port (required)
    • Destination Port (required)
  3. Fill optional fields:
    • Sales Quote (if available)
    • Airline
    • Freight Agent
    • Service Level
    • Incoterm
    • ETD/ETA dates
  4. Add packages in Packages table
  5. Add charges in Charges table
  6. Save and Submit

Expected Results:

  • Document saves successfully
  • Required field validations work
  • ETD must be before ETA (validation)
  • Cost center/profit center/branch belong to company (validation)
  • "Convert to Shipment" button appears after submission
  • Packages and charges are saved correctly

Potential Bugs to Check:

  • Date validation not working (ETD >= ETA)
  • Account validation not checking company
  • Buttons not appearing/disappearing correctly
  • Data not saving in child tables
  • Form refresh issues

Test 2.2: Create Air Booking from Sales Quote

Purpose: Test integration with Sales Quote

Steps:

  1. Create a Sales Quote with Air Freight details
  2. Create new Air Booking
  3. Select the Sales Quote in the Sales Quote field
  4. Click "Fetch Quotations" button
  5. Verify data is populated:
    • Customer, Shipper, Consignee
    • Origin/Destination ports
    • Weight, Volume, Chargeable
    • Service Level, Incoterm
    • Airline, Freight Agent
    • Charges from Sales Quote Air Freight
  6. Review and adjust populated data
  7. Save

Expected Results:

  • "Fetch Quotations" button appears when Sales Quote is selected
  • All relevant fields are populated from Sales Quote
  • Charges are correctly mapped from Sales Quote Air Freight
  • UOM values are normalized correctly (kg, m³, package, shipment, hour, day)
  • Empty fields in Air Booking are filled from Sales Quote
  • Existing values in Air Booking are not overwritten

Potential Bugs to Check:

  • Button not appearing
  • Fields not populating
  • Charges not mapping correctly
  • UOM normalization errors
  • Data overwriting existing values incorrectly
  • Error messages not clear

Test 2.3: Convert Air Booking to Air Shipment

Purpose: Test conversion workflow

Steps:

  1. Create and Submit an Air Booking
  2. Click "Convert to Shipment" button
  3. Confirm the conversion
  4. Verify new Air Shipment is created with:
    • All fields copied from Air Booking
    • Packages copied correctly
    • Charges copied correctly
    • Air Booking reference linked
  5. Navigate to the new Air Shipment

Expected Results:

  • Conversion confirmation dialog appears
  • New Air Shipment is created successfully
  • All data is copied accurately
  • Air Booking reference is set
  • User is redirected to new Air Shipment form
  • No data loss during conversion

Potential Bugs to Check:

  • Conversion fails silently
  • Data not copied correctly
  • Missing fields in converted document
  • Child tables not copied
  • Navigation not working
  • Duplicate documents created

Section 3: Air Shipment Testing

Test 3.1: Create Air Shipment with Settings Defaults

Purpose: Test automatic application of settings defaults

Steps:

  1. Ensure Air Freight Settings exist for your company
  2. Create new Air Shipment
  3. Verify default values are applied:
    • Branch, Cost Center, Profit Center
    • Origin/Destination ports
    • Airline, Freight Agent
    • House Type, Direction, Release Type, Entry Type
    • Service Level, Incoterm
  4. Verify settings are only applied if fields are empty

Expected Results:

  • Defaults apply automatically on new document
  • Defaults only apply to empty fields
  • Settings are company-specific
  • No errors during default application

Potential Bugs to Check:

  • Defaults not applying
  • Defaults overwriting existing values
  • Wrong company defaults being used
  • Performance issues with settings lookup

Test 3.2: Air Shipment Packages and Weight Calculations

Purpose: Test package management and weight calculations

Steps:

  1. Create new Air Shipment
  2. Add multiple packages in Packages table:
    • Different commodities
    • Different weights and volumes
    • Different UOMs
  3. Verify totals are calculated:
    • Total weight
    • Total volume
    • Chargeable weight (based on settings)
  4. Test volume weight calculation:
    • Volume × 167 (or custom factor)
    • Chargeable = max(actual weight, volume weight)
  5. Test with dangerous goods packages:
    • Mark package as containing DG
    • Enter DG Class, UN Number, Proper Shipping Name
    • Verify DG flag is set on shipment

Expected Results:

  • Package totals calculate correctly
  • Chargeable weight uses correct calculation method
  • Volume weight factor is applied correctly
  • DG packages trigger compliance checks
  • Contains Dangerous Goods flag updates automatically

Potential Bugs to Check:

  • Totals not calculating
  • Wrong calculation method used
  • Volume weight factor incorrect
  • DG flag not updating
  • Package data not saving

Test 3.3: Air Shipment Charges Management

Purpose: Test charge calculation and management

Steps:

  1. Create Air Shipment with weight/volume data
  2. Test "Load Charges from Sales Quote" button:
    • Link Sales Quote
    • Click button
    • Verify charges are loaded
  3. Test charge calculation:
    • Add charge manually
    • Set charge basis (Per kg, Per m³, Per package, Per shipment, Fixed amount, Percentage)
    • Set rate and quantity
    • Verify base amount calculates correctly
  4. Test discount and surcharge:
    • Add discount percentage
    • Add surcharge amount
    • Verify total amount = base - discount + surcharge
  5. Test "Recalculate All Charges" button
  6. Test "Calculate Total Charges" button

Expected Results:

  • Charges load from Sales Quote correctly
  • Charge calculations are accurate for all basis types
  • Discounts and surcharges apply correctly
  • Recalculate button updates all charges
  • Total charges calculation is correct
  • Currency is handled properly

Potential Bugs to Check:

  • Charges not loading
  • Calculation errors for different basis types
  • Discount/surcharge not applying
  • Recalculate not working
  • Total calculation incorrect
  • Currency issues

Test 3.4: Dangerous Goods Compliance Workflow

Purpose: Test DG compliance features

Steps:

  1. Create Air Shipment
  2. Check "Contains Dangerous Goods" checkbox
  3. Add package with DG details:
    • DG Substance
    • UN Number
    • Proper Shipping Name
    • DG Class
    • Is Radioactive (if applicable)
    • Temp Controlled (if applicable)
    • Emergency Contact Name and Phone
  4. Verify DG Alert banner appears (if non-compliant)
  5. Test "Check DG Compliance" button
  6. Test "Generate DG Declaration" button
  7. Complete DG declaration:
    • Fill all required DG fields
    • Mark declaration as complete
  8. Verify compliance status updates to "Compliant"
  9. Verify alert banner disappears

Expected Results:

  • DG alert appears when non-compliant
  • Alert shows correct status and emergency contact
  • Compliance check validates all required fields
  • DG Declaration is generated successfully
  • Compliance status updates correctly
  • Alert banner dismisses when compliant
  • Milestone view shows DG compliance badge

Potential Bugs to Check:

  • Alert not appearing
  • Alert not dismissing
  • Compliance check not working
  • Declaration generation fails
  • Status not updating
  • Badge not showing in milestones

Test 3.5: Milestone Tracking and Visualization

Purpose: Test milestone HTML generation and display

Steps:

  1. Create Air Shipment with origin and destination ports
  2. Verify milestone HTML field displays:
    • Origin and destination information
    • Shipper and consignee details
    • Airline and flight information
    • Milestone cards with status
    • Route map (if configured)
  3. Test milestone status updates:
    • Capture actual start time
    • Capture actual end time
    • Verify delayed status shows correctly
  4. Test milestone actions:
    • View milestone details
    • Start/End milestone capture
  5. Change origin/destination ports and verify milestone HTML updates

Expected Results:

  • Milestone HTML renders correctly
  • All milestone information displays
  • Status badges show correct colors
  • Delayed milestones are highlighted
  • Action icons work correctly
  • Map displays route (if API keys configured)
  • HTML updates when ports change

Potential Bugs to Check:

  • HTML not rendering
  • Missing milestone information
  • Status badges incorrect
  • Action icons not working
  • Map not loading
  • HTML not updating on port change
  • Performance issues with HTML generation

Test 3.6: Date Validations

Purpose: Test date field validations

Steps:

  1. Create Air Shipment
  2. Test ETD/ETA validation:
    • Set ETD after ETA → Should show error
    • Set ETD before ETA → Should save
  3. Test booking date validation
  4. Test other date fields

Expected Results:

  • Date validations work correctly
  • Error messages are clear
  • Invalid dates are rejected
  • Valid dates are accepted

Potential Bugs to Check:

  • Validation not working
  • Wrong error messages
  • Timezone issues
  • Date format issues

Section 4: Air Consolidation Testing

Test 4.1: Create Air Consolidation

Purpose: Test consolidation creation

Steps:

  1. Create multiple Air Shipments with:
    • Same origin and destination ports
    • Same direction
    • Compatible service levels
  2. Create new Air Consolidation
  3. Verify settings defaults are applied
  4. Set consolidation type (Direct, Transit, etc.)
  5. Add Air Shipments using "Add Air Shipment" button
  6. Verify shipments are added to consolidation packages table
  7. Define consolidation routes in Routes table
  8. Add charges in Charges table
  9. Save

Expected Results:

  • Consolidation creates successfully
  • Settings defaults apply
  • Shipments are added correctly
  • Route validation works (destination of route N = origin of route N+1)
  • Capacity constraints are validated
  • Incompatible shipments are rejected
  • Duplicate shipments are prevented

Potential Bugs to Check:

  • Consolidation not saving
  • Shipments not adding
  • Route validation not working
  • Capacity validation not working
  • Duplicate shipments allowed
  • Settings not applying

Test 4.2: Consolidation Metrics and Calculations

Purpose: Test consolidation calculations

Steps:

  1. Create Air Consolidation with multiple shipments
  2. Verify metrics calculate:
    • Total packages
    • Total weight
    • Total volume
    • Chargeable weight
    • Consolidation ratio
    • Cost per kg
  3. Test with different volume-to-weight factors
  4. Test charge calculations based on chargeable weight
  5. Test capacity utilization calculations

Expected Results:

  • All metrics calculate correctly
  • Chargeable weight uses correct method
  • Consolidation ratio is accurate
  • Cost per kg calculates correctly
  • Capacity utilization shows correctly

Potential Bugs to Check:

  • Metrics not calculating
  • Wrong calculation formulas
  • Chargeable weight incorrect
  • Ratio calculation wrong
  • Capacity utilization wrong

Test 4.3: Consolidation Route Optimization

Purpose: Test route optimization features

Steps:

  1. Create Air Consolidation with multiple routes
  2. Click "Optimize Routes" button
  3. Verify routes are reordered by:
    • Cost
    • Time
    • Capacity utilization
  4. Verify route sequence numbers update
  5. Test "Check Capacity" button
  6. Review capacity availability report

Expected Results:

  • Routes are optimized correctly
  • Sequence numbers update
  • Capacity check works
  • Report displays correctly
  • Optimization considers all factors

Potential Bugs to Check:

  • Optimization not working
  • Routes not reordering
  • Sequence not updating
  • Capacity check fails
  • Report not displaying

Test 4.4: Consolidation Reports

Purpose: Test report generation

Steps:

  1. Create Air Consolidation with data
  2. Test "Generate Report" button
  3. Test "Cost Breakdown" button
  4. Test "Consolidation Summary" button
  5. Verify reports show:
    • Consolidation details
    • Route information
    • Package information
    • Charge breakdown
    • Cost analysis

Expected Results:

  • Reports generate successfully
  • All data is accurate
  • Reports are formatted correctly
  • Export functionality works (if available)

Potential Bugs to Check:

  • Reports not generating
  • Missing data in reports
  • Formatting issues
  • Export not working
  • Performance issues

Test 4.5: Dangerous Goods in Consolidation

Purpose: Test DG handling in consolidations

Steps:

  1. Create Air Consolidation
  2. Add shipment with dangerous goods
  3. Verify DG validation:
    • Routes must allow DG
    • DG segregation rules apply
    • Incompatible DG classes are rejected
  4. Test DG compliance status
  5. Verify DG packages are tracked

Expected Results:

  • DG validation works
  • Segregation rules enforced
  • Incompatible classes rejected
  • Compliance status tracked
  • Packages marked correctly

Potential Bugs to Check:

  • Validation not working
  • Segregation not enforced
  • Incompatible classes allowed
  • Status not tracking
  • Packages not marked

Section 5: Integration Testing

Test 5.1: Sales Quote Integration

Purpose: Test integration with Sales Quote module

Steps:

  1. Create Sales Quote with Air Freight section
  2. Add Air Freight lines with pricing
  3. Create Air Booking from Sales Quote
  4. Create Air Shipment from Air Booking
  5. Verify data flows correctly:
    • Customer information
    • Route information
    • Weight/volume
    • Charges and pricing
  6. Test "Load Charges from Sales Quote" in Air Shipment

Expected Results:

  • Data flows correctly through all stages
  • Charges are preserved
  • Pricing is accurate
  • No data loss

Potential Bugs to Check:

  • Data not flowing
  • Charges missing
  • Pricing incorrect
  • Data loss

Test 5.2: Master Air Waybill Integration

Purpose: Test MAWB linking

Steps:

  1. Create Master Air Waybill
  2. Link Air Shipment to MAWB
  3. Verify flight information appears in Air Shipment
  4. Test auto-linking from flight schedules
  5. Verify milestone updates when MAWB status changes

Expected Results:

  • Linking works correctly
  • Flight info displays
  • Auto-linking works
  • Milestones update

Potential Bugs to Check:

  • Linking not working
  • Flight info not showing
  • Auto-linking fails
  • Milestones not updating

Test 5.3: IATA Integration (if configured)

Purpose: Test IATA message handling

Steps:

  1. Configure IATA Settings
  2. Test connection
  3. Send FWB message from Air Shipment
  4. Receive FSU message
  5. Verify Air Shipment updates
  6. Check message queue

Expected Results:

  • Connection works
  • Messages send/receive correctly
  • Shipment updates automatically
  • Queue tracks messages

Potential Bugs to Check:

  • Connection fails
  • Messages not sending
  • Messages not receiving
  • Shipment not updating
  • Queue not tracking

Section 6: UI/UX Testing

Test 6.1: Form Layout and Navigation

Purpose: Test form usability

Steps:

  1. Navigate through all Air Freight forms
  2. Check form layout:
    • Sections are logical
    • Fields are grouped correctly
    • Required fields are marked
    • Help text is available
  3. Test navigation:
    • Links work correctly
    • Buttons are accessible
    • Breadcrumbs work
  4. Test responsive design (if applicable)

Expected Results:

  • Forms are well-organized
  • Navigation is intuitive
  • All links work
  • Responsive design works

Potential Bugs to Check:

  • Poor layout
  • Fields hard to find
  • Navigation broken
  • Links not working
  • Responsive issues

Test 6.2: Button Functionality

Purpose: Test all custom buttons

Steps:

  1. Test all custom buttons in Air Booking:
    • Fetch Quotations
    • Convert to Shipment
  2. Test all custom buttons in Air Shipment:
    • Load Charges from Sales Quote
    • Recalculate All Charges
    • Calculate Total Charges
    • Check DG Compliance
    • Generate DG Declaration
    • Send DG Alert
  3. Test all custom buttons in Air Consolidation:
    • Add Air Shipment
    • Optimize Routes
    • Check Capacity
    • Generate Report
    • Cost Breakdown
    • Consolidation Summary

Expected Results:

  • All buttons appear when appropriate
  • Buttons execute correctly
  • Success/error messages are clear
  • Loading indicators show (if applicable)

Potential Bugs to Check:

  • Buttons not appearing
  • Buttons not working
  • Error messages unclear
  • No loading indicators
  • Buttons appear when they shouldn't

Test 6.3: Child Table Functionality

Purpose: Test child table interactions

Steps:

  1. Test Packages table:
    • Add/remove rows
    • Edit fields
    • Calculations update
  2. Test Charges table:
    • Add/remove rows
    • Edit fields
    • Calculations update
  3. Test Routes table (Consolidation):
    • Add/remove rows
    • Sequence validation
    • Date calculations
  4. Test all child tables for:
    • Data persistence
    • Validation
    • Calculations

Expected Results:

  • Child tables work correctly
  • Data saves properly
  • Validations work
  • Calculations update in real-time

Potential Bugs to Check:

  • Rows not adding/removing
  • Data not saving
  • Validations not working
  • Calculations not updating
  • Performance issues

Test 6.4: Alerts and Notifications

Purpose: Test alert system

Steps:

  1. Test DG Alert banner:
    • Appears when non-compliant
    • Dismisses when compliant
    • Shows correct information
  2. Test form alerts:
    • Validation errors
    • Success messages
    • Warning messages
  3. Test notification system (if applicable)

Expected Results:

  • Alerts appear correctly
  • Information is accurate
  • Alerts dismiss properly
  • Notifications work

Potential Bugs to Check:

  • Alerts not appearing
  • Wrong information
  • Alerts not dismissing
  • Notifications not working

Section 7: Performance Testing

Test 7.1: Form Load Performance

Purpose: Test form loading speed

Steps:

  1. Load Air Shipment with:
    • Many packages (50+)
    • Many charges (20+)
    • Many milestones (10+)
  2. Measure load time
  3. Test milestone HTML generation time
  4. Test with slow network (if possible)

Expected Results:

  • Forms load within acceptable time (< 3 seconds)
  • Milestone HTML generates quickly
  • No timeouts
  • Smooth user experience

Potential Bugs to Check:

  • Slow loading
  • Timeouts
  • UI freezing
  • Memory issues

Test 7.2: Calculation Performance

Purpose: Test calculation speed

Steps:

  1. Test charge calculations with many charges
  2. Test consolidation calculations with many shipments
  3. Test metric calculations
  4. Measure calculation time

Expected Results:

  • Calculations complete quickly
  • No UI blocking
  • Results are accurate

Potential Bugs to Check:

  • Slow calculations
  • UI blocking
  • Calculation errors
  • Memory leaks

Section 8: Data Integrity Testing

Test 8.1: Data Validation

Purpose: Test all validation rules

Steps:

  1. Test required field validations
  2. Test date validations (ETD < ETA)
  3. Test account validations (company matching)
  4. Test numeric validations (weight, volume > 0)
  5. Test route validations (consolidation)
  6. Test DG validations

Expected Results:

  • All validations work correctly
  • Error messages are clear
  • Invalid data is rejected
  • Valid data is accepted

Potential Bugs to Check:

  • Validations not working
  • Wrong error messages
  • Invalid data accepted
  • Valid data rejected

Test 8.2: Data Consistency

Purpose: Test data consistency across related documents

Steps:

  1. Create Air Booking from Sales Quote
  2. Convert to Air Shipment
  3. Verify data consistency:
    • All fields match
    • Totals match
    • References are correct
  4. Test consolidation data consistency
  5. Test milestone data consistency

Expected Results:

  • Data is consistent across documents
  • References are correct
  • Totals match
  • No data corruption

Potential Bugs to Check:

  • Data inconsistency
  • Wrong references
  • Totals don't match
  • Data corruption

Bug Reporting Template

When reporting bugs, include:

  1. Title: Clear, concise description
  2. Module: Air Freight
  3. Doctype: (Air Booking, Air Shipment, etc.)
  4. Severity: Critical / High / Medium / Low
  5. Steps to Reproduce:
    • Step-by-step instructions
  6. Expected Result: What should happen
  7. Actual Result: What actually happens
  8. Screenshots: If applicable
  9. Browser/Environment: Browser, OS, etc.
  10. Console Errors: Any JavaScript errors

Expected Results Summary

Successful Test Indicators:

  • ✅ All forms load and save correctly
  • ✅ Validations work as expected
  • ✅ Calculations are accurate
  • ✅ Buttons function properly
  • ✅ Data flows correctly between documents
  • ✅ DG compliance workflow works
  • ✅ Consolidation features work
  • ✅ Milestone visualization displays correctly
  • ✅ Reports generate successfully
  • ✅ Performance is acceptable
  • ✅ No console errors
  • ✅ No data loss
  • ✅ User experience is smooth

Critical Issues to Report Immediately:

  • 🔴 Data loss or corruption
  • 🔴 System crashes or freezes
  • 🔴 Security vulnerabilities
  • 🔴 Calculation errors affecting pricing
  • 🔴 Validation bypasses
  • 🔴 Integration failures

Testing Checklist

Use this checklist to track your testing progress:

Master Data

  • Air Freight Settings
  • Airlines
  • Airports/Ports
  • Shippers
  • Consignees
  • Freight Agents

Air Booking

  • Manual creation
  • Creation from Sales Quote
  • Fetch Quotations
  • Convert to Shipment
  • Validations
  • Packages
  • Charges

Air Shipment

  • Settings defaults
  • Packages and weight calculations
  • Charges management
  • DG compliance workflow
  • Milestone tracking
  • Date validations
  • Load charges from Sales Quote

Air Consolidation

  • Creation
  • Add shipments
  • Metrics and calculations
  • Route optimization
  • Reports
  • DG handling

Integration

  • Sales Quote integration
  • Master Air Waybill integration
  • IATA integration (if configured)

UI/UX

  • Form layout
  • Button functionality
  • Child tables
  • Alerts and notifications

Performance

  • Form load time
  • Calculation speed

Data Integrity

  • Validations
  • Data consistency

Notes

  • Test with different user roles (Air Freight Manager, etc.)
  • Test with different companies (if multi-company)
  • Test edge cases (empty data, large data, special characters)
  • Test error scenarios (network failures, invalid data)
  • Document any workarounds found
  • Note any UI/UX improvements needed

Contact

For questions or issues during testing, contact the development team.

Last Updated: Based on code analysis as of current date Version: Beta Testing Guide v1.0

Getting Started

Setup and Settings

Sea Freight

Air Freight

Transport

Customs

Warehousing

Pricing Center

Job Management

Sustainability

Intercompany

Special Projects

Pages

Features

Reports

Glossary

Clone this wiki locally