Skip to content

An opensource threat analysis suite for NGO's, Humanitarian Efforts, and basic INT Analysis.

Notifications You must be signed in to change notification settings

cplpearce/Threat-Analysis-Suite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Threat Analysis Suite (TAS)

An open source threat analysis suite for NGO's, Humanitarian Efforts, and basic Geospatial analysis.

The Threat Analysis Suite (TAS) is primarily aimed at collators and intelligence analysts for first-line analysis and geospatial situational awareness. TAS ingests SIGACTs with a minimal level of required datapoints, namely location, type, and date and renders them into the database and query builder.

In addition TAS is primarily meant to be run in an offline environment from a Raspberry Pi device, acting as a standalone server for your team. This eschews common pitfalls of web deployment but adds a layer of complexity in working without internet support. Currently TAS is fully operational offline.

Lastly and most importantly TAS aims to meet the Canadian Government and Commonwealth requirements of Classifications, with banners and encryption.

TAS currently features the following:

  • Querying and filtering.
  • Exporting and printing.
  • Importing and redundancy management.
  • Geospatial rendering & basic analysis; and,
  • Visualized geospatial rendering exporting to well-known formats.

Administrator Notes

TAS requires minimal setup. In the /data folder is a JSON file with predefined fields for deployment. These fields will fill various dynamically generated user data, as well as simplify setup for your team.

Server setup is as follows:

  • Install Postgres and psql.
  • Install NodeJS.
  • Clone this repo to your server git clone https://github.com/cplpearce/Threat-Analysis-Suite.git TAS.
  • Run npm i to install all the required dependencies.
  • Run npm run db:reset to reset the database with your user accounts and a template for your reports.
  • Run node app.js to begin running the server on port 3005.
  • Create a .env file in the application folder and set your database, your user, and password like so:
  DB_HOST=localhost
  DB_USER=reports
  DB_PASS=reports
  DB_NAME=reports
  DB_PORT=5432
  • If running offline Collect MBTiles geospatial tiles of your target operations area and ammend the JSON setup file to read from your offline store.

Further Development

  • Plans for the integration to MapBox, Turf, and D3.js.
  • Refactoring.
  • Added analyst ease-of-use features (bulk record editing, geospatial querying).

Tech Stack

Node && Express PostgreSQL DataTables Leaflet

Data API

This suite uses any tabular data, in the case of sample data currently ACLED which is open source UNCLASSIFIED data.

https://acleddata.com/acleddatanew/wp-content/uploads/dlm_uploads/2019/04/ACLED_Codebook_2019FINAL_pbl.pdf

https://acleddata.com/data-export-tool/

Here is the schema and key data for that data.

Column Name Content
1.  ID                .. Autogenerated   ..   A numeric code for each individual country
2.  API_EVENT_ID      .. Required        ..   External API record tracker to elimiate duplicates.
3.  API _NAME         .. Required        ..   External API or source to track reports.
4.  ANALYST_ID        .. Autogenerated   ..   The analyst whom imported or created a report.
5.  EVENT_DATE        .. Required        ..   The day, month and year on which an event took place
6.  EVENT_TYPE        .. Required        ..   The type of event
7.  SUB_EVENT_TYPE    .. Required        ..   The type of sub-event
8.  ACTOR1            .. Required        ..   The named actor involved in the event
9.  ASSOC_ACTOR_1     ..                 ..   The named actor associated with or identifying ACTOR1
10. ACTOR2            ..                 ..   The named actor involved in the event
11. ASSOC_ACTOR_2     ..                 ..   The named actor associated with or identifying ACTOR2
12. REGION            .. Required        ..   The region of the world where the event took place
13. COUNTRY           ..                 ..   The country in which the event took place
14. ADMIN1            ..                 ..   The largest sub-national administrative region in which the event took place
15. ADMIN2            ..                 ..   The second largest sub-national administrative region in which the event took place
16. ADMIN3            ..                 ..   The third largest sub-national administrative region in which the event took place
17. LOCATION          .. Required        ..   The location in which the event took place
18. LATITUDE          .. Required        ..   The latitude of the location
19. LONGITUDE         .. Required        ..   The longitude of the location
20. SOURCE            .. Required        ..   The source of the reporting.
21. NOTES             .. Required        ..   The report notes added by the analysis or original reporting source.
22. FATALITIES        .. Required OR 0   ..   The fatalities inflicted by the event.
23. IMPORT_DATE       .. Autogenerated   ..   The date the report was added.

Screenshots

Main

Main

Add Report

Add Report

Import Reports

File Import

Importing a File

File Importing a File

Report Table

Report Table

Geo

Geo

About

An opensource threat analysis suite for NGO's, Humanitarian Efforts, and basic INT Analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages