MCPcopy Index your code
hub / github.com/boostcampwm-2021/bookathon_F

github.com/boostcampwm-2021/bookathon_F @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
25,385 symbols 54,434 edges 2,510 files 2,612 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

```bash= 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) 하니 정상적으로 프로젝트가 열림.

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

Core symbols most depended-on inside this repo

get
called by 583
BoostAttendance/Pods/BoringSSL-GRPC/src/include/openssl/base.h
OPENSSL_free
called by 409
BoostAttendance/Pods/BoringSSL-GRPC/src/crypto/mem.c
CBS_len
called by 394
BoostAttendance/Pods/BoringSSL-GRPC/src/crypto/bytestring/cbs.c
get
called by 356
BoostAttendance/Pods/gRPC-C++/include/grpcpp/impl/codegen/sync.h
OPENSSL_memcpy
called by 348
BoostAttendance/Pods/BoringSSL-GRPC/src/crypto/internal.h
c_str
called by 269
BoostAttendance/Pods/FirebaseFirestore/Firestore/core/src/util/path.h
reset
called by 259
BoostAttendance/Pods/abseil/absl/types/optional.h
size
called by 241
BoostAttendance/Pods/BoringSSL-GRPC/src/ssl/internal.h

Shape

Function 13,978
Method 6,593
Class 4,608
Enum 206

Languages

C++87%
C13%
Python1%

Modules by API surface

BoostAttendance/Pods/gRPC-Core/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h527 symbols
BoostAttendance/Pods/gRPC-C++/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h527 symbols
BoostAttendance/Pods/gRPC-Core/src/core/ext/upb-generated/validate/validate.upb.h403 symbols
BoostAttendance/Pods/gRPC-C++/src/core/ext/upb-generated/validate/validate.upb.h403 symbols
BoostAttendance/Pods/gRPC-Core/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h373 symbols
BoostAttendance/Pods/gRPC-C++/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h373 symbols
BoostAttendance/Pods/BoringSSL-GRPC/src/ssl/ssl_lib.cc293 symbols
BoostAttendance/Pods/gRPC-Core/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h272 symbols
BoostAttendance/Pods/gRPC-C++/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h272 symbols
BoostAttendance/Pods/gRPC-Core/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h208 symbols
BoostAttendance/Pods/gRPC-C++/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h208 symbols
BoostAttendance/Pods/gRPC-Core/src/core/ext/filters/client_channel/client_channel.cc184 symbols

For agents

$ claude mcp add bookathon_F \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact