1 of 26

캡스톤디자인 2조 발표

강세민 박지인 온수옥 정서윤

IAmHere

CapstoneDesign

2 of 26

목차

  1. 프로젝트 소개
  2. 각 시스템 소개
  3. 프로젝트 데모
  4. Lessons Learned

IAmHere

CapstoneDesign

3 of 26

프로젝트 소개

1

4 of 26

프로젝트 개요

  1. 프로젝트 소개
  • 블루투스지문인식을 기반으로 한 이중 인증 출석 시스템

  • 학생의 모바일 기기 블루투스와 지문 정보를 활용하여 정확하고 자동화된 출석 관리를 목표로 함

  • 기존 수동 출석 방식의 대리 출석 문제를 해결 가능

IAmHere

CapstoneDesign

5 of 26

개발 동기

  • 프로젝트 소개
  • 첫 시작은 IoT 관련 프로젝트 개발을 목표

  • 학교 생활을 하면서 불편한 점을 개선하고자 아이디어 회의를 하던 중, 지문인식 출석이라는 생각을 도출

  • 단순한 출결 기록을 넘어서, 보안성과 신뢰성을 갖춘 출석 시스템이 필요하다는 점에 주목

IAmHere

CapstoneDesign

6 of 26

주요 기능

  • 프로젝트 소개
  • 강의자의 기기에 블루투스를 연결하여 강의 시작

  • 블루투스 스캔을 통해 학생의 위치 확인

  • 지문 데이터를 암호화하여 저장

  • 지문 인증을 통한 본인확인으로 대리출석 방지

  • 지문 출석 알림을 애플리케이션을 통해 받을 수 있음

  • 출석 통계도 확인 가능

IAmHere

CapstoneDesign

7 of 26

전체 시스템 다이어그램

  • 프로젝트 소개

IAmHere

CapstoneDesign

8 of 26

각 시스템 소개

2

9 of 26

출석 시스템

2. 각 시스템 소개

  • 라즈베리파이에서 동작하는 파이썬 기반 프로그램
  • 초기에는 CLI 기반으로 개발
  • 이후 Tkinter를 도입하여 GUI로 탈바꿈, MVC 패턴 적용

IAmHere

CapstoneDesign

10 of 26

출석 시스템의 지문 등록

2. 각 시스템 소개

  • 사용자가 지문을 등록하는 기능
  • 지문 인식 모듈과 연동됨
    • 등록 과정에서 지문을 스캔
    • 스캔한 지문 데이터를 암호화하여 사용자 데이터와 매핑해 DB에 저장
  • 향후 지문 출석 시 이 정보를 활용

IAmHere

CapstoneDesign

11 of 26

출석 시스템의 블루투스 기기 페어링

2. 각 시스템 소개

  • 강의자의 블루투스 기기를 시스템과 페어링하는 기능
  • 강의 ID를 통해 교수자의 MAC 주소를 가져옴
  • 백그라운드 스레드에서 페어링을 시도
    • bluetoothctl 명령어를 터미널에서 사용
  • 페어링이 완료되면 강의 시작 준비가 완료됨

IAmHere

CapstoneDesign

12 of 26

출석 시스템의 강의 시작

2. 각 시스템 소개

  1. 강의 정보 불러오기
  2. 강의자가 라즈베리파이에 블루투스 연결이 될 때까지 대기
  3. 출석 루프 실행
    1. 주기적으로(10초 간격) 블루투스 출석을 시도
    2. 학생들의 기기를 블루투스 스캔하여 자리에 있는지 확인
  4. 강의자의 블루투스 연결이 끊기면 강의 종료 여부를 확인
    • 강의를 종료 시, 지문 출석을 하여 블루투스 출석이 안 된 학생들의 출석을 마무리
    • 강의를 진행 시, 출석 루프를 재시작

IAmHere

CapstoneDesign

13 of 26

IAmHere 서비스

2. 각 시스템 소개

  • 강의를 듣는 학생들이 앱을 설치해 출석을 체크
    • Android
    • 학생, 교수 페이지 분리
  • Android Studio로 개발

IAmHere

CapstoneDesign

14 of 26

IAmHere 서비스

2. 각 시스템 소개

  • 학생 로그인 / 교수 로그인
    • 기본은 학생 로그인
    • 클릭시 화면 하단에 학생 로그인 또는 교수 로그인이 선택됐다고 나타남

IAmHere

CapstoneDesign

15 of 26

IAmHere 서비스

