Files
neta/ROADMAP.md
T
Poyraz AvseverandCopilot c73bf0e499 feat: add form components and UI elements for enhanced user interaction
- Introduced Form, FormField, FormItem, FormLabel, FormControl, FormDescription, FormMessage components for structured form handling.
- Added Input, Textarea, and Select components for user input.
- Implemented Label and Separator components for better UI organization.
- Created Skeleton component for loading states.
- Developed Toast and Toaster components for user notifications.
- Integrated useToast hook for managing toast notifications.
- Established AI analysis functionality with analyzeJournalWithLocalAI.
- Set up Dexie for local database management with Journal and Task models.
- Configured Supabase client for server-side and browser-side interactions.
- Defined database schema for journals, tasks, chat sessions, and messages with Row Level Security policies.

Co-authored-by: Copilot <copilot@github.com>
2026-05-06 16:20:14 +03:00

106 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MindSpace Proje Yol Haritası (Roadmap)
Bu doküman, `PRD.md` gereksinimlerinin **Supabase**, **Gemini API** ve **Shadcn UI** kullanılarak uygulanması için detaylı, faz bazlı geliştirme planını içermektedir.
---
## Faz 1: Proje Kurulumu ve Altyapı
**Amacı:** Geliştirme ortamının hazırlanması, UI bileşen sisteminin kurulması ve veritabanı / yetkilendirme (Auth) altyapısının Supabase ile entegre edilmesi.
1. **Next.js Kurulumu**
- Next.js (App Router), React 19, TypeScript ve Tailwind CSS kullanılarak projenin başlatılması.
- Dizin yapısının oluşturulması (`src/app`, `src/components`, `src/lib`, `src/hooks`).
2. **Shadcn UI ve Stil Entegrasyonu**
- Shadcn UI CLI ile başlatılması.
- Temel bileşenlerin (Button, Card, Input, Label, Dialog, Form, Toast vb.) eklenmesi.
- `next-themes` kullanılarak Dark/Light mod geçişinin ayarlanması (Varsayılan olarak Dark Mode ağırlıklı tasarım).
3. **Supabase Proje Kurulumu**
- Supabase projesinin oluşturulması ve API key'lerin `.env.local` dosyasına eklenmesi.
- `@supabase/ssr` veya `@supabase/supabase-js` ile client ve server bileşenleri için istemcilerin oluşturulması.
4. **Veritabanı Şemasının Oluşturulması (Supabase SQL)**
- `users` tablosu (Supabase Auth ile senkronize çalışacak yapı).
- `journals` tablosu: Kullanıcının günlükleri (id, user_id, date, mood, energy, content, ai_tags, ai_sentiment_score, ai_summary vb.).
- `tasks` tablosu: Görev yönetimi (id, user_id, title, description, status, source_journal_id).
- `chat_sessions` ve `chat_messages` tabloları (Geçmiş sohbetleri tutmak için).
5. **Kimlik Doğrulama (Authentication)**
- Supabase Auth kullanılarak Email/Şifre ile kayıt olma (Register) ve giriş yapma (Login) sayfalarının geliştirilmesi.
- Auth middleware ile yetkisiz kullanıcıların Dashboard'a erişiminin engellenmesi.
---
## Faz 2: Dashboard ve Temel Düzen (Layout)
**Amacı:** Kullanıcının giriş yaptığında karşılaşacağı ana navigasyon ve dashboard iskeletinin modern bir görünümle inşa edilmesi.
1. **Ana Layout ve Navigasyon**
- Masaüstü için sol veya üst menü bar (Sidebar/Navbar).
- Menü linkleri: Dashboard, Günlük, Görevler, Sohbet, Ayarlar.
- Responsive tasarım ile mobilde hamburger menü yapısı.
2. **Dashboard İskeleti**
- CSS Grid/Flexbox kullanarak kartların yerleşimi.
- Profil bilgisi ve Çıkış Yap butonu içeren bir üst bilgi (header) alanı.
3. **Boş Durum (Empty State) Yönetimi**
- Kullanıcının henüz günlüğü, görevi veya AI analizi yoksa gösterilecek yönlendirici ve estetik bileşenlerin tasarlanması (örn. "Henüz veri yok, ilk günlüğünü yaz").
---
## Faz 3: Günlük (Journal) ve Görev (Task) Modülleri
**Amacı:** Kullanıcının duygu, enerji ve günlük notlarını yazabilmesi, ayrıca manuel olarak görev ekleyip takip edebilmesi.
1. **Günlük (Journal) Modülü**
- **Oluşturma Ekranı:** Günlük yazma formu. Shadcn form bileşenleriyle validasyon sağlanması.
- **Mood & Enerji Seçimi:** Buton grupları veya slider kullanılarak duygu durumu ve enerji (1-5) seçimi.
- **Listeleme:** Kaydedilen günlüklerin tarih sırasına göre listelenmesi.
- **Detay Görünümü:** Seçilen günlüğün tam sayfa veya modal içinde okunması, silinmesi ve düzenlenmesi.
2. **Görev (Task) Modülü**
- **Görev Ekleme:** Basit başlık ve detay içeren görev ekleme formu.
- **Görev Durumu:** "Todo", "In Progress", "Completed" durumlarının listelenmesi ve checkbox veya sürükle bırak tarzında güncellenmesi.
- **Günlükle İlişkilendirme:** Görevlerin varsa kaynak günlük ID'sini göstermesi.
---
## Faz 4: Gemini API Entegrasyonu (AI Analizi)
**Amacı:** Kullanıcının girdiği günlük metninin Google Gemini API ile analiz edilip etiketler, duygu skoru, özet ve görev önerileri üretmesi.
1. **Gemini API Kurulumu**
- `@google/generative-ai` SDK'sının projeye dahil edilmesi.
- API Key'in `.env.local` içinde güvenli yapılandırılması.
2. **Analiz Endpoint'inin Geliştirilmesi**
- `POST /api/analyze-journal` gibi bir route oluşturularak, kullanıcının günlüğünün modele gönderilmesi.
- **Prompt Engineering:** Gemini'ye gönderilecek prompt'un, yanıtın stabil bir JSON formatında (tags, sentiment_score, summary, reflection, suggested_tasks) dönmesini garantileyecek şekilde tasarlanması.
3. **Veritabanı ve UI Entegrasyonu**
- Dönen AI analiz sonuçlarının Supabase'deki `journals` tablosuna (ai_tags, ai_summary vb.) Update edilmesi.
- Günlük detay ekranında AI analiz sonucunun görsel bir kart olarak sunulması.
4. **Görev Önerileri (Suggested Tasks) Akışı**
- AI'ın günlüğe bakarak çıkardığı görev önerilerinin kullanıcıya sunulması ("Bunu görev listene eklemek ister misin?").
- Onaylanan önerilerin `tasks` tablosuna kaydedilmesi.
---
## Faz 5: Dashboard Veri Görselleştirme
**Amacı:** Toplanan verilerin (mood, enerji, etiketler) grafikler yardımıyla analiz edilmesi ve özetlerin sunulması.
1. **Recharts Entegrasyonu ve Veri Hazırlama**
- Recharts kütüphanesinin eklenmesi.
- Supabase'den son 7 ve 30 güne ait verilerin çekilip grafiklere uygun formata dönüştürülmesi.
2. **Mood ve Enerji Trend Grafikleri**
- Günlere göre duygu skorları ve enerji (1-5) seviyesini gösteren çizgi veya bar grafikleri.
3. **Etiket Dağılımı Grafiği**
- AI tarafından en çok oluşturulan etiketlerin pasta (Pie) veya yatay çubuk (Bar) grafik ile gösterilmesi.
4. **Dashboard Özet Kartları**
- "Son Günlüklerin", "Aktif Görevlerin" ve "Haftalık AI İçgörüsünün" özet widget'lar halinde Dashboard ekranında sergilenmesi.
---
## Faz 6: AI Chat Modülü (Sohbet)
**Amacı:** Kullanıcının geçmiş günlüklerini bağlam olarak sunup, bir "Dijital Yansıma Asistanı" (Gemini) ile sohbet etmesi.
1. **Sohbet UI Tasarımı**
- Shadcn UI ile scrollable mesaj listesi, kullanıcı giriş alanı ve mesaj baloncuklarının tasarlanması.
2. **Bağlam (Context) Yönetimi**
- Kullanıcı bir soru sorduğunda, Supabase'den son X günlüğün veya içeriğe uygun günlüklerin çekilerek Gemini API'ye sistem mesajı/context olarak verilmesi.
3. **Sohbet Akışı ve Veri Kaydı**
- Gemini API üzerinden yanıtların tercihen "stream" (akış) yöntemiyle hızlıca UI'da gösterilmesi.
- Tamamlanan konuşmaların `chat_sessions` ve `chat_messages` tablolarına kaydedilerek, sayfa yenilendiğinde eski sohbetin görünmesinin sağlanması.
4. **Güvenlik ve Sınırlar**
- Prompt seviyesinde Gemini'ye "Tıbbi veya klinik tavsiye verme, sadece yansıtıcı ol" komutunun sıkıca verilmesi.