Skip to content

leedw21/fisagram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍪 FISAGRAM

FISA AI 엔지니어링 과정을 위한 통합 학습 관리 플랫폼

교육생들의 학습 진행도 추적, 수면 관리, 좌석 배치, 학습 일기 및 Notion 기반 학습 지원을 제공하는 종합 웹 애플리케이션


📋 목차


🎯 프로젝트 소개

FISAGRAM은 FISA AI 엔지니어링 부트캠프 교육생들을 위한 종합 학습 관리 플랫폼입니다. 교육 과정 중 필요한 다양한 기능들을 하나의 통합된 인터페이스로 제공하여, 교육생들의 학습 효율성과 커뮤니티 활동을 증진시키는 것을 목표로 합니다.

프로젝트 배경

  • 기간: 2026.01.22 ~ 2026.01.23 (총 이틀)
  • 대상: FISA AI 엔지니어링 과정 교육생
  • 문제 인식: 교육생들의 학습 진행도 관리, 수면 건강, 커뮤니티 활동이 분산되어 있음
  • 해결 방안: 통합 플랫폼을 통한 원스톱 학습 관리 시스템 구축

✨ 주요 기능

1. 📊 학습 진행도 대시보드

  • 실시간 진행률 추적: 총 960시간 과정의 실시간 진행률 시각화
  • 학습 통계: 경과 시간, 남은 시간, 예상 수료일 계산
  • 게이지 차트: 직관적인 진행도 표시 (Plotly 기반)
  • 자동 계산: 주 5일, 하루 9시간 기준 자동 학습 일수 계산

2. 😴 수면 기록 관리

  • 수면 패턴 분석: 개인별 수면 시간 기록 및 트렌드 분석
  • 기간별 조회: 1주일, 2주일, 3주일, 1개월, 전체 기간 선택 가능
  • 시각화 차트:
    • 수면시간 히스토그램 (그라데이션)
    • 권장 수면시간 대비 비교
    • 전체 사용자 수면 분포 (선 그래프)
  • 커뮤니티 팁 공유: 교육생들의 불면증 극복 꿀팁 공유 게시판
  • 추천 컨텐츠: 숙면을 위한 YouTube 영상, Spotify 음악, 건강 아티클 추천
  • 네비게이션 배너: 6개 섹션 빠른 이동

3. 🪑 좌석표 관리

  • 좌석 배치: 1분단(4x4), 2분단(5x4) 총 36석 관리
  • 학생 정보 연동: MySQL users_study_flat 테이블과 실시간 연동
  • 상세 정보 표시:
    • 이름, 출생연도, 전공, MBTI
    • 지역, 관심사, 자기소개, 스터디명
  • 좌석 배치 설정: 드래그 앤 드롭 방식의 좌석 배정
  • 하늘색 UI: 깔끔한 하늘색 그라데이션 디자인

4. 📔 공유 다이어리

  • 카테고리별 게시:
    • 📚 스터디, 🍽️ 점심메이트, 👋 우리 친해요
    • 🎉 이벤트, 💭 일상
  • 이미지 업로드:
    • 파일 선택 또는 카메라 촬영
    • 6가지 필터 (원본, 폴라로이드, 빈티지, 네온, 파스텔, 모노크롬)
  • Instagram 스타일: Instagram UI/UX 참고
  • 피드 기능: 최신순 정렬, 카테고리 필터링

5. 📚 Notion 학습 도우미

  • Notion 연동: Notion API를 통한 학습 노트 자동 분석
  • 요약: 학습 내용 자동 요약 및 핵심 개념 추출
  • 퀴즈 생성: 학습 내용 기반 자동 퀴즈 생성
  • 복습 관리: 효과적인 복습을 위한 학습 도구

🛠 기술 스택

Frontend

  • Streamlit: 웹 애플리케이션 프레임워크
  • Plotly: 인터랙티브 차트 및 시각화
  • HTML/CSS: 커스텀 UI 디자인

