Appearance
LoomTracker
Üretim takibi, tezgâh yönetimi, desen (BMP) arşivleme, gerçek zamanlı sohbet, bildirim, denetim (audit log), iki aşamalı doğrulama (2FA) ve otomatik e-posta raporlama özelliklerine sahip entegre bir web uygulaması.
📑 İçindekiler
- Özellikler
- Mimari Genel Bakış
- Ortam Değişkenleri
- Dizin Yapısı
- Çalıştırma
- Modüller ve Akışlar
- API Uçları
- Socket.io Olayları
- Güvenlik & Loglama
- Raporlama
- Lisans Doğrulama
- Lisans
🚀 Özellikler
Kullanıcı & Rol Yönetimi
- Roller:
admin,yonetim,ustabasi,planlamaci,makinist,operator - JWT tabanlı oturum yönetimi
- Şifre sıfırlama, hesap kilitleme
- Profil fotoğrafı yükleme
- Roller:
İki Aşamalı Doğrulama (2FA)
- Google Authenticator uyumlu
- QR kod üretimi
- Yedek kod oluşturma
Tezgâh Yönetimi
- CRUD işlemleri
- Bakım kayıtları (tarih, açıklama, yapan kişi)
- Durum:
aktif,pasif,bakımda
Üretim Kaydı
- Fotoğraf yükleme
- Vardiya kaydı
- Üretim hesaplama (m², duruş dk)
- Onay / red işlemleri
Desen Yönetimi
- BMP yükleme
- PNG önizleme üretme
- Tekrarlayan desen engelleme
Gerçek Zamanlı Sohbet
- Kanal/oda sistemi
- Direkt mesaj (DM)
- Mention desteği (@kullanici)
- Mesaj silme / sadece benden sil
- Okundu / teslim bilgisi
- Rate limit (mesaj hız limiti)
Bildirim Sistemi
- Mesaj, mention, sistem bildirimleri
- Öncelik seviyeleri (
low,normal,high) - Okundu işaretleme
Audit Log (Denetim Kayıtları)
- Tüm işlemler DB ve dosyaya kaydedilir
- IP, User-Agent bilgisi saklanır
Aylık Excel Raporu
- Toplam üretim, duruş süreleri, en çok üretim yapanlar
- Excel dosyası oluşturma
- E-posta ile otomatik gönderim
Lisans Kontrolü
- Harici API ile doğrulama
- Lisans geçersizse uygulama kapanır
🏗 Mimari Genel Bakış
- Backend: Node.js, Express, Mongoose, Socket.io
- Veritabanı: MongoDB
- Kimlik Doğrulama: JWT (httpOnly cookie)
- Dosya Yönetimi: Multer (uploads klasörü)
- E-posta: Nodemailer (SMTP)
- Raporlama: ExcelJS
- Görüntü İşleme: Jimp (BMP → PNG)
- Loglama: DB (AuditLog) + dosya (
/logs/audit-trail.log)
🔑 Ortam Değişkenleri
.env dosyası örneği:
ini
APP_URL=http://localhost:3000
PORT=3000
NODE_ENV=development
JWT_SECRET=super-secret-key
MONGO_URI=mongodb://localhost:27017/loomtracker
SMTP_HOST=smtp.mailserver.com
SMTP_PORT=587
SMTP_SECURE=false
EMAIL_USER=no-reply@yourdomain.com
EMAIL_PASS=yourpassword📂 Dizin Yapısı
src/
├── controllers/
├── middleware/
├── models/
├── routes/
├── services/
├── sockets/
└── utils/
uploads/
logs/- controllers/ → İş mantığı
- middleware/ → Kimlik doğrulama, lisans kontrolü
- models/ → Mongoose şemaları
- routes/ → API uçları
- services/ → Lisans, raporlama, bildirim
- sockets/ → Sohbet sistemi
- utils/ → Yardımcı araçlar (mail, logger, 2FA)
▶️ Çalıştırma
- Geliştirme:
npm start - Prod:
NODE_ENV=productionile HTTPS proxy önerilir
🔄 Modüller ve Akışlar
1. Kullanıcı Yönetimi
- JWT oturum açma
- 2FA doğrulama
- Profil güncelleme
- İşten çıkarma / işe alma
2. Tezgâh Yönetimi
- CRUD
- Bakım kayıtları
3. Üretim Kayıtları
- Fotoğraf yüklemeli
- Formüller ile m² hesabı
- Onay sistemi
4. Desen Yönetimi
- BMP → PNG dönüştürme
- Regex ile dosya adı kontrolü
5. Sohbet Sistemi
- Kanal türleri: public, role, private, direct
- Mention desteği
- DM gizleme / açma
6. Bildirimler
- Gerçek zamanlı socket yayını
- Okundu işaretleme
7. Raporlama
- Aylık rapor
- Excel export
- E-posta ile gönderim
8. Loglama
- DB + dosya loglama
- IP, User-Agent kaydı
🌐 API Uçları
Kullanıcılar (/api/users)
POST /login→ GirişPOST /→ Kullanıcı oluşturGET /→ Kullanıcıları listelePUT /:id→ GüncelleDELETE /:id→ SilPUT /:id/fire→ İşten çıkarPUT /:id/rehire→ Tekrar işe alPOST /forgot-password→ Şifre sıfırlama isteğiPOST /reset-password/:token→ Şifre sıfırla
Tezgâhlar (/api/looms)
- CRUD işlemleri
- Bakım kayıtları ekleme
Üretim (/api/production)
GET /→ Listele / filtrelePOST /→ Yeni kayıt oluşturPUT /approve→ Onay
Desenler (/api/designs)
POST /→ Desen yükle (BMP)GET /→ ListeleDELETE /:id→ Sil
Bildirimler (/api/notifications)
GET /→ ListelePOST /mark-read→ Tümünü okundu işaretle
📡 Socket.io Olayları
join room/leave roomchat messagetyping/stop typingdelete message/delete message for mecreate dm/close dm/reopen dmcreate channel/edit channel/delete channel
🔒 Güvenlik & Loglama
- Hatalı giriş limiti (5 deneme → 10 dk kilitlenme)
- 2FA zorunluluğu opsiyonel
- Tüm işlemler DB + dosya logunda saklanır
- Hassas bilgiler maskeleme (
password,token,secretvs.)
📊 Raporlama
- Aylık rapor otomatik oluşturulur
- Excel dosyası kaydedilir
- Yönetim ekibine e-posta ile gönderilir
- İçerik: toplam üretim, duruş süresi, en çok üretim yapanlar
📝 Lisans Doğrulama
- Başlangıçta harici API’ye doğrulama isteği atılır
- Lisans geçersizse uygulama kapanır
📜 Lisans
Bu proje Pizza Development tarafından geliştirilmiştir. Tüm hakları saklıdır.