Phase 1: Project scaffold

- Quarkus Maven project with all dependencies
- SQLite DatabaseService with DAO methods
- MusicBrainz REST client with DTOs
- ArtistService, ReleaseGroupService, CacheService, FeedService
- HTMX web controllers (ReleasesPage, ArtistsPage, ArtistController, FeedController, SettingsController)
- RSS feed builder using Rome library
- Qute templates with daisyUI theme switching
- Base layout with navbar, search, theme picker, settings modal
This commit is contained in:
2026-07-02 15:29:16 +02:00
commit f0be591faf
26 changed files with 1646 additions and 0 deletions
@@ -0,0 +1,37 @@
{#if entries.isEmpty()}
<div class="card bg-base-100 shadow-xl p-8 text-center">
<p class="text-lg text-base-content/60">No releases found</p>
<p class="text-sm text-base-content/40 mt-2">Add artists to your collection to see their releases here</p>
</div>
{:else}
<div class="overflow-x-auto">
<table class="table table-zebra">
<thead>
<tr>
<th>Artist</th>
<th>Release</th>
<th>Type</th>
<th>Date</th>
</tr>
</thead>
<tbody>
{#for entry in entries}
<tr>
<td class="font-medium">{entry.artistName}</td>
<td>
<a href="https://musicbrainz.org/release-group/{entry.mbid}"
target="_blank" rel="noopener noreferrer"
class="link link-hover">
{entry.title}
</a>
</td>
<td>
<span class="badge badge-outline badge-sm">{entry.primaryType}</span>
</td>
<td class="text-sm text-base-content/60">{entry.firstReleaseDate}</td>
</tr>
{/for}
</tbody>
</table>
</div>
{/if}