From f5c91359cf7dd1da94af9b5811d973ff2ba31ec6 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Fri, 30 Jan 2026 11:00:44 +0000 Subject: [PATCH] Initial MVP Commit: Ingest, Enrich, Dashboard --- Dockerfile | 9 ++++ __pycache__/db.cpython-311.pyc | Bin 0 -> 4050 bytes app.py | 55 ++++++++++++++++++++++++ data/leads.db | Bin 0 -> 16384 bytes db.py | 70 ++++++++++++++++++++++++++++++ enrich.py | 43 +++++++++++++++++++ ingest.py | 75 +++++++++++++++++++++++++++++++++ 7 files changed, 252 insertions(+) create mode 100644 Dockerfile create mode 100644 __pycache__/db.cpython-311.pyc create mode 100644 app.py create mode 100644 data/leads.db create mode 100644 db.py create mode 100644 enrich.py create mode 100644 ingest.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..540ffee --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.9-slim + +WORKDIR /app + +COPY . . + +RUN pip install streamlit pandas + +CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"] diff --git a/__pycache__/db.cpython-311.pyc b/__pycache__/db.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8ed2237fb1fc2092c777e1d245cc3709b1ba9cc6 GIT binary patch literal 4050 zcmbVP-ESMm5#Rfu?ns`b=)-Ojz{y!3wrMa{iXsRQD@thd+%Og?g*>&9ih`i;PWHLv zow9cdBZUTNLx3Yei4&lJ^HM-hZUaB`wT}goKY#>?f;hl{f%c_u43q*vo;te}k33p5 z1TT5R-PxJh+2#Ib=KeZ796`|j^;O0EkATp>$)MBNqt4;`(0Pb-q%%dd*8XMI7#Oof zw#2Tn4AQwZPUm;f8n1_dhV&tzL%OI7JItD(GdUCs|CgA{#28Q13$EdsC1d-QqEXP_ zFsz%VWy}G$Fh>~9CH;m*ggcFc4tWkeAP)0SJ%+(FYusbCh5QQNp>TgREhg>wFet#2KpVp!PJZj}tn&6CS?jD+JB+)am0 z$Vuf|Vr5a4&s#?Me9&cVI2*R*7oU0oKK3TYy8F& zG~2Qa&Gm%jmHcu-{lFX2HnC%4PcS|+v`yClhFvO|t{2jZwqwLtk0&}Fqd5eFvi!@` z+%3Cg%vrW>%xT3!S*Jkpk#pnH#+E0TmI)ibfnNe0z%p`HfmG3x==lD7e|fteoo+;@ ztI4J)J&5i_cZc_ftBEEbx}Un2YN63l@kcZo3jah141vff6uy7`-u1ibopd$b|?KU|r z+JdkgXp0Nl8Yst~P%d;rxuFxv2|+nsTo)g~fAY8!(GdhD=0NQ1y7xDD0t|w)W)8x= z5}kg(q#n+pY2T<(c+ak)2|kx@5z#bp|+;xY|Qpmr3A;&MBzw4qOyBkgyI#T6wd zUwAJrAM@?XdaS9F7(rtw4HhI?dLg=&7ouxIwmWYN=KS=MTzn!T|uQ#OEpGcGY zi@TZqOj9~V`LVh*(~xEc4A0l4sfIMwne7{1tV^>EX|^eiwZ_6Dksk#q9Q_FaX;Jbj z3J-UJ-WS8o(FyPdIFY@`uCy;iGjK$Izw*}A%jo;dqsb}mhX|9LML(QnNPmhW{n^vW%bW&sej}$&p2L^mY+oRF z27yN`(N;luzoHowrh-7GRS>yc&$MHzAm+dioxS3H7Fk&NM8QU9cObMUQBWT$BQCT3 zMow8&uB!4y`C4`(=z zufqF=-5<}P?+}!$yl!ePS;#kn+Jw6#Lf zS%6MwdLGtx2!g7p7CqPgemnhT^6QD+)PBlm;V}@2h5O*`aap_UMPc>)Iz$H>Z}k9P zTsK_pR-ss=FpqIvEPFihH;Cx4?Zt6PMpDL}F2kNjD1~k}y4e;k=ZwK4~+50ms z=r_Dxk+%cD!2HT`lDrYLtN)y$9%UZ+U6Nz^s#f61zyCnVD&)lg2HO{&qaBdM#Q9jr z6KHyX^fc5?aNbC8iS9*nhz2B$PTCmX+#oM`6b<>dGM)pG1$dmhK%SpHngRr1F7y#| zltF6a%eCBU?GI+{Pq>zK>Z02a-5UKqZReQU`20UU{b#whuv8b98{%?JTqYNBaQWKC z8Iy^L6lxxS+p#U0Hrx4>6wx%{QIt^U@mazn_-tceoG;n>X3kn0 zG|@&HQGBm|byruy6Sk z2HbUs532OBB+JqkfFwyP;8pVGa%$-l$}2NFO6 zNB{{S0VIF~kN^@u0!RP}ycL0V{B|mnk&k`Sx2bnxi#D$3(UX8OeQ|kfr=!)o8g%R1 z`x-3hK48S58^Ut^{0sSmR4OI^`rY)NHYJ8PJ;fsS(~sam0YR?lhY9 z&M|zY9Yg)7`*ouwteaY^yAiSQc;M=^Ck(sVw_P}DH4cunsESK&PP!sxXQao~ZH5N-WIpll5li{O9KlKn(Z{I^4FY>zRBEhq^f-edppOo2ObtFmR~>+m`#L&is1z%gWO1H>qI-&YSr^H2K8k+<_g@k22e0)bpjvP