Skip to content

Studymate 서비스 개발#2

Merged
Vactor0911 merged 65 commits into
mainfrom
dev
Nov 1, 2025
Merged

Studymate 서비스 개발#2
Vactor0911 merged 65 commits into
mainfrom
dev

Conversation

@Vactor0911
Copy link
Copy Markdown
Collaborator

개요
Studymate 서비스 개발

변경점

  1. 웹 디자인에 따라 프론트엔드 UI 구성
  2. 템플릿에 따라 Node.JS 서버 구현
  3. FastAPI 구성 및 프롬프트와 AI 모델 구성

추가 내용
기존에 작성한 소스 코드를 리팩토링하고, 후속 개발을 위한 작업이 필요하다.
Node.JS 소스 코드를 수정하여 서비스 로직을 재구성하고, TypeScript로의 마이그레이션을 준비한다.

Vactor0911 and others added 30 commits October 30, 2025 15:20
json반환 json 포맷  txt로 반환, 허깅페이스 api 임베딩 기능 추가
Copilot AI review requested due to automatic review settings November 1, 2025 13:03
@Vactor0911 Vactor0911 self-assigned this Nov 1, 2025
@Vactor0911 Vactor0911 added the 개선 새로운 기능 혹은 요청입니다. label Nov 1, 2025
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive study management application called "StudyMate" with curriculum generation, assessment features, and AI-powered analysis capabilities.

Key changes:

  • Frontend application with React, Material-UI, and state management using Jotai
  • Multiple pages for authentication, curriculum management, assessments, and results visualization
  • Backend Node.js services for user management, curriculum generation, and result processing
  • Integration with RAG API for AI-powered content generation

Reviewed Changes

Copilot reviewed 93 out of 100 changed files in this pull request and generated 24 comments.

Show a summary per file
File Description
frontend/src/App.tsx Main application routing and authentication bootstrap
frontend/src/main.tsx Application entry point with snackbar provider setup
frontend/package.json Dependencies including MUI charts and React Flow
frontend/src/pages/* Multiple page components for different features
frontend/src/components/* Reusable UI components including header, auth protection
frontend/src/services/auth.ts Authentication service with login, signup, and session management
frontend/src/utils/* Utility functions for theme configuration and validation
backend/nodejs/src/services/* Backend services for user, curriculum, and result management
Files not reviewed (1)
  • frontend/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)

frontend/src/pages/CurriculumDetail/ChatBox.tsx:124

  • The base expression of this property access is always null.
    frontend/src/pages/CurriculumDetail/ChatBox.tsx:125
  • The base expression of this property access is always null.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +124 to +125
(loginState.userName ? (
loginState.userName.charAt(0).toUpperCase()
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code accesses loginState.userName when loginState is set to null on line 43. This will cause a runtime error when attempting to access properties of null.

Copilot uses AI. Check for mistakes.
Comment on lines +61 to +69
static async callRagApi(userId, subject, grade, learning_goal, study_duration) {
try {
const result = await this.callRagApi(userId, subject, grade, learning_goal, study_duration);
return result;
}
catch (error) {
throw new Error(`RAG API 호출 중 오류가 발생했습니다: ${error.message}`);
}
}
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method recursively calls itself on line 63, creating an infinite loop. This appears to be duplicate code as the actual implementation exists in lines 77-87.

Copilot uses AI. Check for mistakes.
const [isDetailsOpen, setIsDetailsOpen] = useState(true); // 상세정보 패널 열림 상태
const [isChatbotOpen, setIsChatbotOpen] = useState(true); // 챗봇 패널 열림 상태
const detailsPanel = useRef<ImperativePanelHandle>(null); // 상세정보 패널 참조
const chatbotPanel = useRef<ImperativePanelHandle>(null); // 챗봇 패널 참조ㄴ
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed trailing 'ㄴ' character from Korean comment.

Copilot uses AI. Check for mistakes.
// 노드 데이터가 없는 경우
return;
} else if (nodeData.category === "subject") {
// category가 "job"인 경우
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment mentions 'job' category but the code checks for 'subject' category. The comment should be updated to match the actual implementation.

Copilot uses AI. Check for mistakes.
Comment on lines +47 to +49
} catch {
// 에러 처리
}
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty catch block with only a comment. Either implement proper error handling or document why errors are intentionally ignored.

Copilot uses AI. Check for mistakes.
Comment thread backend/fastapi/main.py
@@ -0,0 +1,117 @@
from __future__ import annotations

import json
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'json' is not used.

Suggested change
import json

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,105 @@
from __future__ import annotations

from typing import Any, Dict, Iterable, Iterator, List, Optional
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'Iterable' is not used.

Suggested change
from typing import Any, Dict, Iterable, Iterator, List, Optional
from typing import Any, Dict, Iterator, List, Optional

Copilot uses AI. Check for mistakes.

from typing import Any, Dict, Iterable, Iterator, List, Optional

from pydantic import BaseModel, Field, field_validator
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'field_validator' is not used.

Suggested change
from pydantic import BaseModel, Field, field_validator
from pydantic import BaseModel, Field

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +11
MultipleChoiceOption,
MultipleChoiceQuestion,
ProblemGenerationRequest,
ProblemGenerationResponse,
ProblemSetMetadata,
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'MultipleChoiceOption' is not used.
Import of 'MultipleChoiceQuestion' is not used.
Import of 'ProblemSetMetadata' is not used.

Suggested change
MultipleChoiceOption,
MultipleChoiceQuestion,
ProblemGenerationRequest,
ProblemGenerationResponse,
ProblemSetMetadata,
ProblemGenerationRequest,
ProblemGenerationResponse,

Copilot uses AI. Check for mistakes.

from pydantic import BaseModel, Field, field_validator

from rag_pipeline.roadmap.models import Roadmap
Copy link

Copilot AI Nov 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'Roadmap' is not used.

Suggested change
from rag_pipeline.roadmap.models import Roadmap

Copilot uses AI. Check for mistakes.
@Vactor0911 Vactor0911 merged commit 79121dc into main Nov 1, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

개선 새로운 기능 혹은 요청입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants