getreadystack commited on
Commit
0786656
·
verified ·
1 Parent(s): dfc78d2

Upload index.html with huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +42 -19
index.html CHANGED
@@ -1,19 +1,42 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Project Dashboard Template for Tableau — PMO Status, Budget &amp; On-Time KPIs, Bring Your Own CSV</title><meta name="description" content="You point it at your own project CSV; 8 calculated fields surface every overdue task and budget overrun before your sponsor sees the steering deck — the ones a raw export hides."><style>
2
+ :root{color-scheme:light dark}
3
+ body{font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;margin:0;padding:22px;
4
+ max-width:960px;margin-inline:auto}
5
+ h1{font-size:1.4rem;margin:0 0 .3rem}
6
+ .sub{opacity:.78;margin:0 0 1.3rem}
7
+ h2{font-size:1.06rem;margin:1.8rem 0 .5rem}
8
+ table{border-collapse:collapse;width:100%;font-size:.93rem}
9
+ th,td{border:1px solid #8884;padding:.42rem .55rem;text-align:left;vertical-align:top}
10
+ th{font-weight:600;opacity:.85}
11
+ code{font:.9em ui-monospace,SFMono-Regular,Menlo,monospace;background:#8881;
12
+ padding:.12rem .34rem;border-radius:5px;word-break:break-word}
13
+ .f{border:1px solid #8884;border-radius:10px;padding:12px 14px;margin:.55rem 0}
14
+ .f p{margin:.35rem 0 0}
15
+ .hdr{display:block;padding:.6rem .7rem;overflow-x:auto;white-space:pre}
16
+ ul{margin:.4rem 0 0;padding-left:1.15rem}
17
+ .buy{margin-top:26px;border:1px solid #8884;border-radius:11px;padding:16px}
18
+ .buy a{display:inline-block;margin-top:.6rem;padding:.55rem 1rem;border:1px solid currentColor;
19
+ border-radius:8px;text-decoration:none;color:inherit;font-weight:600}
20
+ </style><script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTphZjljMzgyMC0yMmU5LTRhYjgtYTIxNS03OTRhMGY1N2ExYzM=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
21
+ <!--yj-canon-s101--><link rel="canonical" href="https://getreadystack.com/tools/project-dashboard-template"></head><body>
22
+ <h1>Project Dashboard Template for Tableau — PMO Status, Budget &amp; On-Time KPIs, Bring Your Own CSV</h1><p class="sub">You point it at your own project CSV; 8 calculated fields surface every overdue task and budget overrun before your sponsor sees the steering deck — the ones a raw export hides.</p>
23
+ <h2>Calculated fields included (8)</h2>
24
+ <div class="f"><b>Schedule Status</b><p>Formula: <code>IF [Status] = &quot;Complete&quot; THEN &quot;Done&quot; ELSEIF [Due Date] &lt; TODAY() THEN &quot;Overdue&quot; ELSE &quot;On Track&quot; END</code></p><p>Uses: <code>Status</code>, <code>Due Date</code></p></div>
25
+ <div class="f"><b>Completion Rate</b><p>Formula: <code>SUM(IF [Status] = &quot;Complete&quot; THEN 1 ELSE 0 END) / COUNT([Task])</code></p><p>Uses: <code>Status</code>, <code>Task</code></p></div>
26
+ <div class="f"><b>Budget Variance</b><p>Formula: <code>SUM([Actual Cost]) - SUM([Budget])</code></p><p>Uses: <code>Actual Cost</code>, <code>Budget</code></p></div>
27
+ <div class="f"><b>Budget Utilization</b><p>Formula: <code>ZN(SUM([Actual Cost])) / SUM([Budget])</code></p><p>Uses: <code>Actual Cost</code>, <code>Budget</code></p></div>
28
+ <div class="f"><b>On-Time Delivery Rate</b><p>Formula: <code>SUM(IF [Finish Date] &lt;= [Due Date] THEN 1 ELSE 0 END) / SUM(IF [Status] = &quot;Complete&quot; THEN 1 ELSE 0 END)</code></p><p>Uses: <code>Finish Date</code>, <code>Due Date</code>, <code>Status</code></p></div>
29
+ <div class="f"><b>Days Past Due</b><p>Formula: <code>IF [Status] = &quot;Complete&quot; THEN 0 ELSE DATEDIFF('day', [Due Date], TODAY()) END</code></p><p>Uses: <code>Status</code>, <code>Due Date</code></p></div>
30
+ <div class="f"><b>Hours Variance</b><p>Formula: <code>SUM([Actual Hours]) - SUM([Planned Hours])</code></p><p>Uses: <code>Actual Hours</code>, <code>Planned Hours</code></p></div>
31
+ <div class="f"><b>Effort Efficiency</b><p>Formula: <code>ZN(SUM([Planned Hours])) / SUM([Actual Hours])</code></p><p>Uses: <code>Planned Hours</code>, <code>Actual Hours</code></p></div>
32
+ <h2>Columns your CSV must have (12)</h2><table><tr><th>Column</th><th>Type</th><th>Role</th></tr><tr><td><code>Project</code></td><td>string</td><td>dimension</td></tr><tr><td><code>Task</code></td><td>string</td><td>dimension</td></tr><tr><td><code>Owner</code></td><td>string</td><td>dimension</td></tr><tr><td><code>Status</code></td><td>string</td><td>dimension</td></tr><tr><td><code>Priority</code></td><td>string</td><td>dimension</td></tr><tr><td><code>Start Date</code></td><td>date</td><td>dimension</td></tr><tr><td><code>Due Date</code></td><td>date</td><td>dimension</td></tr><tr><td><code>Finish Date</code></td><td>date</td><td>dimension</td></tr><tr><td><code>Budget</code></td><td>real</td><td>measure</td></tr><tr><td><code>Actual Cost</code></td><td>real</td><td>measure</td></tr><tr><td><code>Planned Hours</code></td><td>real</td><td>measure</td></tr><tr><td><code>Actual Hours</code></td><td>real</td><td>measure</td></tr></table>
33
+ <h2>CSV header row</h2><code class="hdr">Project,Task,Owner,Status,Priority,Start Date,Due Date,Finish Date,Budget,Actual Cost,Planned Hours,Actual Hours</code>
34
+ <p>File you connect: <code>project_tasks.csv</code></p>
35
+ <h2>Worksheets (5)</h2><ul><li>Project Status Overview</li><li>Budget vs Actual by Project</li><li>Cost Burn Over Time</li><li>On-Time Delivery by Owner</li><li>Overdue Task List</li></ul>
36
+ <h2>Dashboards (1)</h2><ul><li>Project Portfolio Dashboard</li></ul>
37
+
38
+ <section data-yj-cta="paid" style="margin:3rem auto;max-width:46rem;padding:1.5rem 1.25rem;border:1px solid #d8dee9;border-radius:12px;background:#fbfcfe;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .5rem;font-size:1.25rem">Get the complete version</h2><p style="margin:.25rem 0 1rem;color:#41505f">This page is the working piece. The full pack has everything below.</p><p style="margin:0 0 1rem;color:#41505f">You point it at your own project CSV; 8 calculated fields surface every overdue task and budget overrun before your sponsor sees the steering deck — the ones a raw export hides.</p><p style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">A freelance Tableau developer on Upwork charges $50–$150 an hour, and a custom project dashboard with these KPIs is a multi-hour build; this is a one-time $120 you keep and reuse every reporting cycle.</p><a href="https://getreadystack.com/free?p=project-dashboard-template&amp;lang=en" rel="nofollow" style="display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:#1b64f2;color:#fff;text-decoration:none;font-weight:600">Send it to me</a></section>
39
+ <section class="yj-related" style="max-width:920px;margin:56px auto 40px;padding:0 20px"><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">More from ReadyStack</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 20px;color:#5b6570">Ready-to-use files. One-time download, no subscription.</p><div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px"><a class="yj-rel-c" href="https://getreadystack.com/en/p/build-6-procreate-lettering-brushes-that-feel-like-ink-the-e"><span class="yj-rel-t">Build 6 Procreate Lettering Brushes That Feel Like Ink — The Exact-Settings Wo</span><span class="yj-rel-p">$39</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/nursing-resume-template"><span class="yj-rel-t">Nursing Resume Template — 6 Fill-In Word Documents by License Level and Care S</span><span class="yj-rel-p">$29</span></a><a class="yj-rel-c" href="https://getreadystack.com/en/p/australien-visum-beantragen-dein-5-schritte-workbook"><span class="yj-rel-t">Australien-Visum beantragen: Dein 5-Schritte-Workbook</span><span class="yj-rel-p">$12</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/real-estate-photo-presets"><span class="yj-rel-t">Real-Estate Interior LUTs and Lightroom Presets for Property Photographers</span><span class="yj-rel-p">$44</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/agency-website-template"><span class="yj-rel-t">Agency Website Template — 7-Page Studio Site in Plain HTML (No Subscription, S</span><span class="yj-rel-p">$49</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/travel-photo-presets"><span class="yj-rel-t">Travel Photographer LUTs and Lightroom Presets for City, Beach, and Landscape </span><span class="yj-rel-p">$44</span></a></div><style>.yj-rel-c{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #e2e6ea;border-radius:6px;text-decoration:none;background:#fff}.yj-rel-c:hover{border-color:#b9c2cb;background:#fafbfc}.yj-rel-t{font:500 14.5px/1.42 system-ui,sans-serif;color:#1b1f24}.yj-rel-p{font:600 13px system-ui,sans-serif;color:#0a6238}</style></section><!--yj-share-s101--><div style="margin:28px 0 8px;text-align:center"><button id="yjcp" type="button" style="font:inherit;padding:10px 18px;border:1px solid #8884;border-radius:10px;background:transparent;cursor:pointer">Copy link</button></div><script>(function(){var b=document.getElementById("yjcp");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var u=location.href.split("#")[0];function d(){b.textContent="Link copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(u).then(d,function(){prompt("",u);});}else{prompt("",u);}});})();</script>
40
+ <script data-yj="yj-view-beacon">(function(){try{var p=location.pathname;var k='yjv:'+p;if(sessionStorage.getItem(k))return;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en"})}).catch(function(){});}catch(e){}})();</script>
41
+ <div class="yj-home-find"><div class="yj-lgbar"><a href="/" class="yj-lg on">EN</a><a href="/de/" class="yj-lg">DE</a><a href="/ja/" class="yj-lg">JA</a><a href="/es/" class="yj-lg">ES</a><a href="/pt/" class="yj-lg">PT</a></div><section class="yj-find"><h2>Find a tool</h2><input id="yjq" type="search" autocomplete="off" placeholder="Type a product name, format or task"><div id="yjr"></div></section><style>.yj-lgbar{position:absolute;top:14px;right:18px;display:flex;gap:6px;z-index:60}.yj-lg{font:600 12px/1 system-ui,sans-serif;padding:6px 9px;border-radius:4px;text-decoration:none;color:#8b96a3;border:1px solid rgba(140,150,165,.28)}.yj-lg:hover{color:#e8eaed;border-color:rgba(160,175,195,.6)}.yj-lg.on{color:#0e1116;background:#cfd6de;border-color:#cfd6de}.yj-find{max-width:760px;margin:34px auto 8px;padding:0 20px}.yj-find h2{font:600 20px/1.3 system-ui,sans-serif;margin:0 0 10px}#yjq{width:100%;box-sizing:border-box;padding:13px 15px;font:400 15.5px system-ui,sans-serif;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit}#yjq:focus{outline:none;border-color:#7FD1C4}#yjr{margin-top:10px;display:flex;flex-direction:column;gap:6px}#yjr a{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(140,150,165,.22);border-radius:6px;text-decoration:none;font:400 14.5px/1.4 system-ui,sans-serif;color:inherit}#yjr a:hover{border-color:#7FD1C4}#yjr .pr{font:600 13px system-ui,sans-serif;color:#5fbf9a;white-space:nowrap}</style><script>(function(){var q=document.getElementById("yjq"),r=document.getElementById("yjr"),D=null;function load(){if(D)return Promise.resolve(D);return fetch("/search-index.json").then(function(x){return x.json();}).then(function(j){D=j;return j;}).catch(function(){D=[];return D;});}function esc(t){return String(t).replace(/[&<>"]/g,function(c){return {"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[c];});}function run(){var v=q.value.trim().toLowerCase();if(v.length<2){r.innerHTML="";return;}load().then(function(j){var w=v.split(/\s+/),o=[];for(var i=0;i<j.length&&o.length<12;i++){var t=j[i].t.toLowerCase();var ok=true;for(var k=0;k<w.length;k++){if(t.indexOf(w[k])<0){ok=false;break;}}if(ok)o.push(j[i]);}r.innerHTML=o.length?o.map(function(x){return "<a href=\""+esc(x.u)+"\">"+"<span>"+esc(x.t)+"</span>"+(x.p?"<span class=\"pr\">$"+x.p+"</span>":"")+"</a>";}).join(""):"";});}q.addEventListener("input",run);q.addEventListener("focus",load);})();</script></div><section class="yj-email-gate" style="max-width:46rem;margin:2.5rem auto;padding:1.25rem;border:1px solid rgba(140,150,165,.28);border-radius:10px;font:400 15px/1.5 system-ui,sans-serif"><b style="font-size:1.05rem">Want the full version?</b><div style="opacity:.75;margin:.35rem 0 .8rem">Enter your email and we send the download link.</div><div style="display:flex;gap:8px;flex-wrap:wrap"><input id="yjge" type="email" placeholder="you@example.com" style="flex:1;min-width:210px;padding:11px 13px;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit"><button id="yjgb" style="padding:11px 18px;border-radius:8px;border:0;cursor:pointer;font:600 15px system-ui,sans-serif">Send it to me</button></div><div id="yjgo" hidden style="margin-top:.6rem;color:#5fbf9a">Sent. Check your inbox.</div><script>(function(){var b=document.getElementById("yjgb"),e=document.getElementById("yjge");if(!b||!e)return;b.addEventListener("click",function(){var v=e.value.trim();if(!/.+@.+\..+/.test(v))return;try{localStorage.setItem("yj_em","1");}catch(_){}fetch(location.origin+"/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:v,slug:"project-dashboard-template",lang:"en",source:"hub_gate"})}).catch(function(){}).then(function(){document.getElementById("yjgo").hidden=false;});});})();</script></section>
42
+ </body></html>