IQVizyon Kurumsal Hafıza Sistemi
  • JavaScript 98.9%
  • CSS 1%
  • HTML 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
muhammedfatihercakir a027161cba
All checks were successful
Forge CI / Backend (lint + audit) (push) Successful in 13s
Forge CI / Frontend (lint + audit) (push) Successful in 20s
Merge pull request 'test/forge-runner-check' (#1) from test/forge-runner-check into main
Reviewed-on: #1
2026-09-30 18:32:17 +03:00
.forgejo/workflows ci: report existing audit findings without blocking migration 2026-09-30 18:25:45 +03:00
.github/workflows fix: canli preview dosyalarini deployment sirasinda koru 2026-07-28 00:21:31 +03:00
backend fix: letterhead temel tablo migrationini ekle 2026-07-28 00:38:55 +03:00
frontend fix: CI audit ve bagimlilik guvenlik sorunlarini duzelt 2026-07-27 00:11:02 +03:00
.gitignore fix audit vulnerabilities 2026-05-13 15:09:22 +03:00
README.md IQV KHS ilk kod yüklemesi 2026-05-12 16:43:30 +03:00

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ıç)

  1. railway.app → GitHub repo bağla
  2. Backend servisi: backend/ klasörü, npm start
  3. MySQL servisi ekle (Railway MySQL plugin)
  4. Environment variables ekle (DB_, JWT_, CLIENT_URL)
  5. Frontend için: Vercel veya Netlify'a frontend/ klasörünü deploy et
  6. vite.config.js içindeki proxy yerine frontend/.env oluştur:
    VITE_API_URL=https://your-backend.railway.app/api
    
  7. src/utils/api.js içinde baseURL satı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)

  1. render.com → New Web Service → GitHub repo
  2. Root Directory: backend
  3. Build Command: npm install
  4. Start Command: npm start
  5. 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.