A full-featured React application that parses ICES 1.5 Import General Manifest (IGM) messages, extracts cargo lines, containers, vessel details, and automatically groups cargo by CFS. The app provides powerful filters, tables, previews, and downloadable filtered IGM files.
Parses all relevant IGM sections:
| Section | Description |
|---|---|
| VESINFO (Part A) | Vessel details |
| Cargo Section (TREC / TSHC / HS) | Cargo lines, BL details |
| Container Section (CCM / CTL) | Containers grouped under each cargo |
| CFS Detection | Automatically extracts CFS after LC field |
Supports mixed formatting:
- � (GS delimiters)
- Variable newlines
- Spaces or missing fields
- Multi-line cargo text
- Multi-line container lists
- Card-style sections
- Responsive grid
- Fully bordered tables
- Highlighted headers
- Compact chips for CFS values
- Smooth hover behavior
You can filter the parsed result by:
- Line Number (with line name)
- CFS (auto-detected)
- Container Number
The app supports:
Automatically generates:
INCCU1CIL1.igm
INCCU1CEP1.igm
INCCU1DPD1.igm
...
A button appears when a CFS is selected.
You can download the filtered view as a valid IGM file.
All generated files preserve:
- Proper ICES formatting
- Manifest structure
- VESINFO
- Only selected cargo lines
- Only their containers
- CFS field included
Before generating a file, a pretty preview window displays:
- CFS name
- Cargo count
- Container count
- Raw IGM output for verification
Supports:
.igm.amd.txt.csv
Users can upload via a simple file input field.
| Component | Technology |
|---|---|
| Framework | React (Vite recommended) |
| Styling | Tailwind CSS |
| Excel Parser | SheetJS (xlsx) |
| File Download | Blob API |
| ZIP Support | JSZip |
| Parser Engine | Custom JavaScript (no backend) |
igm-viewer/
│── src/
│ └── App.jsx # Entire UI + parser in one file
│── index.html
│── package.json
│── tailwind.config.js
│── README.md
npm installInclude XLSX and JSZip:
npm install xlsx jszipnpm run devnpm run buildClick Upload IGM → select .igm or .txt.
The app extracts:
- Vessel details
- Cargo lines
- Containers
- CFS values
Dropdowns appear dynamically:
- Select Line Number
- Select CFS
- Filter by BL, Importer, Container
Tables show:
- Cargo data
- Container grouping
- CFS allocation
Available options:
The app supports ICES 1.5 format, including samples like:
<vesinfo>
F�INCCU1�1161281�27112025�9322877�3FBX3�2517W�AAYCS1374C�AAYCS1374C�CAPT�INCCU1�LKCMB�LKCMB�LKCMB�C�2�CONTAINERS�05112025 00:00�40560�Y�Y�Y�N�Y�Y�INCCU1KKP1
<END-vesinfo>
TREC�100506�1�0�22SL1234567�ABC TRADERS INDIA LIMITED�IMPORTER ADDR�NAC|HS9494...
CCM�ONEU1234567�40HC�FCL�O�...
- Some rare IGM formats may contain irregular delimiters
- Non-standard spacing in CFS field may need manual mapping
- Does not validate HS codes / BL formats
Pull requests and feature suggestions are welcome.
MIT License — free for commercial and private use.