Backend

  • Python 3.9: 메인 프로그래밍 언어
  • MySQL: 주 데이터베이스 (사용자, 수면 기록, 좌석 배치)
  • CSV: 다이어리 데이터 저장
  • pymysql: MySQL 데이터베이스 연결

External APIs

  • Notion API: 학습 노트 연동 및 분석
  • YouTube/Spotify: 추천 컨텐츠 링크 제공

Libraries & Tools

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                                  │
│                                                         │
└─────────────────────────────────────────────────────────┘

🚀 설치 및 실행

1. 환경 설정

# 저장소 클론
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

2. 환경 변수 설정

.env 파일을 생성하고 다음 내용을 입력:

# MySQL 데이터베이스
FISADB_PASSWORD=your_mysql_password

# Notion API
NOTION_TOKEN=your_notion_integration_token

3. 데이터베이스 초기화

-- MySQL 데이터베이스 생성
CREATE DATABASE fisagram CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 테이블은 애플리케이션 실행 시 자동 생성됨

4. 애플리케이션 실행

# 메인 애플리케이션
streamlit run main_sleep.py

# 공유 다이어리 (별도 실행)
streamlit run fisa_diary.py

# Notion 학습 도우미 (별도 실행)
streamlit run notion_summary.py

5. 접속

브라우저에서 http://localhost:8501 접속


📱 페이지 구성

메인 페이지

  • 학습 진행도 게이지: 960시간 대비 현재 진행률
  • 통계 카드: 진행률, 경과 시간, 남은 시간, 전체 시간
  • 진행 속도: 평균 학습 속도 및 예상 수료일
  • 빠른 이동: 수면 기록, 좌석표로 바로 이동

수면 기록 페이지

  1. 오늘의 수면 기록: 취침/기상 시간 입력
  2. 나의 수면 트렌드: 기간별 수면 패턴 분석
  3. 수면 개선 팁: 기본 수면 개선 가이드
  4. 전체 사용자 분포: 사용자별 평균 수면시간 비교
  5. 커뮤니티 꿀팁: 불면증 극복 경험 공유
  6. 추천 컨텐츠: 영상, 음악, 아티클 추천

좌석표 페이지

  • 탭 1 - 좌석표: 현재 좌석 배치 확인 및 학생 정보 조회
  • 탭 2 - 좌석 배치: 좌석 재배치 및 관리

공유 다이어리

  • 탭 1 - 글 작성: 새 게시물 작성 및 이미지 필터링
  • 탭 2 - 피드: 카테고리별 게시물 피드

Notion 학습 도우미

  • 학습 내용 요약: Notion 페이지 자동 분석
  • 퀴즈 생성: 학습 내용 기반 문제 생성
  • 복습 관리: 주기적 복습 알림

💾 데이터베이스 구조

MySQL Tables

1. users_study_flat

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)
);

2. sleep_logs

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)
);

3. community_tips

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
);

4. seating_arrangement

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)
);

CSV Structure (diary.csv)

id,timestamp,author,category,content,image_data,template_style
1,2024-01-15 14:30:00,홍길동,📚 스터디,오늘 배운 내용...,base64_image_data,폴라로이드

📈 향후 개선 계획

Short-term (1-2 weeks)

  • 모바일 최적화
  • 알림 기능 추가
  • 사용자 프로필 편집 기능
  • 다크 모드 지원

Mid-term (1-2 months)

  • AI 기반 학습 추천
  • 스터디 그룹 매칭
  • 출석 체크 시스템
  • 학습 자료 공유 기능

Long-term (3+ months)

  • 모바일 앱 개발
  • 실시간 채팅 기능
  • 화상 스터디룸
  • 학습 게임화 (Gamification)

👥 팀원 및 역할

이름 역할 담당 기능
- 프로젝트 매니저 전체 기획 및 조율
- Frontend 개발 UI/UX 디자인 및 구현
- Backend 개발 데이터베이스 설계 및 API
- Data 수집,정의 데이터 시각화 및 통계

🙏 감사의 말

이 프로젝트는 FISA AI 엔지니어링 과정의 일환으로 제작되었습니다. 모든 교육생 분들과 멘토님께 감사드립니다.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages