본문 바로가기
Project

[Project]실시간 체크 및 생체인식 출결 관리 플랫폼

by starfish22 2023. 12. 28.
728x90

▶ Intro

 3학년 2학기를 다니며 총 3개의 프로젝트를 진행하게 되었는데, 그 중  주전공 과목인 캡스톤디자인 1에서 진행한 프로젝트이다. AWS 클라우드 서비스를 활용한 프로젝트이며 5인의 팀을 이루었고, 역할은 명확하게 분배되지 않았지만 주로 백앤드(클라우드)를 담당했다.

 이 프로젝트의 목적은 출튀 방지, 대리출석 방지이고, 와이파이를 활용하여 실시간 와이파이 스캔을 통해 학생이 근처에 존재하는지 여부를 파악할 수 있도록 한다.

 

▶제작 기간

2023.09.22 ~ 12.15 (약 3개월)

 

▶개발 환경

Back : Express, Ngrok,  AWS API Gateway + AWS Lambda (Python), AWS Amplify + AWS Cognito

Front : React native CLI (TS)

Database : AWS RDS (MySQL)

DevOps : Git

 

▶아키텍처

▶구현 기능

1. 로그인 및 회원가입

  • AWS Cognito : 기본적으로 제공되는 로그인, 회원가입 UI 사용, 이메일 인증, 사용자 관리
  • AWS Lambda : 회원 정보 저장

2. 출석체크

  • Express 서버를 통한 WebSocket 사용
  • AWS Lambda : 강의 수강생 목록 가져오기, 출석체크 결과 저장
  • 와이파이를 스캔하여 현재 강의실에 위치하는지 확인 후 강의실에 배치된 해당 와이파이가 스캔되었다면 출석체크를 하도록 구성
  • 출석체크는 지문인식을 통해 대리출석 방지
  • 교수는 수동 출석체크 가능

3. 실시간 출석체크

  • 5분 단위로 와이파이를 스캔하여 학생이 강의실에 위치하는지 확인

4. 학생 - 출석현황

  • AWS Lambda : 각 수강과목별 자신의 출석정보 가져오기
  • 수강과목마다 주차별 출석현황 확인 가능

5. 교수 - 출석현황

  • AWS Lambda : 강의 과목별 수강생들 출석정보 가져오기
  • 강의 과목마다 주차별 수강생 출석현황 확인 가능

6. 기타

  • UI : React Native Elements
  • API : Axios
  • 개인정보 확인
  • 현재 위치한 강의실 확인 (와이파이 스캔)
  • 학교 사이트 연결 : 포털, 셔틀버스, 학사 정보, E-강의동

 

▶후기

 처음으로 팀프로젝트를 진행하면서 아키텍처 설계, 프레임워크와의 호환성, 프로젝트 목적을 달성하는데 막힘없는지, 적합한 라이브러리 등 정말 생각할게 많고, 초기작업이 오래 걸린다는 것을 알게 되었다. 이로 인해 프레임워크도 여러 차례 변경하고, 아키텍처도 매번 바뀌면서 이 프로젝트를 우리가 성공할 수 있을지 의문이 들었다. 하지만 팀 전체가 다 같이 밤새면서 어떻게든 성공을 거듭해 나가며 좋은 결과를 만들어내었고, 다양한 시도를 통해 얻은 값진 경험들을 가지게 되었다. 이번 프로젝트를 통해 AWS 서비스를 활용하며 클라우드 환경의 흐름을 이해하게 되었고, 실제로 적용하면서 잘 다룰 수 있게 되었다. 결론적으로는 뭐든 붙잡고 해결하기 위해 노력하면 불가능처럼 보이는 것도 가능하도록 만들 수 있다는 것을 깨달았다.

728x90

댓글