mirror of
https://github.com/yusufipk/dead-man-switch-2.0.git
synced 2026-09-11 09:26:07 +00:00
feat: initialize Next.js 16.1 project with Prisma 7, NextAuth and shadcn/ui
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# Active Context - Dead Man Switch 2.0
|
||||
|
||||
## Şu Anki Durum
|
||||
Proje planlaması tamamlandı, teknoloji stack'i belirlendi.
|
||||
|
||||
## Aktif Kararlar
|
||||
- Next.js 16 + App Router kullanılacak
|
||||
- Client-side encryption zorunlu değil, opsiyonel
|
||||
- İlk fazda temel MVP hedefleniyor
|
||||
|
||||
## Sonraki Adım
|
||||
Faz 1: Proje kurulumu ve Auth sistemi
|
||||
|
||||
## Notlar
|
||||
- Şifreleme UX'i kritik - kullanıcı şifreyi kaybederse veri kurtarılamaz
|
||||
- Check-in reminder email'leri düşünülmeli
|
||||
@@ -0,0 +1,27 @@
|
||||
# Product Context - Dead Man Switch 2.0
|
||||
|
||||
## Problem
|
||||
- İnsanlar beklenmedik durumlarda sevdiklerine mesaj/bilgi bırakmak istiyor
|
||||
- Mevcut çözümler ya güvensiz ya da kullanımı zor
|
||||
- Sunucu tarafı şifreleme güven sorunu yaratıyor
|
||||
|
||||
## Çözüm
|
||||
- Basit check-in mekanizması
|
||||
- Client-side encryption ile zero-knowledge
|
||||
- Kullanıcı dostu arayüz
|
||||
|
||||
## Kullanıcı Akışı
|
||||
1. Kayıt ol / Giriş yap
|
||||
2. Yeni mesaj oluştur (metin + dosya)
|
||||
3. Alıcı e-postaları ekle
|
||||
4. Check-in süresi belirle (örn: 7 gün)
|
||||
5. Opsiyonel: Şifre ile encrypt et
|
||||
6. Periyodik check-in yap
|
||||
7. Check-in kaçırılırsa → alıcılara link gönderilir
|
||||
8. Alıcı linke tıklar, şifre girerse decrypt eder
|
||||
|
||||
## UX Hedefleri
|
||||
- Minimal, sade arayüz
|
||||
- Mobil responsive
|
||||
- Hızlı onboarding
|
||||
- Güvenlik hissi veren tasarım
|
||||
@@ -0,0 +1,61 @@
|
||||
# Progress - Dead Man Switch 2.0
|
||||
|
||||
## Fazlar
|
||||
|
||||
### Faz 1: Proje Kurulumu & Auth ✅
|
||||
- [x] Next.js proje kurulumu (Next.js 15, current latest)
|
||||
- [x] Tailwind + shadcn/ui setup
|
||||
- [x] PostgreSQL + Prisma setup
|
||||
- [x] NextAuth.js entegrasyonu
|
||||
- [x] User tablosu ve auth akışı
|
||||
- [x] Temel layout ve routing
|
||||
|
||||
### Faz 2: Mesaj CRUD 🔲
|
||||
- [ ] Message, Recipient, Attachment şemaları
|
||||
- [ ] Mesaj oluşturma formu
|
||||
- [ ] Mesaj listeleme/detay sayfaları
|
||||
- [ ] Mesaj düzenleme/silme
|
||||
|
||||
### Faz 3: Dosya Yükleme (R2) 🔲
|
||||
- [ ] Cloudflare R2 entegrasyonu
|
||||
- [ ] Dosya upload/download API
|
||||
- [ ] Dosya listeleme UI
|
||||
|
||||
### Faz 4: Client-side Encryption 🔲
|
||||
- [ ] Web Crypto API wrapper
|
||||
- [ ] Encrypt/decrypt utilities
|
||||
- [ ] Şifreli mesaj oluşturma akışı
|
||||
- [ ] Decrypt sayfası (alıcı için)
|
||||
|
||||
### Faz 5: Check-in & Cron 🔲
|
||||
- [ ] Check-in API endpoint
|
||||
- [ ] node-cron scheduler setup
|
||||
- [ ] Deadline kontrolü
|
||||
- [ ] Status güncellemeleri
|
||||
|
||||
### Faz 6: Email Gönderimi 🔲
|
||||
- [ ] Nodemailer setup
|
||||
- [ ] Email templates
|
||||
- [ ] Deadline triggered email
|
||||
- [ ] Check-in reminder emails
|
||||
|
||||
### Faz 7: Admin Panel 🔲
|
||||
- [ ] Admin role ve guard
|
||||
- [ ] Kullanıcı yönetimi
|
||||
- [ ] Mesaj istatistikleri
|
||||
- [ ] System logs
|
||||
|
||||
### Faz 8: Polish & Deploy 🔲
|
||||
- [ ] Error handling
|
||||
- [ ] Loading states
|
||||
- [ ] Responsive tasarım
|
||||
- [ ] Production deployment
|
||||
- [ ] Monitoring setup
|
||||
|
||||
## Tamamlanan
|
||||
- ✅ Teknoloji stack seçimi
|
||||
- ✅ Memory bank oluşturma
|
||||
- ✅ Faz planlaması
|
||||
|
||||
## Bilinen Sorunlar
|
||||
(henüz yok)
|
||||
@@ -0,0 +1,22 @@
|
||||
# Project Brief - Dead Man Switch 2.0
|
||||
|
||||
## Proje Özeti
|
||||
Kullanıcıların belirli süre check-in yapmaması durumunda önceden belirlenen alıcılara şifreli mesaj ve dosya gönderen web uygulaması.
|
||||
|
||||
## Temel Özellikler
|
||||
1. **Check-in Sistemi** - Kullanıcı belirlediği süre boyunca periyodik check-in yapar
|
||||
2. **Mesaj & Dosya** - Mesaj yazma ve dosya ekleme
|
||||
3. **Otomatik Gönderim** - Check-in süresi geçerse e-posta ile bağlantı gönderimi
|
||||
4. **Client-side Şifreleme** - Opsiyonel, sunucu verileri göremez
|
||||
5. **Kullanıcı Yönetimi** - Kayıt, giriş, admin paneli
|
||||
6. **Çoklu Mesaj** - Kullanıcı birden fazla mesaj ayarlayabilir
|
||||
|
||||
## Hedef Kullanıcılar
|
||||
- Dijital miras bırakmak isteyenler
|
||||
- Acil durum mesajı hazırlamak isteyenler
|
||||
- Gizli bilgileri güvenli şekilde aktarmak isteyenler
|
||||
|
||||
## Kapsam Dışı (v1)
|
||||
- Mobil uygulama
|
||||
- Çoklu dil desteği
|
||||
- Ödeme sistemi
|
||||
@@ -0,0 +1,42 @@
|
||||
# System Patterns - Dead Man Switch 2.0
|
||||
|
||||
## Mimari
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ Next.js App │
|
||||
├─────────────────┬───────────────────────────────┤
|
||||
│ Frontend │ API Routes │
|
||||
│ (React + RSC) │ (Auth, CRUD, Cron) │
|
||||
└────────┬────────┴───────────────┬───────────────┘
|
||||
│ │
|
||||
│ Web Crypto API │ Prisma
|
||||
│ (encrypt/decrypt) │
|
||||
│ ▼
|
||||
│ ┌─────────────────┐
|
||||
│ │ PostgreSQL │
|
||||
│ └─────────────────┘
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────────────┐ ┌─────────────────┐
|
||||
│ Cloudflare R2 │ │ Nodemailer │
|
||||
│ (encrypted │ │ (SMTP) │
|
||||
│ files) │ └─────────────────┘
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
## Veritabanı Şeması (Draft)
|
||||
- **User**: id, email, password, role, createdAt
|
||||
- **Message**: id, userId, title, encryptedContent, isEncrypted, checkInInterval, lastCheckIn, nextDeadline, status
|
||||
- **Recipient**: id, messageId, email, name
|
||||
- **Attachment**: id, messageId, r2Key, encryptedName, size
|
||||
|
||||
## Güvenlik Patterns
|
||||
- Şifreleme client-side (AES-256-GCM)
|
||||
- Şifre hash'i sunucuya gönderilmez
|
||||
- Derived key PBKDF2 ile üretilir
|
||||
- Salt her mesaj için unique
|
||||
|
||||
## API Patterns
|
||||
- REST endpoints under `/api/*`
|
||||
- NextAuth session-based auth
|
||||
- Zod validation
|
||||
@@ -0,0 +1,25 @@
|
||||
# Tech Context - Dead Man Switch 2.0
|
||||
|
||||
## Tech Stack
|
||||
| Katman | Teknoloji |
|
||||
|--------|-----------|
|
||||
| Frontend | Next.js 16 (App Router) |
|
||||
| Backend | Next.js API Routes |
|
||||
| Database | PostgreSQL + Prisma |
|
||||
| Auth | NextAuth.js (Auth.js) |
|
||||
| Email | Nodemailer + SMTP |
|
||||
| File Storage | Cloudflare R2 |
|
||||
| Encryption | Web Crypto API (client-side) |
|
||||
| Cron/Scheduler | node-cron |
|
||||
| Styling | Tailwind CSS + shadcn/ui |
|
||||
|
||||
## Geliştirme Ortamı
|
||||
- Node.js 20+
|
||||
- pnpm (paket yöneticisi)
|
||||
- Docker (PostgreSQL için)
|
||||
- TypeScript
|
||||
|
||||
## Önemli Kararlar
|
||||
- **Client-side encryption**: Şifreleme tamamen tarayıcıda, sunucu sadece encrypted blob saklar
|
||||
- **R2**: S3-compatible, ucuz, edge-friendly
|
||||
- **node-cron**: Basit, in-process scheduler (production'da ayrı worker düşünülebilir)
|
||||
Reference in New Issue
Block a user