Coder Social home page Coder Social logo

us-cbp / gtas Goto Github PK

View Code? Open in Web Editor NEW
109.0 21.0 77.0 98.41 MB

Global Travel Assessment System | A passenger data screening and analysis system for enhancing global security

Home Page: https://us-cbp.github.io/GTAS/

License: Other

Java 62.64% Python 0.18% JavaScript 20.63% HTML 13.94% CSS 1.05% Shell 1.17% Dockerfile 0.32% FreeMarker 0.07%
risk-assessment passenger-name-record pnr rules-engine parsing travel advance-passenger-information drools hibernate spring

gtas's Introduction

HitCount

Resources

Developed by U.S. Customs and Border Protection for The World Customs Organization

Flights Grid Seating Chart
Passenger Details Graph Database

About GTAS

The Global Travel Assessment System (GTAS) is web application for improving border security. It enables government agencies to automate the identification of high-risk air travelers in advance of their intended travel.

The United Nations has called upon members to use Advance Passenger Information (API) and Passenger Name Record (PNR) data for preventing the movement of high-risk travelers, and GTAS was designed to give every country that capability. The World Customs Organization (WCO) has partnered with U.S. Customs and Border Protection (US-CBP) because of the shared belief that every border security agency should have access to the latest tools. US-CBP has made this repository avaialble to the WCO to facilite deployment for its member states.

This belief has become a reality with GTAS in production. It is able to handle the load of a high-volume country, and has successfully identified high-risk travelers. The mission GTAS supports goes beyond combating terrorism and includes;

  • Preventing the spread of human health outbreaks
  • Protecting wildlife by preventing the transport of illegal animal products
  • Finding missing persons
  • Fighting drug trade
  • Protecting agriculture

Which results in;

  • Safer travel
  • Expedited Screening of passengers
  • Less waiting time at airports

GTAS accomplishes these goals through providing all the necessary decision support system features to (1) receive and store air traveler data (2) provide real-time risk assessment against this data based on your own specific risk criteria and/or watch lists (3) view high risk travelers, their associated flight and reservation information, and possible affiliates

Where is GTAS currently Deployed?

Three other deployments scheduled before JUN 2020

About the code

GTAS is developed in Java and uses open source software components and platforms.

About the data

GTAS parses data provided by airline departure control systems (API) and reservation systems (PNR). Respectively, these messages conform to WCO UN/EDIFACT PAXLST and PNRGOV message formats.

  • UN/EDIFACT PAXLST 02B and later
  • PNRGOV 11.1 and later

Features

  • API and PNR Data Processing
  • Criteria Based Risk Assessment
  • Watch List Based Risk Assessment
  • Identification of partial Watch List matches
  • Risk Criteria Management Interface
  • Watch List Management Interface
  • View Flights and Passengers Interface
  • Query Flights and Passengers Interface
  • Cloud-Ready
  • Case Management for Decision Support
  • Free-Text Search
  • Customizable Dashboard
  • Graph Database (Neo4J)
  • Graph Database Rules Engine for Identifying Risk Patterns

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue. The GTAS team manages all GTAS updates, bugs, and feature additions via GitHub's public issue tracker in this repository. In the spirit of open source software, everyone is encouraged to help improve this project.

Submit Issues

  • Before submitting a new issue, check to make sure a similar issue isn't already open. If one is, contribute to that issue thread with your feedback.

  • When submitting a bug report, please try to provide as much detail as possible, i.e. a screenshot or gist that demonstrates the problem, the browser you are using, and any relevant links.

Pull Requests

If you'd like to contribute to this project, please make a pull request. We'll review the pull request and discuss the changes.

gtas's People

Contributors

aaroncsolomon avatar cassidylaidlaw avatar copenhafer avatar dependabot[bot] avatar dje04001 avatar donleyac avatar geoffbays avatar harlankadish avatar kasimhelil avatar kmnofour avatar maneeshl avatar ml-git avatar originalname51 avatar paruff avatar sheldonm avatar simbam1 avatar simbamarufu1 avatar svempati2006 avatar teddytesfaye avatar tgudmund88 avatar tjwdev avatar tsegay avatar tsegaygit avatar yashpatil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtas's Issues

Case Management | Workflow?

Currently, the workflow for assigning dispositions to passengers is simple. Users assign the disposition and it creates a log of comments.

UI Bug | Hits are icons only

The current workaround for CBP workstations is to add the GTAS site to the list of trusted sites
We need to limit the usage of icons representing watchlist and rule hits

Fix main menu bar so that it doesn't wrap

As a user I want to use the main toolbar without items wrapping, so I can use the website on smaller screens.

