Market'e dön
Üretkenlik

Nexus Komuta Merkezi

Açık Kaynak · Ücretsiz · Numex AI üretimi

Proje yönetim ve operasyon paneli: projeler, sürükle-bırak görev panosu, ekip iş yükü, geciken işler ve aktivite günlüğü; ilerleme görevlerden otomatik hesaplanır. Node/Express + JSON veri; canlı demoda veriler 30 dakikada bir sıfırlanır.

Ekran Görüntüleri

Nexus Komuta Merkezi ekran görüntüsü 1Nexus Komuta Merkezi ekran görüntüsü 2

Doküman (README)

Nexus Command Center

Proje yönetimi ve operasyon paneli. Gerçekten çalışır — mockup değil: veri modeli, durum yönetimi, kalıcılık, filtreleme, sürükle-bırak ve aktivite günlüğü dahil.

Çalıştırma

npm install
npm start

Terminalde çıkan adresi aç (örn. http://localhost:4173). Port doluysa sunucu otomatik olarak bir sonraki boş porta geçer.

Demo veriyi başlangıç haline döndürmek için:

npm run reset

Mimari

┌─────────────────────────────────────────────────────────────┐
│  Tarayıcı  (public/)                                        │
│   index.html                                                │
│   ├── js/api.js         fetch sarmalayıcı (tek hata biçimi) │
│   ├── js/state.js       istemci durumu + filtreler (LS)     │
│   ├── js/ui.js          DOM/kaçış/toast/modal/doğrulama UI  │
│   ├── js/chart.js       Canvas grafikler (harici lib YOK)   │
│   ├── js/dnd.js         HTML5 sürükle-bırak + klavye        │
│   ├── js/views/*.js     5 görünüm modülü                    │
│   └── js/app.js         denetleyici: yönlendirme + eylemler │
└──────────────────────────┬──────────────────────────────────┘
                           │  /api/*  (JSON)
┌──────────────────────────▼──────────────────────────────────┐
│  server/index.js   Express — statik + API, dinamik port     │
│   ├── src/routes/dashboard.js  /api/summary  (türetilmiş)   │
│   ├── src/routes/projects.js   /api/projects CRUD           │
│   ├── src/routes/tasks.js      /api/tasks    CRUD + move    │
│   ├── src/routes/team.js       /api/team     CRUD           │
│   ├── src/routes/activity.js   /api/activity günlük         │
│   ├── src/lib/validate.js      sunucu tarafı doğrulama      │
│   └── src/store/db.js          JSON depo (atomik yazma)     │
└──────────────────────────┬──────────────────────────────────┘
                           ▼
                    data/nexus.json

Tasarım kararları

Tek doğruluk kaynağı sunucudur. İstemci sayı uydurmaz; metrikler /api/summary'den gelir. Sayfa yenilenince her şey yeniden türetilir.

İlerleme yüzdesi türetilir, saklanmaz. Bir projenin ilerlemesi done görev sayısı / toplam görev sayısıdır (db.projectProgress). Görev taşıdığında proje ilerlemesi kendiliğinden değişir — çift veri tutarlılığı sorunu oluşmaz.

Aktivite kaydı tek noktadan düşer. Tüm mutasyonlar db.mutate() üzerinden geçer; fonksiyon hem değişikliği uygular hem günlük satırını üretir. Böylece "kaydı unutulan olay" olmaz.

Doğrulama iki katmanda. İstemci doğrulaması UX içindir (anında geri bildirim), gerçek kapı src/lib/validate.js'tedir. API'ye doğrudan kötü veri gönderilemez.

Yüzdeler null'a dayanıklı. Görevi olmayan proje %0 döner, sıfıra bölme hatası yok.

Atomik yazma. Veri önce nexus.json.tmp'ye yazılıp rename ile yerine konur; süreç yarıda kesilse bile bozuk JSON kalmaz. Bozuk dosya tespit edilirse yedeklenir ve temiz tohum veriyle başlanır.

Filtreler iki taraflı tutarlı. Arama/filtre sunucuya sorgu parametresi olarak gider; kanban ve liste görünümü aynı sonucu gösterir (iki ayrı filtre mantığı yok).

Sürükle-bırak iyimser çalışır. Kart anında taşınır, sunucu reddederse eski yerine geri döner. Klavye ile de taşınabilir: kartı seç, ← / →.

API

| Yöntem | Yol | Açıklama | |---|---|---| | GET | /api/health | Servis durumu + veri sayıları | | GET | /api/summary | Dashboard metrikleri, proje ilerlemeleri | | GET | /api/projects | ?status=&q= | | POST | /api/projects | Yeni proje | | PUT | /api/projects/:id | Güncelle | | DELETE | /api/projects/:id | Sil (görevler "Projesiz" kalır) | | GET | /api/tasks | ?q=&priority=&projectId=&status=&assignee=&sort= | | POST | /api/tasks | Yeni görev | | PUT | /api/tasks/:id | Güncelle | | PATCH | /api/tasks/:id/status | Kanban taşıma | | DELETE | /api/tasks/:id | Sil | | GET | /api/team | Kişi başı iş yükü ile | | POST | /api/team | Üye ekle | | DELETE | /api/team/:id | Üye çıkar (açık görevi varsa engellenir) | | GET | /api/activity | ?type=&limit= |

Tüm yanıtlar { ok: true, data } veya { ok: false, error } biçimindedir.

Klavye kısayolları

  • Ctrl/Cmd + N — yeni görev
  • Esc — açık modalı kapat
  • Kanban kartı seçili iken ← / → — kolon değiştir

Veri modeli

Project { id, name, description, status: planlandi|devam|tamamlandi,
          color, owner, deadline, createdAt }

Task    { id, title, description, priority: dusuk|orta|yuksek|kritik,
          assignee, due, status: todo|in_progress|done,
          projectId|null, createdAt, completedAt }

Member  { id, name, role, email, color }

Activity{ id, type: gorev|proje|ekip|sistem|hata,
          actor, action, detail, at }

Sınırlamalar

  • Kimlik doğrulama yok — tek kullanıcılı, yerel/ekip içi kullanım için tasarlandı.
  • Veri deposu tek JSON dosyası; çok yazarlı eşzamanlı kullanım için veritabanına taşınmalı (src/store/db.js arayüzü bunu kolaylaştırır).
  • Aktivite günlüğü son 400 kaydı tutar (sınırsız büyümeyi engellemek için).