▶ 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 서비스를 활용하며 클라우드 환경의 흐름을 이해하게 되었고, 실제로 적용하면서 잘 다룰 수 있게 되었다. 결론적으로는 뭐든 붙잡고 해결하기 위해 노력하면 불가능처럼 보이는 것도 가능하도록 만들 수 있다는 것을 깨달았다.
'Project' 카테고리의 다른 글
강원도 물가 가격 측정 및 분석 프로그램 (2) | 2024.01.02 |
---|---|
앱 기반 주류 리뷰 플랫폼 "첫술" (0) | 2023.12.20 |
[MFC] 맘스터치 키오스크&포스기 <기말 프로젝트> (0) | 2023.06.18 |
[미니게임]연산 유추 넌센스 게임 C언어 (2) | 2021.12.01 |
댓글