first commit: Complete phishing test management panel with Node.js backend and React frontend
This commit is contained in:
191
README.md
Normal file
191
README.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# Oltalama Test Yönetim Paneli
|
||||
|
||||
Güvenlik farkındalık eğitimleri için basit ve etkili phishing test yönetim sistemi.
|
||||
|
||||
## ✨ Özellikler
|
||||
|
||||
- 🏢 **Şirket Bazlı Yönetim** - Her şirket için ayrı tracking
|
||||
- 📧 **Gmail Entegrasyonu** - App Password ile kolay mail gönderimi
|
||||
- 💬 **Telegram Bildirimleri** - Gerçek zamanlı tıklama bildirimleri
|
||||
- 📊 **Detaylı İstatistikler** - IP, konum, cihaz bilgileri
|
||||
- 💾 **SQLite** - Tek dosya, kolay yedekleme
|
||||
- 🎨 **Modern UI** - React ile responsive admin paneli
|
||||
|
||||
## 🚀 Hızlı Başlangıç
|
||||
|
||||
### Backend ✅ TAMAMLANDI
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
npm install # ✅ Yapıldı
|
||||
npm run db:migrate # ✅ Yapıldı
|
||||
npm run db:seed # ✅ Yapıldı
|
||||
npm run dev # ✅ Çalışıyor (background)
|
||||
```
|
||||
|
||||
**API:** http://localhost:3000
|
||||
**Default Admin:** admin / admin123
|
||||
|
||||
### Frontend ✅ TAMAMLANDI
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install # ✅ Yapıldı
|
||||
npm run dev # ✅ Çalışıyor (background)
|
||||
```
|
||||
|
||||
**UI:** http://localhost:5173
|
||||
**Default Admin:** admin / admin123
|
||||
|
||||
## 📂 Proje Yapısı
|
||||
|
||||
```
|
||||
oltalama/
|
||||
├── backend/ ✅ TAMAMLANDI (100%)
|
||||
│ ├── src/
|
||||
│ │ ├── controllers/ ✅ 7 dosya (auth, company, token, vb.)
|
||||
│ │ ├── models/ ✅ 6 model + ilişkiler
|
||||
│ │ ├── routes/ ✅ 7 route dosyası
|
||||
│ │ ├── services/ ✅ Mail, Telegram, Token
|
||||
│ │ ├── utils/ ✅ GeoIP, User-Agent, Token Generator
|
||||
│ │ └── app.js ✅
|
||||
│ └── database/ ✅ oltalama.db (3 şirket, 2 şablon)
|
||||
├── frontend/ ✅ TAMAMLANDI (100%)
|
||||
│ ├── src/
|
||||
│ │ ├── services/ ✅ 5 servis (auth, company, token, stats, template)
|
||||
│ │ ├── context/ ✅ Auth context
|
||||
│ │ ├── pages/ ✅ 5 sayfa (Login, Dashboard, Companies, Tokens, Settings)
|
||||
│ │ └── components/ ✅ Layout + Navigation
|
||||
└── devpan.md ✅ Detaylı plan
|
||||
```
|
||||
|
||||
## ✅ Backend Tamamlandı (Faz 1-7)
|
||||
|
||||
### 1️⃣ Authentication ✅
|
||||
- [x] Session-based auth
|
||||
- [x] Login/Logout endpoints
|
||||
- [x] bcrypt password hashing
|
||||
- [x] Auth middleware
|
||||
|
||||
### 2️⃣ Company Management ✅
|
||||
- [x] CRUD operations
|
||||
- [x] Company stats (auto-update)
|
||||
- [x] Company tokens listing
|
||||
- [x] Validators & routes
|
||||
|
||||
### 3️⃣ Token Management ✅
|
||||
- [x] Unique token generation (crypto)
|
||||
- [x] Create with/without mail
|
||||
- [x] Company stats auto-update
|
||||
- [x] Click history
|
||||
|
||||
### 4️⃣ Tracking Endpoint ✅
|
||||
- [x] `/t/:token` public endpoint
|
||||
- [x] IP address capture
|
||||
- [x] GeoIP location (geoip-lite)
|
||||
- [x] User-Agent parsing
|
||||
- [x] Landing page redirect
|
||||
|
||||
### 5️⃣ Telegram & Mail ✅
|
||||
- [x] Telegram real-time notifications
|
||||
- [x] Gmail + Nodemailer integration
|
||||
- [x] Handlebars template rendering
|
||||
- [x] Test buttons in settings
|
||||
|
||||
### 6️⃣ Templates & Settings ✅
|
||||
- [x] Mail templates (2 seeded)
|
||||
- [x] Template preview
|
||||
- [x] Settings CRUD
|
||||
- [x] Gmail/Telegram config
|
||||
|
||||
### 7️⃣ Stats & Analytics ✅
|
||||
- [x] Dashboard stats
|
||||
- [x] Recent clicks
|
||||
- [x] Company-based stats
|
||||
- [x] Click logs with full details
|
||||
|
||||
## 📡 API Endpoints (35+)
|
||||
|
||||
**Backend API çalışıyor:** http://localhost:3000
|
||||
|
||||
```
|
||||
✅ /api/auth/* - 4 endpoints
|
||||
✅ /api/companies/* - 7 endpoints
|
||||
✅ /api/tokens/* - 8 endpoints
|
||||
✅ /api/templates/* - 3 endpoints
|
||||
✅ /api/settings/* - 5 endpoints
|
||||
✅ /api/stats/* - 3 endpoints
|
||||
✅ /t/:token - Public tracking
|
||||
✅ /health - Health check
|
||||
```
|
||||
|
||||
## 🗄️ Database (SQLite)
|
||||
|
||||
**Lokasyon:** `backend/database/oltalama.db`
|
||||
|
||||
**6 Tablo - Tamamen İlişkili:**
|
||||
- ✅ companies (3 örnek: Türk Telekom, İş Bankası, PTT)
|
||||
- ✅ tracking_tokens (company_id FK)
|
||||
- ✅ click_logs (IP, GeoIP, User-Agent)
|
||||
- ✅ mail_templates (2 şablon: Banka, E-Devlet)
|
||||
- ✅ settings (Gmail, Telegram)
|
||||
- ✅ admin_user (admin/admin123)
|
||||
|
||||
## 🧪 Backend Test
|
||||
|
||||
```bash
|
||||
# Health check
|
||||
curl http://localhost:3000/health
|
||||
|
||||
# Login
|
||||
curl -X POST http://localhost:3000/api/auth/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"username":"admin","password":"admin123"}'
|
||||
|
||||
# Get companies
|
||||
curl http://localhost:3000/api/companies
|
||||
|
||||
# Get dashboard stats
|
||||
curl http://localhost:3000/api/stats/dashboard
|
||||
```
|
||||
|
||||
## 📊 Durum
|
||||
|
||||
**Backend:** ✅ 100% Tamamlandı (45+ dosya)
|
||||
**Frontend:** ✅ 100% Tamamlandı (15+ dosya)
|
||||
**Toplam İlerleme:** ✅ 100%
|
||||
|
||||
### ✅ Tamamlanan Frontend Sayfaları
|
||||
|
||||
**Core Pages:**
|
||||
- ✅ Login (Session-based auth)
|
||||
- ✅ Dashboard (Stats, recent clicks)
|
||||
- ✅ Companies (CRUD, grid view)
|
||||
- ✅ Tokens (Create & send, table view)
|
||||
- ✅ Settings (Gmail, Telegram config)
|
||||
|
||||
**Components:**
|
||||
- ✅ Layout (Sidebar, header, mobile responsive)
|
||||
- ✅ Auth Context (Global auth state)
|
||||
- ✅ API Services (5 services)
|
||||
|
||||
### 🚀 Proje Hazır!
|
||||
|
||||
Sistem kullanıma hazır. Gmail ve Telegram ayarlarını yaparak phishing testlerinizi başlatabilirsiniz.
|
||||
|
||||
## 📚 Dokümantasyon
|
||||
|
||||
- Backend API: `backend/README.md`
|
||||
- Proje Planı: `devpan.md`
|
||||
- Gmail Setup: devpan.md içinde
|
||||
- Telegram Setup: devpan.md içinde
|
||||
|
||||
## ⚠️ Güvenlik Uyarısı
|
||||
|
||||
Bu sistem yalnızca yasal ve etik phishing testleri için tasarlanmıştır. Kötü niyetli kullanım yasaktır.
|
||||
|
||||
---
|
||||
|
||||
**Versiyon:** 1.0.0
|
||||
**Durum:** ✅ Production Ready
|
||||
**Son Güncelleme:** Backend ve Frontend tamamlandı - Sistem kullanıma hazır!
|
||||
Reference in New Issue
Block a user