Can we think about a different approach than buttons? It would be nice to group some of the options together into dropdowns. We're running out of space to add additional buttons.

License allows change, the source file headers say otherwise

The license (LICENSE.md) terms are unequivocally confusing, the license allows changes as long as the source file headers are unaltered, however these same headers stipulate that the source code is copyrighted.

It would be beneficial to all potential contributors if you could explicitly spell out whether this code is property of CBP, UNISYS corp, or the public domain?

I would suggest a thorough legal review of your licensing scheme.

Flights View | Clickable sort up to three slices

Please add the ability to sort up to three way, prioritizing by the order the columns are clicked, and describe the current sorting / filtering below the toolbar, with the ability to turn off a slice by clicking it

Passenger Details | Travel History

We don't really have the ability to view the travel history for an individual traveler. This will be solved by the data warehouse utility that we haven't fully planned out yet.

Name Origin | New Feature

Think about including the ability to query a first name or last name and get statistics about its origin

Ad hoc query UI

Initial front-end for ad hoc query. Consists of

  • single search input
  • buttons for executing search on passengers or flights
  • ui grid for displaying results. Refer to existing query builder search results.

Query Builder | Support Cases

Once the Cases hotlist has been developed, we'll need to add the ability to build queries based on the fields we create.

File Support | Epic

What file types can we support, where should we include this information?

SITA XML?
COPA XML? (Mexico Specific)
US/EDIFACT APIS?

Flights View | Expand/Collapse funtion

It would be extremely useful to be able to expand on the flight number to expose the manifest, which could be sorted by any of the passenger fields, but default on hit / hit severity

Ad Hoc Query

Create a feature that allows google-style queries on passengers. The motivation is to provide a faster path to the data versus using the existing query builder interface.

Ideally, we want to be able to search on the original raw APIS and PNR data. The goal is to make any data that may have been skipped by the parser available to search on. For instance, the parser skips over ticket numbers (the segment TKT+0062120234536:T:1).

Ad Hoc Query Indexer

Epic #41

Modify existing loader to also index the document in ElasticSearch. The index should have the following characteristics:

  • allow searching on either passengers or flights
  • include the flight id and passenger id from the database
  • include the raw PNR or APIS as part of the passenger or flight document

Ad Hoc Query UI

Epic #41

Create the initial UI and supporting angularJS code.

Results should be displayed exactly like the results from the existing query builder -- a list of passengers or flights. From a list of passenger results, the user should be able to access the passenger detail page.

Fix integration tests

As a developer I want to run the integration test suite without errors so I can create additional integration tests.

We have a number of integration tests, but a lot of them fail. Please take stock of what we have and decide which ones should be fixed or deleted. Any integration tests that use the database should use the spring transactional test class, and should assume an empty database (with the possible exception of look up data).

Passenger | Timeline Back End Work

Please add a Timeline on the passenger details page.

The Timeline is an audit log that shows the date/time and brief description of the following event types:

  • Message ingest/parsing
  • Rule Hit
  • Case opened
  • Disposition status changed/added

Code should be flexible to allow addition of new event types.

There is an existing audit log feature. See AuditActionType for a list of audit events. It uses the audit_log table in the database. Not sure if we can leverage this code because it does not associate a passenger with any of the events.

Fix formatting issues on flight/pax filters

Some general formatting issues with the current filters on both flight and pax views: (1) origin and dest are too large; (2) direction element doesn't line up; (3) reset and filter buttons are cramped (spread things out more if possible).

Update translate module to a configuration setting

As a user I would like the website to appear in a single language, so I do not have the update the language every time I log in.

The requirements need to be better defined for this module. It's currently implemented so that any user who logs in can change the locale/language. It should instead be a compile-time/configuration setting. The site will be deployed in a single host country so the language will be set once. We need to think about an approach that uses properties in the html files for the different labels, but doesn't require use of the translate filter.

Case Management | UI Bug

When a user creates a new disposition, the time and the user don't show up after clicking save. A manual refresh fixes it.

Administration | Epic

We really need to put -some thought into the administration hierarchy.

  • User-Groups management
  • Rule-Group management
  • Status Management (for cases, should be customizable list that affects the disposition dropdowns)
  • Rule Category Management
  • System Monitoring

Passenger Details | Affiliates

This functionality wasn't ready at the time of the gap analysis. We should get together and discuss exactly what we should try to get out of it

Quick Query | New Feature

We should add a quick query function that has:

Name Search - FN/LN/DoB
Doc Search - Doc#/Country Code
Contact Info Search - phone/email/travel agency/TA phone
PNR Search - record locator =

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.