Skip to content

aptus0/Web-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

İş Takip

Laravel React React Native TypeScript PHP

Docker MySQL Redis TailwindCSS

Stars Forks Issues Pull Requests License Last Commit

Views


📖 Proje Hakkında

İş Takip, şirketlerin çalışan yönetimi, vardiya planlaması, devam takibi ve randevu sistemini tek bir platformda birleştiren kapsamlı bir Multi-Tenant SaaS çözümüdür. Modern web teknolojileri ve mobil uygulama desteği ile her yerden erişilebilir bir iş gücü yönetim sistemi sunar.


✨ Özellikler

🖥️ Backend (Laravel 12)

  • Multi-Tenant Mimari - Stancl/Tenancy
  • JWT Kimlik Doğrulama - tymon/jwt-auth
  • Rol Tabanlı Yetkilendirme - Spatie Permission
  • RESTful API - Tam CRUD işlemleri
  • QR Kod Üretimi - SimpleSoftware QR Code
  • Excel Dışa Aktarma - Maatwebsite Excel
  • Görüntü İşleme - Intervention Image

🌐 Frontend (React 19 + TypeScript)

  • Modern UI - TailwindCSS
  • Korumalı Rotalar - Authentication
  • Canlı Dashboard - Gerçek zamanlı istatistikler
  • Çalışan Yönetimi - Tam CRUD
  • Randevu Sistemi - Durum takibi
  • Hizmet Yönetimi
  • Müşteri Yönetimi
  • Devam Takibi

📱 Mobil (React Native + Expo)

  • Native iOS & Android desteği
  • JWT Authentication
  • Dashboard - İstatistikler
  • QR Kod Tarayıcı - Giriş/Çıkış
  • Devam Geçmişi
  • Vardiya Takvimi

🐳 DevOps & Altyapı

  • Docker - Konteyner desteği
  • Nginx - Web sunucusu
  • MySQL 8.0 - Veritabanı
  • Redis - Cache & Queue
  • PHPUnit - Test altyapısı

🏗️ Mimari

graph TB
    subgraph Client ["🖥️ İstemci Katmanı"]
        WEB[React Web App]
        MOBILE[React Native App]
    end
    
    subgraph API ["🔌 API Katmanı"]
        NGINX[Nginx Reverse Proxy]
        JWT[JWT Auth Middleware]
        LARAVEL[Laravel 12 API]
    end
    
    subgraph Data ["💾 Veri Katmanı"]
        MYSQL[(MySQL 8.0)]
        REDIS[(Redis Cache)]
    end
    
    WEB --> NGINX
    MOBILE --> NGINX
    NGINX --> JWT
    JWT --> LARAVEL
    LARAVEL --> MYSQL
    LARAVEL --> REDIS
Loading

📁 Proje Yapısı

İşTakip/
├── 📂 backend/                 # Laravel 12 API
│   ├── 📂 app/
│   │   ├── 📂 Http/Controllers/  # API Controllers
│   │   ├── 📂 Models/            # Eloquent Models
│   │   └── 📂 Providers/         # Service Providers
│   ├── 📂 config/              # Konfigürasyon dosyaları
│   ├── 📂 database/
│   │   ├── 📂 migrations/      # Veritabanı migrasyonları
│   │   └── 📂 seeders/         # Demo veriler
│   ├── 📂 routes/              # API rotaları
│   └── 📂 tests/               # PHPUnit testleri
│
├── 📂 frontend/                # React 19 Web App
│   ├── 📂 public/              # Statik dosyalar
│   └── 📂 src/
│       ├── 📂 components/      # React bileşenleri
│       ├── 📂 context/         # Context providers
│       ├── 📂 pages/           # Sayfa bileşenleri
│       └── 📂 services/        # API servisleri
│
├── 📂 mobile/                  # React Native App
│   └── 📂 src/
│       ├── 📂 components/      # Native bileşenler
│       ├── 📂 navigation/      # Navigasyon yapısı
│       ├── 📂 screens/         # Ekran bileşenleri
│       └── 📂 services/        # API servisleri
│
├── 📂 docker/                  # Docker konfigürasyonu
│   ├── 📂 nginx/               # Nginx config
│   └── 📂 php/                 # PHP Dockerfile
│
├── 📂 docs/                    # Dokümantasyon
│   ├── 📄 API.md               # API referansı
│   ├── 📄 DATABASE.md          # Veritabanı şeması
│   └── 📄 SETUP.md             # Kurulum kılavuzu
│
└── 📄 docker-compose.yml       # Docker Compose

📊 Veritabanı Modelleri