2. 각 시스템 소개

  • 현재 수강중인 강의에 대한 출석 현황 확인
    • 출석/지각/결석

  • 한달 간의 출석통계
    • 원형 그래프로 표현

IAmHere

CapstoneDesign

16 of 26

IAmHere 서비스

2. 각 시스템 소개

  • 월별로 볼 수 있는 출석 통계
    • 달력으로 표현

IAmHere

CapstoneDesign

17 of 26

IAmHere 서비스

2. 각 시스템 소개

  • 교수 페이지
    • 현재 수업 중인 수업 표시
    • 출석, 지각, 결석자 수를 알 수 있음
    • 출석 수정 버튼 클릭시 학생 개개인마다 1차 출석 완료, 1차 출석 실패, 2차 출석 완료, 2차 출석 실패, 2차 출석 제외 항목이 나타나서 교수가 수정 가능

IAmHere

CapstoneDesign

18 of 26

알림 시스템

2. 각 시스템 소개

  • 2차 출석 전, 후 알림 전송

IAmHere

CapstoneDesign

19 of 26

데모 영상

3

20 of 26

영상 링크

3. 데모 영상

IAmHere

CapstoneDesign

21 of 26

느낀 점과 배운 점

4

22 of 26

정서윤 - 출석 시스템 및 영상 편집

4. 느낀 점과 배운 점

  • 라즈베리파이를 처음 다루어보아 부팅 방법부터 차근차근 익혀 나갔다.
  • 지문 인식 센서나 모듈이 작동하지 않는 문제도 종종 발생했지만, 그때마다 직접 원인을 찾아가며 해결해 나갔다.
  • 처음에는 GUI 기능을 추가할 계획이 없었다. 하지만 사용자 편의성을 고려해 도입을 결정했고, 그에 따라 프로젝트 구조 전반을 다시 설계했다.
  • 계획에 없던 일이라 조금 빠듯했지만, 결과적으로 확장성과 유지보수 측면에서 기존보다 나아졌다고 생각한다.
  • 웹 개발 외에 처음으로 만들어 본 프로젝트여서 여러 시행착오도 많았지만 그만큼 의미 있는 경험이었다(영상 편집 기술은 덤).

IAmHere

CapstoneDesign

23 of 26

박지인 - 지문인식 코드 + 로그인 화면

4. 느낀 점과 배운 점

  • 웹으로만 구현을 해보다가 처음으로 라즈베리파이를 이용해 프로젝트를 진행해 봐서 낯설었고 오랜만에 파이썬을 이용해서 다시 공부하면서 배우게 됨
  • 안드로이드 스튜디오를 이용해 화면을 구현하는게 기존의 자바 스크립트로 만들던것과는 다르게 정말 앱을 구현한다는 느낌을 받음
  • 블루투스와 데이터베이스와 알람시스템을 알맞게 연결한다는게 생각보다 쉽지 않다는것을 알게 됨

IAmHere

CapstoneDesign

24 of 26

온수옥 - 데이터베이스 설계 로그인 api 연동

4. 느낀 점과 배운 점

  • db설계에서 요구사항을 먼저 확실하게 정할 필요성을 느낌.�각 파트에서 필요한 데이터를 최우선으로 정해야한다.
  • 중간에 db구조를 바꿨는데 작은 설계 변경도 시스템에 큰 영향을�줄 수 있음을 배웠다.
  • 로그인 api를 도입하는 과정에서 다양한 http 오류를 봤는데, �문제가 어디에서 발생했는지 알려주는 로그가 개발에서 정말 중요하다고 생각하게 되었다.

IAmHere

CapstoneDesign

25 of 26

강세민 - 출석 알림 로직 구현 및 클라이언트 어플 제작

4. 느낀 점과 배운 점

  • Android Studio 개발 흐름에 대한 이해 -> 액티비티/프래그먼트 구조, 레이아웃 XML과 코드 연동 방식, RecyclerView, Intent, SharedPreferences 등의 기본 구성 요소
  • API 간 데이터 불일치로 출석 알람 전송 x -> 초기 API 설계의 중요성
  • 캘린더 연동의 아쉬움 -> 협업의 중요성 feat. github
  • 수작업 배포의 한계 -> CICD 필요함을 절실히 느낌

IAmHere

CapstoneDesign

26 of 26

발표를 들어주셔서 감사합니다!

마무리

한 학기 동안 모두 수고 많으셨습니다!

IAmHere

CapstoneDesign