FISA AI 엔지니어링 과정을 위한 통합 학습 관리 플랫폼
교육생들의 학습 진행도 추적, 수면 관리, 좌석 배치, 학습 일기 및 Notion 기반 학습 지원을 제공하는 종합 웹 애플리케이션
FISAGRAM은 FISA AI 엔지니어링 부트캠프 교육생들을 위한 종합 학습 관리 플랫폼입니다. 교육 과정 중 필요한 다양한 기능들을 하나의 통합된 인터페이스로 제공하여, 교육생들의 학습 효율성과 커뮤니티 활동을 증진시키는 것을 목표로 합니다.
- 기간: 2026.01.22 ~ 2026.01.23 (총 이틀)
- 대상: FISA AI 엔지니어링 과정 교육생
- 문제 인식: 교육생들의 학습 진행도 관리, 수면 건강, 커뮤니티 활동이 분산되어 있음
- 해결 방안: 통합 플랫폼을 통한 원스톱 학습 관리 시스템 구축
- 실시간 진행률 추적: 총 960시간 과정의 실시간 진행률 시각화
- 학습 통계: 경과 시간, 남은 시간, 예상 수료일 계산
- 게이지 차트: 직관적인 진행도 표시 (Plotly 기반)
- 자동 계산: 주 5일, 하루 9시간 기준 자동 학습 일수 계산
- 수면 패턴 분석: 개인별 수면 시간 기록 및 트렌드 분석
- 기간별 조회: 1주일, 2주일, 3주일, 1개월, 전체 기간 선택 가능
- 시각화 차트:
- 수면시간 히스토그램 (그라데이션)
- 권장 수면시간 대비 비교
- 전체 사용자 수면 분포 (선 그래프)
- 커뮤니티 팁 공유: 교육생들의 불면증 극복 꿀팁 공유 게시판
- 추천 컨텐츠: 숙면을 위한 YouTube 영상, Spotify 음악, 건강 아티클 추천
- 네비게이션 배너: 6개 섹션 빠른 이동
- 좌석 배치: 1분단(4x4), 2분단(5x4) 총 36석 관리
- 학생 정보 연동: MySQL users_study_flat 테이블과 실시간 연동
- 상세 정보 표시:
- 이름, 출생연도, 전공, MBTI
- 지역, 관심사, 자기소개, 스터디명
- 좌석 배치 설정: 드래그 앤 드롭 방식의 좌석 배정
- 하늘색 UI: 깔끔한 하늘색 그라데이션 디자인
- 카테고리별 게시:
- 📚 스터디, 🍽️ 점심메이트, 👋 우리 친해요
- 🎉 이벤트, 💭 일상
- 이미지 업로드:
- 파일 선택 또는 카메라 촬영
- 6가지 필터 (원본, 폴라로이드, 빈티지, 네온, 파스텔, 모노크롬)
- Instagram 스타일: Instagram UI/UX 참고
- 피드 기능: 최신순 정렬, 카테고리 필터링
- Notion 연동: Notion API를 통한 학습 노트 자동 분석
- 요약: 학습 내용 자동 요약 및 핵심 개념 추출
- 퀴즈 생성: 학습 내용 기반 자동 퀴즈 생성
- 복습 관리: 효과적인 복습을 위한 학습 도구
- Streamlit: 웹 애플리케이션 프레임워크
- Plotly: 인터랙티브 차트 및 시각화
- HTML/CSS: 커스텀 UI 디자인
- Python 3.9: 메인 프로그래밍 언어
- MySQL: 주 데이터베이스 (사용자, 수면 기록, 좌석 배치)
- CSV: 다이어리 데이터 저장
- pymysql: MySQL 데이터베이스 연결
- Notion API: 학습 노트 연동 및 분석
- YouTube/Spotify: 추천 컨텐츠 링크 제공
streamlit>=1.28.0
pandas>=2.0.0
plotly>=5.17.0
pymysql>=1.1.0
python-dotenv>=1.0.0
Pillow>=10.0.0
notion-client>=2.0.0┌─────────────────────────────────────────────────────────┐
│ FISAGRAM Platform │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 메인 │ │ 수면 │ │ 좌석표 │ │
│ │ 대시보드 │ │ 기록 │ │ 관리 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 공유 │ │ Notion │ │ study │ │
│ │ 다이어리 │ │ 학습도우미 │ │ 소개 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
├─────────────────────────────────────────────────────────┤
│ Data Layer │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ MySQL │ │ CSV │ │ Notion API │ │
│ │ fisagram DB │ │ diary.csv │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ - users_study_flat │
│ - sleep_logs │
│ - community_tips │
│ - seating_arrangement │
│ │
└─────────────────────────────────────────────────────────┘
# 저장소 클론
git clone https://github.com/your-org/fisagram.git
cd fisagram
# 가상환경 생성 및 활성화
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 패키지 설치
pip install -r requirements.txt.env 파일을 생성하고 다음 내용을 입력:
# MySQL 데이터베이스
FISADB_PASSWORD=your_mysql_password
# Notion API
NOTION_TOKEN=your_notion_integration_token-- MySQL 데이터베이스 생성
CREATE DATABASE fisagram CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 테이블은 애플리케이션 실행 시 자동 생성됨# 메인 애플리케이션
streamlit run main_sleep.py
# 공유 다이어리 (별도 실행)
streamlit run fisa_diary.py
# Notion 학습 도우미 (별도 실행)
streamlit run notion_summary.py브라우저에서 http://localhost:8501 접속
- 학습 진행도 게이지: 960시간 대비 현재 진행률
- 통계 카드: 진행률, 경과 시간, 남은 시간, 전체 시간
- 진행 속도: 평균 학습 속도 및 예상 수료일
- 빠른 이동: 수면 기록, 좌석표로 바로 이동
- 오늘의 수면 기록: 취침/기상 시간 입력
- 나의 수면 트렌드: 기간별 수면 패턴 분석
- 수면 개선 팁: 기본 수면 개선 가이드
- 전체 사용자 분포: 사용자별 평균 수면시간 비교
- 커뮤니티 꿀팁: 불면증 극복 경험 공유
- 추천 컨텐츠: 영상, 음악, 아티클 추천
- 탭 1 - 좌석표: 현재 좌석 배치 확인 및 학생 정보 조회
- 탭 2 - 좌석 배치: 좌석 재배치 및 관리
- 탭 1 - 글 작성: 새 게시물 작성 및 이미지 필터링
- 탭 2 - 피드: 카테고리별 게시물 피드
- 학습 내용 요약: Notion 페이지 자동 분석
- 퀴즈 생성: 학습 내용 기반 문제 생성
- 복습 관리: 주기적 복습 알림
CREATE TABLE users_study_flat (
user_id INT PRIMARY KEY,
user_name VARCHAR(100),
birth_year VARCHAR(10),
major VARCHAR(100),
mbti VARCHAR(10),
region VARCHAR(100),
interests TEXT,
intro TEXT,
study_name VARCHAR(100)
);CREATE TABLE sleep_logs (
log_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
sleep_date DATE,
sleep_hours DECIMAL(4,2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users_study_flat(user_id)
);CREATE TABLE community_tips (
tip_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
tip_content TEXT,
likes INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);CREATE TABLE seating_arrangement (
id INT AUTO_INCREMENT PRIMARY KEY,
section VARCHAR(20),
row_num INT,
col_num INT,
user_id INT,
UNIQUE KEY unique_seat (section, row_num, col_num),
FOREIGN KEY (user_id) REFERENCES users_study_flat(user_id)
);id,timestamp,author,category,content,image_data,template_style
1,2024-01-15 14:30:00,홍길동,📚 스터디,오늘 배운 내용...,base64_image_data,폴라로이드- 모바일 최적화
- 알림 기능 추가
- 사용자 프로필 편집 기능
- 다크 모드 지원
- AI 기반 학습 추천
- 스터디 그룹 매칭
- 출석 체크 시스템
- 학습 자료 공유 기능
- 모바일 앱 개발
- 실시간 채팅 기능
- 화상 스터디룸
- 학습 게임화 (Gamification)
| 이름 | 역할 | 담당 기능 |
|---|---|---|
| - | 프로젝트 매니저 | 전체 기획 및 조율 |
| - | Frontend 개발 | UI/UX 디자인 및 구현 |
| - | Backend 개발 | 데이터베이스 설계 및 API |
| - | Data 수집,정의 | 데이터 시각화 및 통계 |
이 프로젝트는 FISA AI 엔지니어링 과정의 일환으로 제작되었습니다. 모든 교육생 분들과 멘토님께 감사드립니다.