[포트폴리오] QR코드 스마트 출석 모임 시스템

QR 포트폴리오 배너

프로젝트 개요

  • 프로그램명: QR코드 스마트 출석 모임 시스템
  • 소개:
    • 기존 출석인증방식(숫자코드 입력)과 달리 재생성되는 QR 코드 스캔으로 출석 인증을 하여 부정출석을 방지하는 모임 웹
  • 개발 기간: 2024년 4월 ~ 2024년 6월
  • 인력 구성: 팀(3인)
    • 프론트엔드 1인
    • 백엔드 2인(본인)
  • 수행업무 (백엔드 담당)
    • 인증 및 권한 관리

      • 스프링 시큐리티의 세션 기반 폼 로그인을 활용한 로그인 기능 구현
      • 리소스 기반 접근 제어를 통해 모임별 사용자의 역할(주최자, 참여자)을 검증하고 세밀한 권한 관리 수행.
      • 주최자와 참여자의 권한을 코드로 구현하여 모임별 상태와 역할을 동적으로 검증
    • 핵심 기능 구현

      • 모임 관리: 모임 생성/삭제, 정보 및 참여자 목록 조회, 모임 이름 수정(주최자만 가능), 가입/탈퇴 기능
      • 출석 관리:
        • QR 코드 출석 체크: 주최자가 15초의 만료시간을 가진 QR코드를 생성하고, 참여자는 이를 통해 출석을 체크. 스캔 여부와 시간에 따라 출석, 지각, 결석 상태로 처리
        • 출석 상태 조회: 참여자는 자신의 출석 정보를, 주최자는 모임 전체 출석 정보를 조회 가능.
  • 성과: 교수님과 동료들로부터 우수한 평가(A+)를 받음

기술 스택

  • 프레임워크: Spring Boot
  • 라이브러리:
    • ZXing: 자바 기반의 QR 코드 생성 라이브러리로, 다양한 코드 형식을 지원하고 높은 성능과 정확도를 제공하여 선택
  • 데이터베이스: MySQL

시스템 구조도

  • 블록 다이어그램 중간보고서 블록 다이어그램
  • 시퀀스 다이어그램 시퀀스 다이어그램

주요 기능

  1. 로그인 및 회원가입
    • 사용자는 이메일과 비밀번호로 로그인하거나 회원가입을 통해 계정을 생성
    • 비밀번호는 암호화하여 저장됨
  2. 모임 관리 및 참여
    • 주최자:
      • 새로운 모임을 주최하고 홍보 게시글을 작성 가능
      • 주최자는 자신이 주최한 모임을 관리하고, 참여자 목록과 출석을 확인 가능
    • 참여자:
      • 사용자는 모임 게시글을 보고, 원하는 모임에 가입 가능
      • 참여자는 자신의 출석을 확인 가능
  3. QR 출석 시스템

    • 주최자는 출석가능 시간과 지각처리 가능시간을 설정하여 QR코드를 생성
    • QR코드는 15초마다 재생성되며, 만료된 QR코드는 사용 불가
    • 참여자는 QR코드를 스캔하여 출석
    • 지각 처리 가능 시간 이후에도 출석하지 않은 참여자는 결석으로 처리

결과

  1. 편의성 증진
    • QR 코드 스캔만으로 출석을 인증하여 편리함을 제공하고, 기존 숫자코드의 잘못된 입력을 방지
  2. 부정출석 방지

    • QR 코드의 만료시간을 활용하여 코드 전송을 통한 부정 출석을 방지
  3. 다양한 출석 상태 처리
    • 코드의 정보 변환을 통해 출석과 지각 처리
  4. 다양한 모임 관리
    • 하나의 시스템으로 여러 모임 관리

주요 화면

  1. 기본 화면 Image
  2. 주최자 기능 화면 Image

  3. 참여자 기능 화면 Image

시연 영상


소스코드

Leave a comment