Initial commit: habit tracker PWA with Google OAuth, push notifications
FastAPI + SQLAlchemy/Alembic + MariaDB backend with Jinja2/htmx/Alpine server-rendered frontend. Multi-user via Google OAuth, daily habit tracking, monthly/weekly history views, Web Push reminders via APScheduler, and PWA support (manifest, service worker, offline caching). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
<div class="field">
|
||||
<label>시행 요일</label>
|
||||
<div class="weekday-picker">
|
||||
<template x-for="(day, idx) in days" :key="idx">
|
||||
<button
|
||||
type="button"
|
||||
class="weekday-pill"
|
||||
:class="{ selected: (mask & (1 << idx)) !== 0 }"
|
||||
@click="if (mask !== (1 << idx)) mask = mask ^ (1 << idx)"
|
||||
x-text="day"
|
||||
></button>
|
||||
</template>
|
||||
<button
|
||||
type="button"
|
||||
class="everyday-btn"
|
||||
:class="{ selected: mask === 127 }"
|
||||
@click="mask = 127"
|
||||
>매일</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label style="display:flex; align-items:center; gap:8px;">
|
||||
<input type="checkbox" x-model="alarmOn" style="width:auto;" />
|
||||
알람 사용
|
||||
</label>
|
||||
<input x-show="alarmOn" x-cloak type="time" name="reminder_time" value="{{ reminder_value|default('') }}" style="margin-top:6px;" />
|
||||
</div>
|
||||
Reference in New Issue
Block a user