모캠! - 대학생 시간표 & 커뮤니티
대학생들을 위한 시간표 관리와 소셜 기능을 결합한 캠퍼스 라이프 플랫폼
프로젝트 소개
모두의 캠퍼스(이하 '모캠, MOCAM')은 대학생들의 캠퍼스 생활을 더욱 편리하게 만들어주는 웹 기반 플랫폼입니다. 시간표 관리 기능과 커뮤니티 기능을 하나로 통합하여, 학생들이 수업 일정을 효율적으로 관리하고 동시에 같은 수업을 듣는 친구들과 소통할 수 있는 환경을 제공하고 있습니다.
기획 의도(Scratching my own itch)
"학교 홈페이지 공지사항 보기가 너무 힘들다!" 장학금, 취업 정보, 학사 공지가 여러 게시판에 파편화되어 있고 모바일 가독성도 떨어졌습니다. 에브리타임이라는 훌륭한 서비스가 있지만, 학교의 '공식적인 실시간 정보'를 빠르고 예쁘게 볼 수 있는 대시보드 형태의 커뮤니티가 필요하다고 느껴 개발하게 되었습니다.
핵심 기능 및 기술적 해결 과정
AI 시간표 자동 완성(EasyOCR + Fuzzy 매칭)
기존 시간표 이미지를 업로드하면 내 시간표로 자동 생성해 주는 기능을 구현했습니다.
- 문제점: 유저들이 올리는 사진에는 개인정보 보호를 위한 '모자이크', 배경의 '노이즈(숫자, 기호 등)'가 섞여 있어 OCR 모델이 심각한 할루시네이션(환각)을 일으켰습니다. (예: 모자이크를 보고 '12교시'로 인식)
- 해결: 단순 OCR 추출에 의존하지 않고, 파이프라인을 구축했습니다. 1. EasyOCR로 텍스트 1차 추출 2. 정규식(re.search(r'[가-힣]', text)) 및 길이 제한을 통해 한글이 없는 노이즈(강의실 호수, 시간 등) 원천 차단 3. 필터링된 텍스트를 FuzzyWuzzy (token_set_ratio)를 이용해 자체 과목 DB와 유사도 비교(85점 이상 커트라인) 4. 매칭된 과목의 원본 DB 데이터를 프론트엔드로 전달하여 격자 렌더링하여 결과적으로 찌그러지거나 낙서가 있는 사진에서도 정확하게 과목만 쏙쏙 뽑아내는 데 성공했습니다!
2. 철저한 타겟팅과 이메일 인증 로직
초기 커뮤니티의 수질 관리와 소속감을 위해 '대학교 이메일([email protected] 등)'로만 가입할 수 있도록 제한했습니다. FastAPI와 Brevo SMTP를 연동하여 6자리 인증번호 로직을 구현했습니다.
3. 실시간 캠퍼스 공지 파싱
부서별로 흩어진 학교 공지사항(RSS 등 활용)을 긁어와 모바일 친화적인 UI/UX로 홈 화면에 피드 형태로 제공합니다.
주요 기능
📅 스마트 시간표 관리
- 직관적인 UI로 학기별 시간표 생성 및 관리
- 수업 정보 입력 및 시각적 표현
- 시간표 공유 기능으로 친구들과 공강 시간 확인
💬 커뮤니티 기능
- 같은 수업을 듣는 학우들과의 소통 공간
- 과제, 시험 정보 공유
- 스터디 그룹 형성 지원
🎓 캠퍼스 라이프 지원
- 학사 일정 알림
- 학교별 맞춤 정보 제공
- 모바일 반응형 디자인으로 언제 어디서나 접근 가능
기술적 특징
- Frontend: React, Tailwind CSS
- Backend: FastAPI (Python), SQLite, Node.js (채팅 서버)
- AI / Data: EasyOCR, FuzzyWuzzy
- Auth / Infra: JWT, Brevo SMTP (웹메일 인증)
사용 방법
- https://www.mocam.xyz 접속
- 회원가입 및 소속 학교 선택
- 시간표 생성 및 수업 정보 입력
- 커뮤니티 참여 및 친구들과 연결
대학생활의 필수 동반자, 모캠과 함께 더 스마트한 캠퍼스 라이프를 경험해보세요!