İş 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.
|
|
|
|
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
İş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
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
| 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ı |
| 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) |
# 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📦 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| Rol | Şifre | |
|---|---|---|
| 👑 Admin | admin@istakip.com |
password |
| 👨💼 Manager | manager@istakip.com |
password |
| 👤 Employee | employee@istakip.com |
password |
| 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 |
| 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 |
| 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 |
| Method | Endpoint | Açıklama |
|---|---|---|
GET |
/api/appointments |
Randevu listesi |
POST |
/api/appointments |
Yeni randevu |
PUT |
/api/appointments/{id}/status |
Durum güncelle |
# Backend testleri
cd backend
php artisan test
# Frontend testleri
cd frontend
npm test
# Test coverage raporu
npm test -- --coverage- ✅ 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ılarınız projeyi daha iyi hale getirir! Lütfen aşağıdaki adımları takip edin:
- Fork edin 🍴
- Feature branch oluşturun (
git checkout -b feature/YeniOzellik) - Değişikliklerinizi commit edin (
git commit -m 'feat: Yeni özellik eklendi') - Branch'e push edin (
git push origin feature/YeniOzellik) - Pull Request açın 🎉
<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 |
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın! ⭐
