feat: update roadmap to define product vision, MVP principles, and development phases for Freelancer OS

This commit is contained in:
Poyraz Avsever
2026-06-01 11:26:31 +03:00
parent 6f0a879fd6
commit 083997e6bc
+550 -80
View File
@@ -1,105 +1,575 @@
# MindSpace Proje Yol Haritası (Roadmap) # Freelancer OS 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. Bu dokuman, uygulamanin temel urun yonunu ve MVP kapsamını tanımlar.
Uygulamanin cikis noktasi: Freelancer'larin gundelik hayatlarini, musterilerini, projelerini, side project'lerini, finansal durumlarini ve kisisel performanslarini tek bir self-host edilebilir dashboard uzerinden yonetebilmesi.
MVP, tek kullanici odakli olacak. Ekip, ajans, CRM otomasyonlari, gelismis AI modulleri ve mobil uygulama MVP sonrasi fazlara birakilir.
--- ---
## Faz 1: Proje Kurulumu ve Altyapı ## Urun Vizyonu
**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** Freelancer icin tek merkezli bir operasyon paneli:
- 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`). - Bugun ne yapacagim?
2. **Shadcn UI ve Stil Entegrasyonu** - Hangi musteride hangi is var?
- Shadcn UI CLI ile başlatılması. - Hangi proje gecikiyor?
- Temel bileşenlerin (Button, Card, Input, Label, Dialog, Form, Toast vb.) eklenmesi. - Side project'lerimde ilerleme var mi?
- `next-themes` kullanılarak Dark/Light mod geçişinin ayarlanması (Varsayılan olarak Dark Mode ağırlıklı tasarım). - Bu ay ne kadar kazandim, ne kadar harcadim?
3. **Supabase Proje Kurulumu** - Enerjim ve ruh halim is performansimi nasil etkiliyor?
- Supabase projesinin oluşturulması ve API key'lerin `.env.local` dosyasına eklenmesi. - Tum bu verilerden hangi raporu okuyabilirim?
- `@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)** Uygulama, klasik gorev takip aracindan daha genis; freelancer'in is, finans ve kisisel performans alanlarini birlestiren bir "Freelancer OS" olarak konumlanir.
- `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) ## MVP Ilkeleri
**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** 1. **Tek kullanici**
- Masaüstü için sol veya üst menü bar (Sidebar/Navbar). - MVP'de ekip, rol, yetki, assignee, ortak calisma yok.
- Menü linkleri: Dashboard, Günlük, Görevler, Sohbet, Ayarlar. - Tum veriler tek kullanicinin kendi calisma alani icindir.
- Responsive tasarım ile mobilde hamburger menü yapısı.
2. **Dashboard İskeleti** 2. **Self-host ve open-source uyumlu**
- CSS Grid/Flexbox kullanarak kartların yerleşimi. - Kurulum dokumani net olmali.
- Profil bilgisi ve Çıkış Yap butonu içeren bir üst bilgi (header) alanı. - Veritabani migration'lari repo icinde olmali.
3. **Boş Durum (Empty State) Yönetimi** - Harici servisler opsiyonel olmali.
- 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").
3. **Gercek veri, sade akis**
- Mock dashboard yerine kullanicinin girdigi gercek verilerden rapor uretilecek.
- Her modulde minimum CRUD ve minimum rapor yeterli.
4. **AI destekleyici, cekirdek degil**
- MVP'de AI sadece genel chatbot olarak konumlanir.
- Chatbot, kayitli gorev/proje/musteri/finans/gunluk verileri hakkinda soru cevap yapabilir.
- Modul icindeki otomatik oneriler, scoring, akilli otomasyonlar MVP sonrasi.
5. **Ekranda rapor yeterli**
- MVP'de PDF/PNG export sart degil.
- Dashboard ve modul rapor ekranlari yeterli kabul edilir.
--- ---
## Faz 3: Günlük (Journal) ve Görev (Task) Modülleri ## MVP Kapsami
**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ü** ### 1. Dashboard
- **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. **Amac:** Freelancer'in gunluk ve haftalik durumunu tek bakista gostermek.
- **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. MVP icerigi:
2. **Görev (Task) Modülü**
- **Görev Ekleme:** Basit başlık ve detay içeren görev ekleme formu. - Bugunku gorevler
- **Görev Durumu:** "Todo", "In Progress", "Completed" durumlarının listelenmesi ve checkbox veya sürükle bırak tarzında güncellenmesi. - Yaklasan takvim etkinlikleri
- **Günlükle İlişkilendirme:** Görevlerin varsa kaynak günlük ID'sini göstermesi. - Aktif musterilerden acik isler
- Aktif projeler ve side project'ler
- Bu ay gelir/gider ozeti
- Haftalik gorev tamamlama grafigi
- Mood/energy trend grafigi
- Geciken isler ve yaklasan deadline'lar
Raporlar:
- Haftalik is yuklemesi
- Proje ilerleme ozeti
- Aylik finans ozeti
- Kisisel enerji/mood ozeti
--- ---
## Faz 4: Gemini API Entegrasyonu (AI Analizi) ### 2. Musteriler
**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** **Amac:** Freelancer'in calistigi musterileri ve o musterilerle iliskili isleri takip etmesi.
- `@google/generative-ai` SDK'sının projeye dahil edilmesi.
- API Key'in `.env.local` içinde güvenli yapılandırılması. MVP alanlari:
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. - Musteri adi
- **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ı. - Firma/marka adi
3. **Veritabanı ve UI Entegrasyonu** - E-posta
- Dönen AI analiz sonuçlarının Supabase'deki `journals` tablosuna (ai_tags, ai_summary vb.) Update edilmesi. - Telefon veya iletisim notu
- Günlük detay ekranında AI analiz sonucunun görsel bir kart olarak sunulması. - Durum: active, paused, archived
4. **Görev Önerileri (Suggested Tasks) Akışı** - Notlar
- 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. MVP aksiyonlari:
- Musteri ekleme
- Musteri duzenleme
- Musteri arsivleme
- Musteriye bagli projeleri/gorevleri gorme
Raporlar:
- Aktif musteri sayisi
- Musteri bazli proje sayisi
- Musteri bazli gelir ozeti
MVP disi:
- Gelismis CRM pipeline
- E-posta entegrasyonu
- Otomatik takip hatirlatmalari
- Musteri sentiment analizi
--- ---
## Faz 5: Dashboard Veri Görselleştirme ### 3. Projeler ve Side Project'ler
**Amacı:** Toplanan verilerin (mood, enerji, etiketler) grafikler yardımıyla analiz edilmesi ve özetlerin sunulması.
1. **Recharts Entegrasyonu ve Veri Hazırlama** **Amac:** Musteri projeleri ve kisisel side project'leri ayni mantikta ama ayri turlerle takip etmek.
- Recharts kütüphanesinin eklenmesi.
- Supabase'den son 7 ve 30 güne ait verilerin çekilip grafiklere uygun formata dönüştürülmesi. MVP alanlari:
2. **Mood ve Enerji Trend Grafikleri**
- Günlere göre duygu skorları ve enerji (1-5) seviyesini gösteren çizgi veya bar grafikleri. - Proje adi
3. **Etiket Dağılımı Grafiği** - Tur: client_project, side_project
- AI tarafından en çok oluşturulan etiketlerin pasta (Pie) veya yatay çubuk (Bar) grafik ile gösterilmesi. - Bagli musteri, sadece client_project icin opsiyonel/zorunlu
4. **Dashboard Özet Kartları** - Aciklama
- "Son Günlüklerin", "Aktif Görevlerin" ve "Haftalık AI İçgörüsünün" özet widget'lar halinde Dashboard ekranında sergilenmesi. - Durum: planning, active, paused, completed, cancelled
- Baslangic tarihi
- Deadline
- Butce veya beklenen gelir
- Ilerleme yuzdesi, gorevlerden otomatik hesaplanabilir
MVP aksiyonlari:
- Proje ekleme
- Proje duzenleme
- Projeye gorev baglama
- Proje durumunu guncelleme
Raporlar:
- Aktif proje sayisi
- Geciken proje sayisi
- Proje bazli gorev tamamlama orani
- Musteri projeleri / side project dagilimi
MVP disi:
- Ekip uyeleri
- Dosya yonetimi
- Kanban sprint sistemi
- Gelismis risk analizi
--- ---
## Faz 6: AI Chat Modülü (Sohbet) ### 4. Gorevler
**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ı** **Amac:** Freelancer'in gunluk operasyonunu yonetmek.
- Shadcn UI ile scrollable mesaj listesi, kullanıcı giriş alanı ve mesaj baloncuklarının tasarlanması.
2. **Bağlam (Context) Yönetimi** MVP alanlari:
- 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ı** - Baslik
- Gemini API üzerinden yanıtların tercihen "stream" (akış) yöntemiyle hızlıca UI'da gösterilmesi. - Aciklama
- Tamamlanan konuşmaların `chat_sessions` ve `chat_messages` tablolarına kaydedilerek, sayfa yenilendiğinde eski sohbetin görünmesinin sağlanması. - Durum: todo, in_progress, done
4. **Güvenlik ve Sınırlar** - Oncelik: low, medium, high, urgent
- Prompt seviyesinde Gemini'ye "Tıbbi veya klinik tavsiye verme, sadece yansıtıcı ol" komutunun sıkıca verilmesi. - Son tarih
- Bagli proje
- Bagli musteri, proje uzerinden de turetilebilir
- Tahmini sure
- Gerceklesen sure, basit manuel giris olarak
MVP aksiyonlari:
- Gorev ekleme
- Gorev duzenleme
- Gorev tamamlama
- Liste ve basit kanban gorunumu
- Geciken gorevleri filtreleme
Raporlar:
- Haftalik tamamlanan gorev sayisi
- Duruma gore gorev dagilimi
- Oncelige gore gorev dagilimi
- Proje bazli acik gorevler
MVP disi:
- Team assignee
- Otomatik AI onceliklendirme
- Gelismis time tracking timer
---
### 5. Takvim
**Amac:** Deadline, toplanti, odak blogu ve kisisel etkinlikleri planlamak.
MVP alanlari:
- Baslik
- Baslangic tarihi/saati
- Bitis tarihi/saati
- Tur: meeting, focus, deadline, personal, finance
- Bagli musteri/proje/gorev
- Not
MVP aksiyonlari:
- Etkinlik ekleme
- Etkinlik duzenleme
- Aylik gorunum
- Yaklasan etkinlik listesi
Raporlar:
- Haftalik etkinlik dagilimi
- Odak bloklari / toplantilar orani
- Yaklasan deadline listesi
MVP disi:
- Google Calendar entegrasyonu
- Iki yonlu sync
- AI schedule optimization
---
### 6. Finans
**Amac:** Freelancer'in temel gelir, gider ve nakit akis durumunu takip etmesi.
MVP alanlari:
- Islem tipi: income, expense
- Tutar
- Para birimi
- Tarih
- Kategori
- Bagli musteri
- Bagli proje
- Aciklama
- Odeme durumu: planned, pending, paid, cancelled
MVP aksiyonlari:
- Gelir ekleme
- Gider ekleme
- Islem duzenleme
- Islem silme/arsivleme
- Aylik filtreleme
Raporlar:
- Aylik gelir
- Aylik gider
- Net kazanc
- Musteri bazli gelir
- Proje bazli gelir
- Kategori bazli gider
MVP disi:
- Fatura olusturma
- Vergi hesaplama
- Banka entegrasyonu
- Subscription tracking
- Coklu sirket/hesap
---
### 7. Gunluk Mood / Energy
**Amac:** Freelancer'in kisisel kapasitesini ve is performansiyla iliskisini takip etmek.
MVP alanlari:
- Tarih
- Mood skoru
- Energy skoru
- Kisa not
- Calisma memnuniyeti skoru, opsiyonel
MVP aksiyonlari:
- Gunluk kayit ekleme
- Kayit duzenleme
- Haftalik/aylik trend izleme
Raporlar:
- Mood trend
- Energy trend
- Energy ile tamamlanan gorev iliskisi
- Dusuk enerji gunlerinde geciken gorevler
MVP disi:
- AI duygu analizi
- Otomatik etiketleme
- Klinik/terapötik yorumlar
---
### 8. AI Chatbot
**Amac:** Kullanici, kendi kayitli verileri hakkinda genel sorular sorabilsin.
MVP davranisi:
- Son 7/30 gun gorevleri, projeleri, takvim etkinlikleri, finans kayitlari ve mood/energy verileri context olarak hazırlanır.
- Kullanici basit sorular sorar:
- "Bu hafta en cok hangi projeye zaman harcamisim?"
- "Hangi musterilerden odeme bekliyorum?"
- "Bu ay finansal durumum nasil?"
- "Geciken islerim neler?"
- "Enerjim dusukken hangi isler aksamis?"
Teknik yaklasim:
- MVP'de tam vector RAG sart degil.
- Ilk asama: veritabanindan ilgili ozet context olusturup modele gondermek.
- Provider opsiyonlari: Ollama local, OpenAI, Gemini, Groq.
MVP disi:
- Embedding tabanli gelismis RAG
- Modul ici AI butonlari
- Otomatik gorev/proje onerisinde bulunma
- Otomatik finans yorumu
- Otonom aksiyon alma
---
## MVP Disi Birakilacaklar
Asagidaki ozellikler ilk surume alinmayacak:
- Ekip ve rol yonetimi
- Gelismis CRM pipeline
- Teklif ve sozlesme sistemi
- Fatura olusturma
- Banka veya odeme entegrasyonlari
- Dokuman/drive yonetimi
- PDF/PNG export
- Mobil uygulama
- Google Calendar sync
- Modul bazli AI otomasyonlari
- Gelismis RAG/vector search
- Bildirim sistemi
---
## Teknik Mimari Karari
### Onerilen MVP Stack
- **Frontend:** Next.js App Router, React, TypeScript
- **UI:** Tailwind CSS, shadcn/Radix, Recharts, Framer Motion
- **Database:** PostgreSQL
- **Backend/Auth:** Supabase veya self-host edilebilir Supabase alternatifi
- **Local AI opsiyonu:** Ollama
- **Cloud AI opsiyonlari:** OpenAI, Gemini, Groq
### Neden Server-first?
Mobil uygulama sonraki hedef oldugu icin verinin senkronize olabilecegi merkezi bir backend gerekir. Bu nedenle MVP'de ana kaynak PostgreSQL/Supabase olmali.
Offline/local-first destek daha sonra eklenebilir:
- IndexedDB cache
- Offline draft kayitlari
- Sync queue
- Conflict resolution
MVP'de bu alan mimaride dusunulur, fakat ana risk haline getirilmez.
---
## MVP Veri Modeli
Minimum tablolar:
- `profiles`
- `clients`
- `projects`
- `tasks`
- `calendar_events`
- `finance_transactions`
- `daily_logs`
- `chat_sessions`
- `chat_messages`
- `app_settings`
Temel iliskiler:
- `clients` -> `projects`
- `projects` -> `tasks`
- `clients` -> `finance_transactions`
- `projects` -> `finance_transactions`
- `calendar_events` -> `clients`, `projects`, `tasks` opsiyonel
- `daily_logs` -> kullanici ve tarih
- `chat_messages` -> `chat_sessions`
---
## Faz Plani
### Faz 0: Stabilizasyon
Amac: Mevcut prototipi build edilebilir ve gelistirilebilir hale getirmek.
Isler:
- Build hatalarini gidermek.
- `Cognis`, `MindSpace` ve yeni urun ismi kararini netlestirmek.
- Encoding bozukluklarini temizlemek.
- Mock veri kullanan ekranlari isaretlemek.
- `user_settings` yerine `app_settings` semasini netlestirmek.
- MVP disi ekranlari sidebar'dan gecici olarak kaldirmak veya "coming later" durumuna almak.
Kabul kriteri:
- `npm run build` basarili.
- Ana layout, auth ve dashboard sorunsuz acilir.
- MVP kapsamindaki moduller net gorunur.
---
### Faz 1: Veritabani ve Auth
Amac: Freelancer OS icin gercek veri modelini kurmak.
Isler:
- `clients`, `projects`, `tasks`, `calendar_events`, `finance_transactions`, `daily_logs`, `app_settings` tablolarini olusturmak.
- RLS politikalari eklemek.
- Supabase migration dosyalarini repo icine almak.
- Seed/demo data script'i hazirlamak.
- Tek kullanici akisina uygun auth'u sade tutmak.
Kabul kriteri:
- Yeni tablolar Supabase'de calisir.
- Kullanici sadece kendi verisini gorur.
- Demo data ile dashboard beslenebilir.
---
### Faz 2: Core CRUD Modulleri
Amac: Freelancer'in temel operasyon verilerini girebilmesi.
Isler:
- Musteriler CRUD
- Projeler/side project CRUD
- Gorevler CRUD
- Takvim etkinlikleri CRUD
- Finans islemleri CRUD
- Daily mood/energy CRUD
Kabul kriteri:
- Mock data yerine gercek veriler kullanilir.
- Her modulde liste, ekleme, duzenleme ve temel silme/arsivleme vardir.
- Bos durumlar kullaniciyi dogru aksiyona yonlendirir.
---
### Faz 3: Dashboard ve Raporlama
Amac: Girilen verileri anlamli grafiklere ve rapor kartlarina donusturmek.
Isler:
- Dashboard KPI kartlari
- Gorev tamamlama grafikleri
- Proje ilerleme grafikleri
- Musteri/proje bazli gelir ozeti
- Gelir/gider/net kazanc grafigi
- Mood/energy trendleri
- Yaklasan deadline ve odeme listeleri
Kabul kriteri:
- Dashboard tamamen gercek veriden beslenir.
- Her MVP modulu en az bir anlamli rapor/grafik sunar.
- Tarih filtresi: bugun, bu hafta, bu ay.
---
### Faz 4: Basit AI Chatbot
Amac: Kullanici kendi freelancer verileri hakkinda soru sorabilsin.
Isler:
- Chat UI'i stabil hale getirmek.
- Provider secimi: Ollama, OpenAI, Gemini, Groq.
- Son 7/30 gun verilerinden context builder yazmak.
- Chat mesajlarini kaydetmek.
- AI cevaplarini "danisma/asistan" sinirinda tutmak.
Kabul kriteri:
- Kullanici kayitli verileri hakkinda soru sorabilir.
- Chatbot en az gorev, proje, musteri, finans ve daily log ozetlerini context olarak kullanir.
- AI calismasa bile uygulamanin temel modulleri calismaya devam eder.
---
### Faz 5: Self-host Hazirligi
Amac: Projeyi acik kaynak ve self-host edilebilir hale getirmek.
Isler:
- `.env.example` hazirlamak.
- Kurulum dokumani yazmak.
- Migration calistirma adimlarini belgelemek.
- Docker Compose opsiyonunu degerlendirmek.
- Demo kullanici/demo data akisi eklemek.
Kabul kriteri:
- Yeni bir gelistirici dokumana bakarak projeyi ayaga kaldirabilir.
- Harici AI servisleri opsiyonel kalir.
- Local Ollama ile temel AI deneyimi mumkundur.
---
## MVP Sonrasi Fazlar
### Faz 6: Freelancer Business OS
- Teklifler
- Sozlesmeler
- Fatura olusturma
- Odeme takip otomasyonlari
- Vergi/kar tahmini
- Abonelik ve masraf yonetimi
### Faz 7: Gelismis CRM
- Lead pipeline
- Musteri aktiviteleri
- Follow-up hatirlatmalari
- Musteri degeri ve risk raporlari
### Faz 8: Gelismis AI
- Embedding tabanli RAG
- Modul ici AI onerileri
- Akilli onceliklendirme
- Finansal yorumlama
- Takvim optimizasyonu
- Proje risk tahmini
### Faz 9: Mobil ve Sync
- Mobil uygulama
- Offline cache
- Push notification
- Takvim ve gorev sync
- Local-first deneyim iyilestirmeleri
---
## MVP Basari Kriterleri
MVP basarili sayilirsa:
- Freelancer gunluk islerini, musterilerini, projelerini, side project'lerini ve temel finansini tek yerde takip edebilir.
- Dashboard gercek verilerle anlamli haftalik/aylik raporlar sunar.
- Kullanici uygulamayi self-host edebilir.
- AI chatbot opsiyonel ama kullanisli bir danisma katmani olarak calisir.
- Uygulama tek kullanici icin guvenilir ve build edilebilir durumdadir.