init project plan

This commit is contained in:
2025-08-14 13:18:33 -04:00
parent 1da4adca46
commit 880afb16ee

129
README.md
View File

@@ -1 +1,128 @@
# sone4ka-tok
## **Project Plan: PWA iCal Editor with AI Integration**
### Phase 0 — Set Up Your Workspace (1 day)
**Goal:** Ensure your dev environment and project skeleton are ready.
**Tasks:**
1. Install bun runtime and Docker locally.
2. Create a GitHub repo for your project.
3. Set up a kanban board (e.g., GitHub Projects, Trello, or even a whiteboard) with columns: _Backlog → In Progress → Done_.
4. Initialize Next.js project with **bun**:
```bash
bun create next-app my-ical-pwa
```
5. Integrate **shadcn/ui** + TailwindCSS.
```
npx shadcn-ui init
```
6. Install TurboPack config for faster builds.
7. Commit and push to GitHub.
✅ **Success criteria:** You can run `bun dev` and see the starter NextJS page with a shadcn component rendering.
---
### Phase 1 — PWA Foundations (23 days)
**Goal:** Make your app installable, offline-capable, and structured.
**Tasks:**
1. Configure NextJS PWA using the [`next-pwa`](https://github.com/shadowwalker/next-pwa) plugin or manual service worker.
2. Add manifest.json (name, icons, start_url).
3. Ensure offline caching works for basic pages.
4. Build your base layout with shadcn (Navigation bar, App shell).
✅ **Success criteria:**
- App can be installed on desktop/mobile.
- Basic UI framework in place (navigation, header).
- Works offline in basic form.
---
### Phase 2 — Local Calendar CRUD (34 days)
**Goal:** Create, Read, Update, and Delete events in **IndexedDB** (calendar data stored locally).
**Tasks:**
1. Set up IndexedDB wrapper (recommend [`idb`](https://github.com/jakearchibald/idb) library for simplicity).
2. Design minimal event model:
```ts
type CalendarEvent = {
id: string;
title: string;
start: Date;
end: Date;
description?: string;
};
```
3. Build **Add Event** form (shadcn modal or page).
4. Render events in list view.
5. Enable edit/delete logic.
6. Store small user preferences (theme, last viewed date) in localStorage.
✅ **Success criteria:**
- You can add, edit, and delete events without reloading.
- Changes persist after refresh.
---
### Phase 3 — iCal File Import/Export (3 days)
**Goal:** Read `.ics` files and export your event list as iCal.
**Tasks:**
1. Use [`ical.js`](https://github.com/mozilla-comm/ical.js) or [`ical-generator`](https://github.com/sebbo2002/ical-generator) to handle parsing.
2. Create import button (upload local iCal file and store events in IndexedDB).
3. Create export button that takes current events and downloads `.ics`.
✅ **Success criteria:**
- Importing an `.ics` populates your list.
- Export downloads a valid `.ics` file.
---
### Phase 4 — AI Integration (OpenRouter) (35 days)
**Goal:** Add AI-assisted event creation / summarization.
**Tasks:**
1. Set up API route in Next.js that calls **OpenRouter** API.
2. Write prompt format for:
- Turning natural language into structured event JSON.
- Summarizing events into a bullet list.
3. Add text input where the user can type: _"Lunch with Sarah next Friday at noon"_ → generates event form populated automatically.
4. Integrate results directly into CRUD flow.
✅ **Success criteria:**
- User can create an event by typing in natural language and AI fills in details.
- AI can summarize selected events.
---
### Phase 5 — Polish & Deployment (23 days)
**Goal:** Dockerize and deploy to bare metal.
**Tasks:**
1. Write `Dockerfile` for **bun + NextJS** app.
2. Add `.dockerignore` to optimize build.
3. Deploy to your server using `docker-compose` or raw `docker run`.
4. Enable HTTPS with Caddy or Nginx reverse proxy.
**Success criteria:**
- App is live, installable, and can read/write iCal files with AI support.
- Access from phone and desktop.
---
## ADHD-Friendly Productivity Tips for This Project
- **Visual progress:** Keep your kanban board visible; drag at least 1 card to "Done" daily.
- **Micro-goals:** Define tasks as “Under 1 hour” pieces (e.g., _“Add startDate field to form”_ versus _“Build CRUD forms”_).
- **Pomodoros with variety:** Alternate coding with light tasks (docs, UI tweaks).
- **Celebrate small wins:** Even “icons rendering right” counts.
- **Hyperfocus harness:** Save creative coding (like AI prompt design) for your high-focus times.
- **Body doubling:** Work in a co-working video call or stream to keep momentum.
---
## Suggested Timeline
If you work ~23 focused hours/day:
- **Week 1:** Phases 02 (setup, PWA, local CRUD)
- **Week 2:** Phases 34 (iCal import/export, AI integration)
- **Week 3:** Phase 5 (polish, deployment)
---
## Next Steps for You
1. Confirm if you want to **start from plain NextJS** or grab a PWA boilerplate to save time.
2. Decide which **AI model via OpenRouter** to use (cheap + fast, or high-quality outputs?).
3. Pick a **calendar UI approach** — minimal list view or visual calendar grid from the start?