Built on the stack we already run
R first, Parquet and PostgreSQL storage, one job per source, and a Shiny dashboard published like the other NXW apps.
The stack
R first
Connectors and checks in R (httr2, data.table, arrow, DBI, validate); Python only where needed.
Storage
Parquet by table and date, queried with DuckDB; PostgreSQL for codes, sources and the quality log.
Scheduling
One job per source on a Linux server, then the daily build once every source is in.
Serving
IFRC SFTP folder, a plumber API, and the nxwdata R package used by every app.
Monitoring
A Shiny dashboard published like the other NXW apps, plus a daily email.
Code
One Git repository, a folder per connector, tests on every check.
Four phases
Foundation
Vietnam prices, corporate actions, shares and FX; NXW codes; the three zones; core checks.
Ecosystem
Global data, external indexes, macro series; the nxwdata package; the dashboard.
Research
Fundamentals, ESG and alternative data, point-in-time panels, data dictionary.
Scale
Intraday prices, paid feeds where needed, access roles, external data products.
Where we start
List every download each app does today, with its source and schedule.
Agree the NXW instrument code and build INSTRUMENT and ID_MAP for Vietnam.
Move the VTP Yahoo script and the IMS price load into DMS connectors.
Write the core checks and the DQ_LOG.
Switch IMS to the Curated zone, then the other apps one by one.
Talk to the NXW data team
Clean data in. Confident decisions out.
