From 9a8a38b11ed90837a85de2fbbb9958823b0c0c25 Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Fri, 2 Feb 2018 17:34:10 -0500 Subject: [PATCH] update readme --- build_json.xlsx | Bin 44693 -> 0 bytes coa.md | 31 -------------- readme.md | 105 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 32 deletions(-) delete mode 100644 build_json.xlsx delete mode 100644 coa.md diff --git a/build_json.xlsx b/build_json.xlsx deleted file mode 100644 index 0c7022c46c831be8a0cd45e555f8a45e4c1003bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44693 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°RhGh7CP55DSURT!%~PE= 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 diff --git a/coa.md b/coa.md deleted file mode 100644 index ca7ec47..0000000 --- a/coa.md +++ /dev/null @@ -1,31 +0,0 @@ -Balance Sheet ------------------------ -* Cash - - On-hand - - Hunt Checking - - Hunt Savings -* Prepaid - - Auto Insurance - - Home Insurance -* Investments - - Principle 401k - - Fidelity 401k - - STRS - - PPG 401k - - Norwex SP -* Assets - - Auto Cost - - Auto Depr - - Home -* Credit - - Chase - - Discover - - Kohls - - Lowes - - BestBuy - - Target - - TheHomeDepot -* Mortgage - - Principle - - diff --git a/readme.md b/readme.md index e7c2ac0..aea1511 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,107 @@ -Concepts +Overview +---------------------------------------------- + + +``` + +--------------+ + |csv data | + +-----+--------+ + | + | + v ++----web ui----+ +----func+----+ +---table----+ +|import screen +------> |srce.sql +----------> |tps.srce | <-------------------+ ++--------------+ +-------------+ +------------+ | + |p1:srce | | + |p2:file path | | ++-----web ui---+ +-------------+ +----table---+ | +|create map | |tps.map_rm | +--+--db proc-----+ +|profile +---------------------------------> | | |update tps.trans | ++------+-------+ +-----+------+ |column allj to | + | ^ |contain map data | + | | +--+--------------+ + v foreign key ^ ++----web ui+----+ | | +|assign maps | + | +|for return | +---table----+ | ++values +--------------------------------> |tps.map_rv | | ++---------------+ | +---------------------+ + +------------+ + +``` + +The goal is to: +1. house external data and prevent duplication on insert +2. apply mappings to the data to make it meaningful +3. be able to reference it from outside sources (no action required) + +There are 5 tables +* tps.srce : definition of source +* tps.trans : actual data +* tps.trans_log : log of inserts +* tps.map_rm : map profile +* tps.map_rv : profile associated values + +# tps.srce schema + { + "name": "WMPD", + "descr": "Williams Paid File", + "type":"csv", + "schema": [ + { + "key": "Carrier", + "type": "text" + }, + { + "key": "Pd Amt", + "type": "numeric" + }, + { + "key": "Pay Dt", + "type": "date" + } + ], + "unique_constraint": { + "fields":[ + "{Pay Dt}", + "{Carrier}" + ] + } + } + +# tps.map_rm schema + { + "name":"Strip Amount Commas", + "description":"the Amount field comes from PNC with commas embeded so it cannot be cast to numeric", + "defn": [ + { + "key": "{Amount}", /*this is a Postgres text array stored in json*/ + "field": "amount", /*key name assigned to result of regex/* + "regex": ",", /*regular expression/* + "flag":"g", + "retain":"y", + "map":"n" + } + ], + "function":"replace", + "where": [ + { + } + ] + } + + + + + + + + + + + + +Notes ====================================== pull various static files into postgres and do basic transformation without losing the original document