/bookathon_F

부스트캠프 출석부 조회 앱

Primary LanguagePython

Checkable : 부스트캠프 출석조회 어플 🗓




아직도 200여개의 댓글들을 스크롤하면서 불편하게 확인하시나요? 🥲
이제 앱에서 간단하게 출결사항을 조회하세요! 😆

💁🏻‍♀️ 팀원 & 역할 소개

[S013] 김태훈
@Modyhoon
[S036] 이나정
@dailynj
[S045] 이지수
@tmfrlrkvlek
크롤링 코드 작성 Firebase 세팅 크롤링 환경 세팅(EC2 & Crontab)
Firebase 데이터 수집 Firebase iOS 연동 & UI 작업 Firebase iOS 연동 & UI 작업

📱 프로젝트 소개

🥲 기존의 출첵시스템

매일 체크해야 하는 출결관리 일일히 확인해야하는 번거로움

✔️ 서비스 핵심 기능

  1. 부스트캠프 체크인, 체크아웃 기록 조회 (캘린더 형식)

    출석부 예시 1 출석부 예시 2
  2. 출결 현황 확인

    출결 현황 예시 1 출결 현황 예시 2
  3. 사용자의 아이디 저장 (with userDefaults)


⚒ 프로토타입



✅ 시연 영상



🏛 SW 아키텍처 & 사용 기술/라이브러리


서버 슬랙 스레드 크롤링(Link) DB APP
AWS EC2 Python FireStore iOS/Swift
Crontab SlackAPI FSCalendar

🗂 DB Schema

자세히 보기

Date

// Date: 날짜
// CheckInOnly : 체크아웃 O - false, 체크아웃 X - true
// IsActive : Date Count 유무, True/False (19시에 True로 변환)

{
    Date: 2021-09-23,
    CheckInOnly: true,
    IsActive: false
}

AttendanceDetail

// Date : Date
// CamperId : CamperId
// CheckInTime :  10:00:01 | null
// CheckOutTime : 23:00:10 | null
// Attendance : True/False

{
    Date: 2021-09-23,
    CamperId: "S013",
    CheckInTime: 09:59:59,
    CheckOutTime: null,
    Attendence: true
}

CamperId

// CamperId : 번호
// Name : 이름
// Type : 안드로이드(K), iOS(S), 웹(J)

{
    CamperId: "S013",
    Name: "김태훈",
    Type: 'S'
}

Attendance

// CamperId : CamperId
// Count : 총 출석 횟수 

{
    CamperId: "S013",
    Count: 3
}


🏃‍♂️ Install & run

git clone https://github.com/boostcampwm-2021/bookathon_F.git

cd BoostAttendance
pod init
pod install # m1 칩에서 오류가 발생한다면 arch -x86_64 pod install 을 실행해주세요

🧨 m1 칩에서 pod install 오류가 난다면 -> arch -x86_64 pod install 을 실행해주세요

🧨 Firebase 오류가 난다면 -> 링크

🧨 CocoaPod 오류가 난다면 -> 링크


🥕 개발 중 어려웠던 점

Lambda 최대 용량 초과 😢

눈물겨운 개발 과정💦

  1. gRPC 모듈이 C기반이여서 Python으로 세팅된 Lambda에서는 동작 불가
  2. 도커로 가상 환경을 구축한 후 필요한 패키지 의존성만 추출 참고사이트
  3. 용량이 커 zip 파일 업로드 불가능
  4. S3에 업로드 -> 50MB 초과로 에러
  5. EC2로 전환

파이어베이스 기본 용량 초과 😮

체크인 - 체크아웃 스레드의 댓글이 각 200여개에 이름

중복체크 로직 등 DB에 접근하는 쿼리의 양이 점점 많아지고,

결국 사용량 초과로 무료 요금제는 더 이상 사용하지 못하게 됨 😭

눈물을 머금고 새벽3시에 Blaze 요금제 결제 💸💸💸

31만회의 읽기 트래픽


XCode 버전이 달라서 열지 못하는 이슈 😩

XCode 최신버전인 13.0 환경에서 프로젝트 생성

해당 프로젝트를 XCode 12.6 환경에서 실행하니 다음과 같이 이슈 발생


이후 계속해서 원인을 찾아보다가 XCode를 업그레이드 (13.0) 하니 정상적으로 프로젝트가 열림.

협업을 할때에는 개발 환경을 먼저 맞추고 시작하는게 중요하다는 것을 다시금 느낀 경험