Multi-tenant SaaS platform for employee, shift, attendance, and appointment management.
- ✅ Multi-tenant architecture (Stancl/Tenancy)
- ✅ JWT Authentication (tymon/jwt-auth)
- ✅ Role-Based Access Control (Spatie Permission)
- ✅ RESTful API with full CRUD operations
- ✅ QR Code generation (SimpleSoftware QR Code)
- ✅ Excel export (Maatwebsite Excel)
- ✅ Image handling (Intervention Image)
- ✅ Modern UI with TailwindCSS
- ✅ Protected routes with authentication
- ✅ Dashboard with real-time statistics
- ✅ Employee management (CRUD)
- ✅ Appointment management with status tracking
- ✅ Service management
- ✅ Customer management
- ✅ Attendance tracking
- ✅ Native iOS & Android support
- ✅ JWT Authentication
- ✅ Dashboard with statistics
- ✅ QR Code scanner for check-in/check-out
- ✅ Attendance history
- ✅ Shift schedule view
- PHP 8.3+
- Composer
- Node.js 18+
- npm or yarn
cd backend
# Install dependencies
composer install
# Setup environment
cp .env.example .env
php artisan key:generate
php artisan jwt:secret
# Run migrations
php artisan migrate:fresh
# Seed demo data
php artisan db:seed --class=DemoDataSeeder
# Start development server
php artisan servecd frontend
# Install dependencies
npm install
# Start development server
npm startcd mobile
# Install dependencies
npm install
# Start Expo development server
npm start
# Run on iOS
npm run ios
# Run on Android
npm run androidAdmin:
- Email:
admin@istakip.com - Password:
password
Employees:
mehmet@istakip.com/passwordayse@istakip.com/passwordali@istakip.com/passwordzeynep@istakip.com/password
POST /api/auth/register
POST /api/auth/login
GET /api/auth/me
POST /api/auth/logout
POST /api/auth/refresh
GET /api/dashboard/stats
GET /api/dashboard/today-appointments
GET /api/dashboard/today-attendances
GET /api/employees
POST /api/employees
GET /api/employees/{id}
PUT /api/employees/{id}
DELETE /api/employees/{id}
POST /api/attendances/check-in
POST /api/attendances/check-out
GET /api/attendances
GET /api/appointments
GET /api/appointments/today
GET /api/appointments/upcoming
POST /api/appointments
PATCH /api/appointments/{id}/status
GET /api/services
POST /api/services
PUT /api/services/{id}
DELETE /api/services/{id}
GET /api/customers
POST /api/customers
PUT /api/customers/{id}
DELETE /api/customers/{id}
- tenants - Multi-tenant management
- users - User authentication
- employees - Employee information
- departments - Department organization
- locations - Physical locations
- shifts - Work shifts
- shift_templates - Reusable shift patterns
- attendances - Check-in/check-out records
- appointments - Customer appointments
- services - Service offerings
- customers - Customer information
Backend:
- Laravel 12
- PHP 8.3
- SQLite (development)
- JWT Authentication
- Stancl Tenancy
- Spatie Permission
Frontend:
- React 18.3
- TypeScript 5.3
- TailwindCSS
- React Router v7
- Axios
- date-fns
Mobile:
- React Native 0.76
- Expo 52
- TypeScript
- Expo Camera (QR scanning)
- AsyncStorage
# Start all services
docker-compose up -d
# Stop services
docker-compose downServices:
- nginx - Web server (port 80)
- php - PHP-FPM 8.3
- mysql - Database (port 3306)
- redis - Cache & sessions (port 6379)
For check-in:
{
"action": "check_in",
"employee_id": 1,
"shift_id": 1
}For check-out:
{
"action": "check_out",
"employee_id": 1
}Attendance Status:
present- Presentabsent- Absentlate- Latehalf_day- Half daysick_leave- Sick leavevacation- Vacation
Appointment Status:
waiting- Waitingconfirmed- Confirmedarrived- Arrivedin_progress- In Progresscompleted- Completedcancelled- Cancelledno_show- No Show
This project is proprietary software.
Developed by [Your Team Name]