AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

제목

Logika Absensi Barcode

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • Laravel/PHP 개발자
  • 중간 수준의 웹 애플리케이션 개발자
  • 출퇴근 관리 시스템 구축에 관심 있는 개발자

핵심 요약

  • jadwal 테이블 생성
  • libur, masuk_pagi_start, pulang_siang_end 등 시간 정보를 포함한 마이그레이션 구현
  • Jadwal 모델 정의
  • $fillable 배열로 필드 지정, HasFactory trait 사용
  • scanBarcode 컨트롤러 로직
  • Carbon::now()로 현재 시간 가져오기, jadwal 데이터로 출퇴근 여부 판단

섹션별 세부 요약

1. 마이그레이션 파일 생성

  • php artisan make:migration create_jadwal_table 명령어로 jadwal 테이블 생성
  • up() 메서드에서 libur 플래그와 시간 범위(masuk_pagi_start, pulang_siang_end 등) 필드 정의
  • php artisan migrate 명령어로 데이터베이스에 테이블 생성

2. Jadwal 모델 정의

  • php artisan make:model Jadwal 명령어로 모델 생성
  • protected $fillable 배열로 테이블 필드 지정
  • HasFactory trait 사용하여 테스트 데이터 생성 가능

3. `scanBarcode` 컨트롤러 로직

  • Barcode 검증
  • Student::where('barcode', $request->barcode)->first()로 학생 정보 조회
  • 시간 비교 로직
  • Carbon::now()로 현재 시간 가져오기
  • jadwal 데이터의 masuk_pagi_start/pulang_siang_end와 비교하여 출퇴근 여부 판단
  • Absensi 상태 처리
  • Absensi::create()로 출근 기록, update(['pulang' => $now])로 퇴근 기록

결론

  • 데이터베이스 기반의 유연한 스케줄링
  • jadwal 테이블을 통해 출퇴근 시간을 언제든지 수정 가능
  • Carbon 라이브러리 사용으로 시간 비교 로직 간결화
  • Absensi 모델과 연동하여 중복 출퇴근 방지 처리
  • "Laravel의 Eloquent ORM과 마이그레이션 기능을 활용해 스케줄링 로직을 모듈화할 수 있다"