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

No packages published

Languages