erDiagram
    COMPANY ||--o{ USER : has
    COMPANY ||--o{ DEPARTMENT : contains
    COMPANY ||--o{ LOCATION : owns
    COMPANY ||--o{ SERVICE : provides
    
    DEPARTMENT ||--o{ EMPLOYEE : employs
    EMPLOYEE ||--o{ ATTENDANCE : records
    EMPLOYEE ||--o{ SHIFT : assigned
    
    CUSTOMER ||--o{ APPOINTMENT : books
    SERVICE ||--o{ APPOINTMENT : includes
    EMPLOYEE ||--o{ APPOINTMENT : serves
    
    USER ||--o{ NOTIFICATION : receives
Loading
Model Açıklama
🏢 Company Şirket/Kiracı bilgileri
👤 User Kullanıcı hesapları
👨‍💼 Employee Çalışan profilleri
🏬 Department Departman yapısı
📍 Location Şube/Lokasyon bilgileri
Shift Vardiya tanımları
📋 ShiftTemplate Vardiya şablonları
Attendance Devam kayıtları
📅 Appointment Randevu kayıtları
🛎️ Service Hizmet tanımları
👥 Customer Müşteri bilgileri
🔔 Notification Bildirimler
🏠 Tenant Multi-tenant yapısı

🚀 Kurulum

📋 Gereksinimler

Gereksinim Minimum Versiyon
PHP 8.2+
Composer 2.0+
Node.js 18+
npm / yarn Latest
MySQL 8.0+
Redis 6.0+
Docker 20.0+ (opsiyonel)

🐳 Docker ile Hızlı Kurulum (Önerilen)

# Repository'yi klonlayın
git clone https://github.com/aptus0/Web-Application.git
cd Web-Application

# Docker konteynerlerini başlatın
docker-compose up -d

# Backend kurulumu
docker-compose exec php composer install
docker-compose exec php php artisan key:generate
docker-compose exec php php artisan jwt:secret
docker-compose exec php php artisan migrate:fresh --seed

# Frontend build
cd frontend && npm install && npm run build

💻 Manuel Kurulum

📦 Backend Kurulumu
cd backend

# Bağımlılıkları yükleyin
composer install

# Environment dosyasını oluşturun
cp .env.example .env

# Uygulama anahtarlarını oluşturun
php artisan key:generate
php artisan jwt:secret

# Veritabanını hazırlayın
php artisan migrate:fresh

# Demo verileri yükleyin
php artisan db:seed --class=DemoDataSeeder

# Geliştirme sunucusunu başlatın
php artisan serve
🌐 Frontend Kurulumu
cd frontend

# Bağımlılıkları yükleyin
npm install

# Geliştirme sunucusunu başlatın
npm start

# Production build
npm run build
📱 Mobile Kurulumu
cd mobile

# Bağımlılıkları yükleyin
npm install

# Expo geliştirme sunucusunu başlatın
npm start

# iOS'ta çalıştırın
npm run ios

# Android'de çalıştırın
npm run android

🔑 Demo Hesapları

Rol Email Şifre
👑 Admin admin@istakip.com password
👨‍💼 Manager manager@istakip.com password
👤 Employee employee@istakip.com password

🔌 API Endpoints

🔐 Kimlik Doğrulama

Method Endpoint Açıklama
POST /api/auth/login Kullanıcı girişi
POST /api/auth/register Yeni kayıt
POST /api/auth/logout Çıkış yap
GET /api/auth/me Kullanıcı bilgisi
POST /api/auth/refresh Token yenile

👨‍💼 Çalışan Yönetimi

Method Endpoint Açıklama
GET /api/employees Tüm çalışanlar
POST /api/employees Yeni çalışan
GET /api/employees/{id} Çalışan detayı
PUT /api/employees/{id} Çalışan güncelle
DELETE /api/employees/{id} Çalışan sil

⏰ Vardiya & Devam

Method Endpoint Açıklama
GET /api/shifts Vardiya listesi
POST /api/attendance/check-in Giriş yap
POST /api/attendance/check-out Çıkış yap
GET /api/attendance/history Devam geçmişi

📅 Randevu Sistemi

Method Endpoint Açıklama
GET /api/appointments Randevu listesi
POST /api/appointments Yeni randevu
PUT /api/appointments/{id}/status Durum güncelle

🧪 Test

# Backend testleri
cd backend
php artisan test

# Frontend testleri
cd frontend
npm test

# Test coverage raporu
npm test -- --coverage

📈 Proje İstatistikleri

Repo Card


🛣️ Yol Haritası

  • ✅ Multi-tenant mimari
  • ✅ JWT kimlik doğrulama
  • ✅ Çalışan yönetimi
  • ✅ Vardiya planlaması
  • ✅ Devam takibi
  • ✅ Randevu sistemi
  • ✅ QR kod desteği
  • ✅ Mobil uygulama
  • 🔄 Push bildirimleri
  • 🔄 Raporlama modülü
  • 🔄 AI destekli vardiya optimizasyonu
  • 🔄 Çoklu dil desteği

🤝 Katkıda Bulunma

Katkılarınız projeyi daha iyi hale getirir! Lütfen aşağıdaki adımları takip edin:

  1. Fork edin 🍴
  2. Feature branch oluşturun (git checkout -b feature/YeniOzellik)
  3. Değişikliklerinizi commit edin (git commit -m 'feat: Yeni özellik eklendi')
  4. Branch'e push edin (git push origin feature/YeniOzellik)
  5. Pull Request açın 🎉

📝 Commit Mesajı Formatı

<type>(<scope>): <description>

[optional body]

[optional footer]
Type Açıklama
feat Yeni özellik
fix Bug düzeltme
docs Dokümantasyon
style Kod formatı
refactor Refactoring
test Test ekleme
chore Genel bakım

📄 Lisans

Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.


👨‍💻 Geliştirici

GitHub


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın! ⭐