Açık kaynak, serverless atölye ve laboratuvar envanter yönetim sistemi.
MatrixLab, atölye ve laboratuvar ortamlarındaki fiziksel malzemeleri Dolap → Raf / Bölme → Ürün hiyerarşisiyle yöneten, DataMatrix (ISO/IEC 16022) 2D barcode etiketleme ve kamera scanner desteğine sahip modern bir envanter yönetim sistemidir.
Tamamen serverless mimariyle kurgulanmıştır; dedicated server kiralama, veritabanı bakımı veya altyapı maliyeti gerektirmez. Firebase Spark Plan (ücretsiz katman) ile sıfır maliyetle deploy edilebilir ve çalıştırılabilir.
| Hedef Kitle | Kullanım Senaryoları |
|---|---|
| 🎓 Üniversite Laboratuvarları | Elektronik komponent, test & ölçüm aletleri ve Ar-Ge malzemesi envanter yönetimi |
| 🔧 Makerspace & Atölyeler | El aletleri, sarf malzeme ve yedek parça envanter yönetimi |
| 🤖 Robotik & Mühendislik Kulüpleri | Takım malzeme zimmetleme, raf transferleri ve anlık stok kontrolü |
| 🏫 Teknoloji Atölyeleri | Ortak kullanılan ekipman ve malzeme kutularının düzeni |
Fiziksel depolama düzeninizi dijital ortama birebir aktarın:
Dolap (D-01)
└── Raf / Bölme (D-01-R1)
├── 📦 Arduino Uno R3 (×12)
└── 📦 Breadboard 830 Pin (×30)
- Her dolap, raf ve ürün için anında standart DataMatrix 2D barcode üretimi
- Termal veya standart yazıcılarla uyumlu, özel CSS baskı motoru (LabelHub)
- Barcode üzerinde tip rozeti, okunabilir kod ve malzeme detay gösterimi
- Web kamerası veya mobil cihaz kamerasıyla doğrudan barcode tarama
- Taranan DataMatrix kodunu çözümleyerek ilgili ürün, raf veya dolap sayfasına anında yönlendirme
- Mobil cihazlarda donanım seviyesinde kamera API entegrasyonu
| Rol | Yetkiler |
|---|---|
| Admin | Tüm CRUD yetkileri, kullanıcı oluşturma/düzenleme, rol atama ve sistem yönetimi |
| Staff | Malzeme, dolap ve raf yönetimi, stok giriş/çıkış, raf transferi ve zimmet işlemleri |
| User | Yalnızca kendi profil bilgilerini görüntüleme (onay bekleyen kayıtlar) |
- Stok artırma/azaltma ve raflar arası transfer işlemleri
runTransactionmekanizması ile atomic olarak yürütülür - Race condition ve negatif stok oluşumu veritabanı seviyesinde engellenir
- Malzemeleri kullanıcılara veya ekip üyelerine başlangıç/bitiş tarihiyle zimmetleme
- İletişim bilgisi, adet ve not kaydı tutma
- Zimmet durumunun ürün detayında ve listelerde anlık rozetlerle takibi
- Gerçekleştirilen tüm CRUD, stok değişimi, transfer ve oturum hareketleri anlık loglanır
- Firestore security rules ile log kayıtları immutable kılınmıştır, sonradan silinemez ve güncellenemez (
allow update, delete: if false)
| Katman | Teknoloji | Açıklama |
|---|---|---|
| Frontend Framework | Next.js 15 + React 19 | Hızlı, tip güvenli SPA mimarisi (Static Export) |
| Programlama Dili | TypeScript 6 | Strict mode, uçtan uca tip güvenliği |
| CSS & Stil | Tailwind CSS 4 | Modern CSS-first derleme (@tailwindcss/postcss) |
| İkon Seti | Lucide React | Minimalist ve tutarlı SVG arayüz ikonları |
| Veritabanı | Cloud Firestore | Gerçek zamanlı NoSQL veritabanı |
| Kimlik Doğrulama | Firebase Auth | E-posta ve şifre tabanlı oturum yönetimi |
| Barcode Motoru | bwip-js | ISO/IEC 16022 DataMatrix barkod üretimi |
| Scanner Motoru | html5-qrcode | Tarayıcı ve mobil kamera barkod okuyucu |
| Mobil Çatı | Capacitor 8 | iOS ve Android native paketleme altyapısı |
- Node.js (v18 veya üzeri)
- npm / yarn / pnpm
- Firebase Hesabı (Ücretsiz Spark planı yeterlidir)
git clone https://github.com/pxsty0/matrixlab.git
cd matrixlabnpm install- Firebase Console üzerinden yeni bir proje oluşturun.
- Build menüsü altından şu servisleri aktifleştirin:
- Authentication ➔ Sign-in method ➔ Email/Password
- Firestore Database ➔ Üretim (Production) modunda başlatın
- Project Settings ➔ General ➔ Your apps bölümünden bir Web Uygulaması ekleyin.
.env.example dosyasını kopyalayarak .env dosyanızı oluşturun:
cp .env.example .envFirebase konsolundan aldığınız anahtarları .env içerisine yerleştirin:
NEXT_PUBLIC_FIREBASE_API_KEY=AIzaSy...
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=1234567890
NEXT_PUBLIC_FIREBASE_APP_ID=1:1234567890:web:abcdeffirebase deploy --only firestore:rulesnpm run devTarayıcınızda http://localhost:3000 adresine gidin.
- Giriş ekranındaki Kayıt Ol sekmesinden ilk hesabınızı oluşturun.
- Firebase Console ➔ Firestore Database ➔
userskoleksiyonuna gidin. - Kendi kullanıcınızı bulun ve
rolealanını"user"yerine"admin"olarak güncelleyin. - Sayfayı yenilediğinizde tam yetkili admin paneline erişebilirsiniz.
MatrixLab, Capacitor 8 altyapısıyla tek kod tabanı üzerinden iOS ve Android native uygulaması olarak derlenebilir.
npx cap add ios
npx cap add androidnpm run cap:syncDataMatrix tarama modülü için cihaz kamera izni gereklidir:
<key>NSCameraUsageDescription</key>
<string>DataMatrix barkod taramak için kamera erişimi gereklidir.</string><uses-permission android:name="android.permission.CAMERA" /># iOS (Xcode)
npm run cap:open:ios
# Android (Android Studio)
npm run cap:open:androidMatrixLab açık kaynak bir projedir ve topluluk katkılarına açıktır!
- Projeyi Fork edin.
- Yeni bir özellik için Branch açın (
git checkout -b feature/yeni-ozellik). - Değişikliklerinizi Commit'leyin (
git commit -m 'feat: yeni özellik eklendi'). - Dalınızı uzak sunucuya Push edin (
git push origin feature/yeni-ozellik). - Bir Pull Request oluşturun.
Bu proje MIT Lisansı altında açık kaynak olarak sunulmaktadır. Mustafa KÖK tarafından geliştirilmiştir.