Go + SQLite web app, server-rendered, hackerman theme. Projects with descriptions, searchable notes, todo/doing/done task tracking. Bcrypt login sessions, hashed api keys, full /api/v1 crud. Deploys on straylight via configs/tracker.nix (prebuilt binary).
36 lines
1.4 KiB
HTML
36 lines
1.4 KiB
HTML
{{template "header" .}}
|
|
|
|
<section class="stats">
|
|
<div class="stat"><span class="num">{{.Stats.Projects}}</span><span class="label">projects</span></div>
|
|
<div class="stat todo"><span class="num">{{.Stats.Tasks.Todo}}</span><span class="label">todo</span></div>
|
|
<div class="stat doing"><span class="num">{{.Stats.Tasks.Doing}}</span><span class="label">doing</span></div>
|
|
<div class="stat done"><span class="num">{{.Stats.Tasks.Done}}</span><span class="label">done</span></div>
|
|
<div class="stat"><span class="num">{{.Stats.Notes}}</span><span class="label">notes</span></div>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<h1 class="glow">// new project</h1>
|
|
<form method="post" action="/projects" class="stack">
|
|
<input type="text" name="name" placeholder="project name" required maxlength="120">
|
|
<textarea name="description" placeholder="description…" rows="3"></textarea>
|
|
<button type="submit" class="btn primary">init ▸</button>
|
|
</form>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<h1 class="glow">// projects</h1>
|
|
{{if not .Projects}}
|
|
<p class="muted">no projects on the grid. create one above ▲</p>
|
|
{{end}}
|
|
<ul class="project-list">
|
|
{{range .Projects}}
|
|
<li>
|
|
<a class="project-link" href="/projects/{{.ID}}">{{.Name}}<span class="arrow"> ▸</span></a>
|
|
{{if .Description}}<p class="muted">{{.Description}}</p>{{end}}
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
</section>
|
|
|
|
{{template "footer" .}}
|