from pathlib import Path import zipfile root = Path("/mnt/data/swiftship_demo") root.mkdir(exist_ok=True) html = r'''<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>SwiftShip Demo — Tracking</title> <style> *{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f7fb;color:#172033} header{background:#173b73;color:white;padding:22px 6%;display:flex;justify-content:space-between;align-items:center} .logo{font-size:24px;font-weight:700}.demo{font-size:12px;background:#fff;color:#173b73;padding:7px 10px;border-radius:20px;font-weight:700} main{max-width:850px;margin:45px auto;padding:0 20px} .notice{background:#fff3cd;border:1px solid #ffe69c;padding:13px 16px;border-radius:10px;text-align:center;font-size:13px} .card{background:white;margin-top:20px;padding:28px;border-radius:16px;box-shadow:0 5px 25px #17203312} h1{margin-top:0}.search{display:flex;gap:10px;margin-top:20px}.search input{flex:1;padding:14px;border:1px solid #ccd5e2;border-radius:9px;font-size:16px}.search button{padding:14px 22px;border:0;border-radius:9px;background:#173b73;color:white;font-weight:700;cursor:pointer} #result{display:none}.status{color:#147a45;font-weight:700;font-size:18px}.details{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:22px 0}.detail{background:#f7f9fc;padding:15px;border-radius:10px}.label{font-size:12px;color:#657086}.value{font-weight:600;margin-top:5px} .timeline{border-left:3px solid #dce4ef;margin:25px 0 5px 10px;padding-left:25px}.event{position:relative;margin:25px 0}.event:before{content:"";position:absolute;left:-34px;top:2px;width:12px;height:12px;border-radius:50%;background:#173b73;border:3px solid white;box-shadow:0 0 0 2px #173b73}.event strong{display:block}.event small{color:#657086} footer{text-align:center;color:#68758a;font-size:12px;padding:30px} @media(max-width:600px){header{padding:18px 5%}.search{flex-direction:column}.details{grid-template-columns:1fr}} </style> </head> <body> <header><div class="logo">SwiftShip Demo</div><div class="demo">FICTIONAL DEMO</div></header> <main> <div class="notice">DEMO ONLY — This is a fictional tracking page. No real shipment, courier, or delivery is associated with this site.</div> <section class="card"> <h1>Track a shipment</h1> <p>Enter the demo tracking number below.</p> <div class="search"> <input id="tracking" placeholder="e.g. DEMO-2026-84721" aria-label="Tracking number"> <button onclick="track()">Track</button> </div> <div id="result"> <hr style="border:0;border-top:1px solid #e5eaf1;margin:28px 0"> <div class="status">● In Transit</div> <div class="details"> <div class="detail"><div class="label">Tracking number</div><div class="value">DEMO-2026-84721</div></div> <div class="detail"><div class="label">Estimated delivery</div><div class="value">September 2, 2026</div></div> <div class="detail"><div class="label">Origin</div><div class="value">Demo City</div></div> <div class="detail"><div class="label">Destination</div><div class="value">Example City</div></div> </div> <h2>Shipment history</h2> <div class="timeline"> <div class="event"><strong>In transit</strong><small>August 27, 2026 — Demo distribution center</small></div> <div class="event"><strong>Package processed</strong><small>August 26, 2026 — Demo sorting facility</small></div> <div class="event"><strong>Shipment created</strong><small>August 25, 2026 — Fictional sender</small></div> </div> </div> <p id="error" style="display:none;color:#b42318;margin-top:18px">For this demo, use <strong>DEMO-2026-84721</strong>.</p> </section> </main> <footer>SwiftShip Demo · Fictional educational project · Not a real courier service</footer> <script> function track(){ const v=document.getElementById('tracking').value.trim().toUpperCase(); const ok=v==='DEMO-2026-84721'; document.getElementById('result').style.display=ok?'block':'none'; document.getElementById('error').style.display=ok?'none':'block'; } document.getElementById('tracking').addEventListener('keydown',e=>{if(e.key==='Enter')track()}); </script> </body> </html>''' (root / "index.html").write_text(html, encoding="utf-8") readme = """# SwiftShip Demo Tracking Website Fictional educational/demo website only. Demo tracking number: DEMO-2026-84721 Open `index.html` in a browser to view it. It contains prominent fictional/demo labeling and does not connect to any real courier or shipment system. """ (root / "README.md").write_text(readme, encoding="utf-8") zip_path = Path("/mnt/data/swiftship_demo.zip") with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as z: for p in root.iterdir(): z.write(p, p.name) print(f"Created: {zip_path}")
Sign in to leave a comment
Architecture diagrams will be automatically generated when the Project Manager creates tasks for your project.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No comments yet. Be the first!