IQVizyon Kurumsal Hafıza Sistemi
- JavaScript 98.9%
- CSS 1%
- HTML 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .github/workflows | ||
| backend | ||
| frontend | ||
| .gitignore | ||
| README.md | ||
IQVizyon Kurumsal Hafıza Sistemi
Mimari
iqvizyon/
├── backend/ ← Node.js + Express REST API
│ ├── server.js
│ ├── db.js
│ ├── schema.sql
│ ├── .env.example
│ ├── routes/
│ │ ├── auth.js
│ │ ├── folders.js
│ │ ├── files.js
│ │ └── permissions.js
│ └── middleware/
│ ├── auth.js
│ └── permissions.js
└── frontend/ ← React + Vite SPA
├── index.html
├── vite.config.js
└── src/
├── App.jsx
├── index.css
├── pages/
│ ├── LoginPage.jsx
│ ├── ExplorerPage.jsx
│ └── AdminPage.jsx
├── components/
│ ├── Sidebar.jsx
│ ├── Topbar.jsx
│ ├── FileItems.jsx
│ ├── UploadModal.jsx
│ ├── PermissionsModal.jsx
│ └── UI.jsx
├── store/index.js
└── utils/
├── api.js
└── helpers.js
1. Veritabanı Kurulumu (XAMPP/phpMyAdmin)
phpMyAdmin → SQL sekmesine gidip schema.sql içeriğini çalıştırın.
Varsayılan admin hesabı:
- E-posta:
admin@iqvizyon.com - Şifre:
Admin123!
⚠️ İlk girişten sonra şifreyi değiştirin.
2. Backend Kurulumu
cd backend
# Bağımlılıkları yükle
npm install
# .env dosyasını oluştur
cp .env.example .env
# .env dosyasını düzenle (DB şifresi, JWT secret)
# Geliştirme sunucusu
npm run dev
# Üretim
npm start
.env Ayarları
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=iqvizyon
DB_USER=root
DB_PASS= # XAMPP varsayılan: boş
JWT_SECRET=cok_uzun_rastgele_bir_gizli_anahtar_buraya
JWT_EXPIRES_IN=7d
PORT=4000
CLIENT_URL=http://localhost:5173 # veya production URL
3. Frontend Kurulumu
cd frontend
# Bağımlılıkları yükle
npm install
# Geliştirme sunucusu (backend localhost:4000 de çalışmalı)
npm run dev
# Production build
npm run build
# dist/ klasörü oluşur → nginx/apache'ye yerleştirin
4. Bulut Deployment (Üretim)
Seçenek A: Railway (Önerilen, Ücretsiz Başlangıç)
- railway.app → GitHub repo bağla
- Backend servisi:
backend/klasörü,npm start - MySQL servisi ekle (Railway MySQL plugin)
- Environment variables ekle (DB_, JWT_, CLIENT_URL)
- Frontend için: Vercel veya Netlify'a
frontend/klasörünü deploy et vite.config.jsiçindeki proxy yerinefrontend/.envoluştur:VITE_API_URL=https://your-backend.railway.app/apisrc/utils/api.jsiçindebaseURLsatırını güncelle:baseURL: import.meta.env.VITE_API_URL || '/api'
Seçenek B: VPS (DigitalOcean, Hetzner, vb.)
# Backend için PM2 kullan
npm install -g pm2
cd backend
pm2 start server.js --name iqvizyon-api
pm2 startup
pm2 save
# Nginx config (örnek)
server {
listen 80;
server_name yourdomain.com;
# Frontend
location / {
root /var/www/iqvizyon/frontend/dist;
try_files $uri $uri/ /index.html;
}
# API proxy
location /api {
proxy_pass http://localhost:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Seçenek C: Render.com (Ücretsiz Tier)
- render.com → New Web Service → GitHub repo
- Root Directory:
backend - Build Command:
npm install - Start Command:
npm start - Environment değişkenlerini ekle
5. Özellikler
| Özellik | Durum |
|---|---|
| JWT ile güvenli giriş | ✅ |
| OneDrive tarzı klasör gezgini | ✅ |
| Izgara / Liste görünümü | ✅ |
| Sürükle-bırak dosya yükleme | ✅ |
| Dosya indirme | ✅ |
| Dosya / Klasör yeniden adlandırma | ✅ |
| Dosya / Klasör silme | ✅ |
| Tri-state yetki sistemi (kalıtım/izin/engel) | ✅ |
| Breadcrumb navigasyon | ✅ |
| Dosya arama | ✅ |
| Kullanıcı yönetimi (admin) | ✅ |
| Dark/Light mode desteği | ✅ |
| Responsive tasarım | ✅ |
6. Geliştirme Notları
Yeni klasör tipi eklemek
backend/routes/files.js içindeki ALLOWED_EXT set'ine ekleyin.
PHP'den veri taşıma
Mevcut MySQL veritabanı şeması ile uyumludur. Sadece schema.sql çalıştırın; mevcut tablolarınız INSERT IGNORE ile korunur.
Dosya depolama
Yüklenen dosyalar backend/uploads/ altında orijinal klasör yapısıyla saklanır.
Production'da bu klasörü S3/R2/MinIO'ya taşımak için multer-s3 paketi kullanılabilir.