feat: Updates to home / landing page.
All checks were successful
CI / Linux Tests (push) Successful in 6m32s

This commit is contained in:
2026-02-08 19:12:52 -05:00
parent bb88d48eb3
commit e4ddec0d53
10 changed files with 354 additions and 208 deletions

View File

@@ -1,5 +1,5 @@
Name,Heating Load,Cooling Total,Cooling Sensible,Register Count,Delegated To
Bed-1,12345,1234,1321,1,
Bed-1,2345,1234,1321,1,
Entry,3456,2345,1234,1,
Kitchen,7654,3456,2453,2,
Bath-1,890,345,,1,Kitchen
Bath-1,890,345,,0,Kitchen
1 Name Heating Load Cooling Total Cooling Sensible Register Count Delegated To
2 Bed-1 12345 2345 1234 1321 1
3 Entry 3456 2345 1234 1
4 Kitchen 7654 3456 2453 2
5 Bath-1 890 345 1 0 Kitchen

View File

@@ -77,16 +77,13 @@ struct RoomTests {
let csvPath = Bundle.module.path(forResource: "rooms", ofType: "csv")
let csvFile = Room.CSV(file: try Data(contentsOf: URL(filePath: csvPath!)))
let rows = try await csvParser.parseRooms(csvFile)
print()
print("ROWS: \(rows)")
print()
let created = try await database.rooms.createFromCSV(project.id, rows)
print()
print("CREATED: \(created)")
print()
#expect(created.count == rows.count)
// Check that delegating to another room works properly.
let bath = created.first(where: { $0.name == "Bath-1" })!
let kitchen = created.first(where: { $0.name == "Kitchen" })!
#expect(bath.delegatedTo == kitchen.id)
}
}

View File

@@ -30,31 +30,69 @@
<body>
<div class="flex flex-col min-h-screen min-w-full justify-between">
<main class="flex flex-col min-h-screen min-w-full grow mb-auto">
<div class="flex justify-end me-4">
<button class="btn btn-ghost btn-secondary text-lg" hx-get="/login" hx-target="body" hx-swap="outerHTML">Login</button>
</div>
<div class="hero min-h-screen">
<div class="hero-content text-center bg-base-200 dark:bg-base-300
min-w-[80%] min-h-[400px] rounded-3xl shadow-3xl">
<div>
<div class="flex justify-center items-center">
<div class="flex border-b-8 border-sky-600
<div>
<div class="flex justify-end m-4">
<button class="btn btn-ghost btn-secondary text-lg" hx-get="/login" hx-target="body" hx-swap="outerHTML">Login</button>
</div>
<div class="hero">
<div class="relative hero-content text-center bg-base-300
w-full min-h-[400px] rounded-3xl shadow-3xl overflow-hidden">
<div class="bg-secondary text-xl font-bold
absolute top-10 -left-15
px-6 py-2 w-[250px] -rotate-45">BETA</div>
<div>
<div class="flex justify-center items-center">
<div class="flex border-b-6 border-accent
text-8xl font-bold my-auto space-2">
<h1 class="me-2">Duct Calc</h1>
<div class="">
<span class="bg-violet-600 rounded-md
text-5xl rotate-180 p-2" style="writing-mode: vertical-rl">Pro</span>
<h1 class="me-2">Duct Calc</h1>
<div class="">
<span class="bg-secondary rounded-md
text-5xl rotate-180 p-2" style="writing-mode: vertical-rl">Pro</span>
</div>
</div>
</div>
Open source residential duct design program<a class="btn btn-ghost text-md text-primary font-bold italic" href="https://git.housh.dev/michael/swift-manual-d" target="_blank"></a>
<p class="text-3xl py-6">Manual-D™ speed sheet, but on the web!</p>
<button class="btn btn-xl btn-primary mt-6" hx-get="/signup" hx-target="body" hx-swap="outerHTML">Get Started</button>
<p class="text-xs italic mt-8">
Manual-D™ is a trademark of Air Conditioning Contractors of America (ACCA).
This site is not designed by or affiliated with ACCA.
</p>
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mx-20 my-6">
<div class="border-3 border-accent rounded-lg shadow-lg p-4">
<div class="flex items-center space-x-4">
<div class="text-5xl text-primary font-bold">Features</div>
</div>
<div class="text-xl ms-10 mt-10">
<ul class="list-disc">
<li>
<div class="font-bold italic bg-secondary rounded-lg shadow-lg px-4 w-fit">Built by humans</div>
</li>
<li>Fully open source.</li>
<li>Great replacement for speed sheet users.</li>
<li>Great for classrooms.</li>
<li>Store your projects in one place.</li>
<li>Export final project to pdf.</li>
<li>Import room loads via CSV file.</li>
<li>Web based.</li>
<li>Self host (run on your own infrastructure).</li>
</ul>
</div>
</div>
<div class="border-3 border-accent rounded-lg shadow-lg p-4">
<div class="text-5xl text-primary font-bold">Coming Soon</div>
<div class="text-xl ms-10 mt-10">
<ul class="list-disc">
<li>API integration.</li>
<li>Command line interface.</li>
<li>Fitting selection tool.</li>
<li>Room load import from PDF.</li>
</ul>
</div>
Open source residential duct design program<a class="btn btn-ghost text-md italic" href="https://git.housh.dev/michael/swift-manual-d" target="_blank"></a>
<p class="text-xl py-6">Manual-D™ speed sheet, but on the web!</p>
<button class="btn btn-xl bg-violet-600 mt-6" hx-get="/signup" hx-target="body" hx-swap="outerHTML">Get Started</button>
<p class="text-xs italic mt-8">
Manual-D™ is a trademark of Air Conditioning Contractors of America (ACCA).
This site is not designed by or affiliated with ACCA.
</p>
</div>
</div>
</div>