Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8859108
Update user story issue templates
baxkspace Oct 8, 2025
2ab5c2e
커밋 테스트
krlatjrgus Oct 12, 2025
90cd98d
feat #101: Add PptLoadService to open PPTX
krlatjrgus Oct 12, 2025
b920e6d
feat #101: (re-commit)Add PptLoadService to open PPTX
krlatjrgus Nov 1, 2025
bba268d
Merge branch 'microsoft:main' into ppt-translator
krlatjrgus Nov 3, 2025
4e5204e
Merge pull request #102 from CDP1-Team4/feat/101-ShapeCrawlerPptxLoad
krlatjrgus Nov 3, 2025
9514716
feat #135: Add PptFileService to open and extract textBox
krlatjrgus Nov 3, 2025
cb1e3db
Merge pull request #136 from CDP1-Team4/feat/135-extract-text-and-Str…
krlatjrgus Nov 3, 2025
0e70dc6
실행 파일 추가
krlatjrgus Nov 4, 2025
771ebf1
feat: 추출한 텍스트를 json파일로 저장하는 메소드 구현
krlatjrgus Nov 10, 2025
81120f2
Merge pull request #146 from CDP1-Team4/feat/135-extract-text-and-Str…
krlatjrgus Nov 10, 2025
597bba5
implement get prompt
krlatjrgus Nov 18, 2025
d24f204
Merge pull request #167 from CDP1-Team4/feat/158-get-translation-prompt
krlatjrgus Nov 18, 2025
37ece93
implement translation and rebuilding
krlatjrgus Nov 18, 2025
3ce242e
Merge pull request #168 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 18, 2025
95c54cb
update comments
krlatjrgus Nov 18, 2025
6586d83
Merge pull request #169 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 18, 2025
ac41072
Enhanced FileRebuildService
krlatjrgus Nov 25, 2025
277da1b
Merge pull request #180 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 25, 2025
6bb3ef4
Improved TranslationPrompt
krlatjrgus Nov 25, 2025
cbff6fe
Merge pull request #181 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 25, 2025
fd854a3
Add Validate Translated Json Logic
krlatjrgus Nov 25, 2025
74c928c
Merge pull request #183 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 25, 2025
1fc62e1
feat: Improve PPT translation pipeline and rebuild stability
krlatjrgus Nov 30, 2025
29b0046
Merge pull request #186 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Nov 30, 2025
b1a3a80
Added mcp.json files for container execution scenarios
krlatjrgus Dec 1, 2025
a6346e9
Added prompt.txt
krlatjrgus Dec 1, 2025
e3db53d
Add Dockerfile for Azure container app deployment
krlatjrgus Dec 1, 2025
a811b29
Merge pull request #198 from CDP1-Team4/feat/164-translation-and--reb…
krlatjrgus Dec 1, 2025
a2afb38
feat(ppt-translator): implement 5 execution modes with Azure deployment
krlatjrgus Dec 4, 2025
925e8ff
PPT-Translator: Add XML comments and Korean remarks to services and t…
krlatjrgus Dec 4, 2025
376142a
Merge pull request #204 from CDP1-Team4/ppt-translator-multiple-type
krlatjrgus Dec 4, 2025
ffd372e
feat(ppt-translator): update infrastructure configuration
krlatjrgus Dec 8, 2025
2ca98f1
chore(ppt-translator): update Azure deployment configuration
krlatjrgus Dec 8, 2025
f392a93
refactor(ppt-translator): remove unusedservice
krlatjrgus Dec 8, 2025
7bfbc71
refactor(ppt-translator): remove deprecated PptTranslateTool
krlatjrgus Dec 8, 2025
a0899fe
refactor(ppt-translator): remove deprecated PptTranslateTool
krlatjrgus Dec 8, 2025
90610d7
feat(ppt-translator): major refactoring - restructure services
krlatjrgus Dec 8, 2025
3012e14
feat(ppt-translator): major refactoring - restructure services and ad…
krlatjrgus Dec 8, 2025
b125571
docs(ppt-translator): update README
krlatjrgus Dec 8, 2025
f5d3da2
refactor(ppt-translator): update Program.cs for new tool and services
krlatjrgus Dec 8, 2025
679afe7
docs(ppt-translator): update README
krlatjrgus Dec 8, 2025
3ed485c
Merge pull request #207 from CDP1-Team4/ppt-translator-multiple-type
krlatjrgus Dec 8, 2025
c4b7cf3
docs(ppt-translator): update README
krlatjrgus Dec 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/GENERAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ labels: ''
assignees: ''

---

<!--
IF SUFFICIENT INFORMATION IS NOT PROVIDED VIA THE FOLLOWING TEMPLATE THE ISSUE MIGHT BE CLOSED WITHOUT FURTHER CONSIDERATION OR INVESTIGATION
-->
Expand Down
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/user-story---tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: user story & tasks
about: user story 및 하위 태스크 작성
title: 'Onedrive-download/User Story 1.2:'
labels: ''
assignees: ''

---

### 📬 User Story 2 (main title of user story)
#### 개발자로서, ~~
_부연 설명 및 참고 사항_

---
* **Tasks**
- [ ] task 내용
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -400,3 +400,4 @@ FodyWeavers.xsd
*.sln.iml

.DS_Store
.azure
54 changes: 54 additions & 0 deletions Dockerfile.ppt-translator
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# syntax=docker/dockerfile:1

# ================================
# 1) BUILD STAGE
# ================================
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0 AS build

# Copy shared library
COPY ./shared/McpSamples.Shared /source/shared/McpSamples.Shared

# Copy PPT Translator HybridApp
COPY ./ppt-translator/src/McpSamples.PptTranslator.HybridApp \
/source/ppt-translator/src/McpSamples.PptTranslator.HybridApp

WORKDIR /source/ppt-translator/src/McpSamples.PptTranslator.HybridApp

# Publish
RUN dotnet publish -c Release -o /app --self-contained false


# ================================
# 2) FINAL RUNTIME IMAGE (DEBIAN)
# ================================
FROM mcr.microsoft.com/dotnet/aspnet:9.0

WORKDIR /app

# ShapeCrawler + SkiaSharp dependencies
RUN apt-get update && apt-get install -y \
libfontconfig1 \
libfreetype6 \
libpng16-16 \
libx11-6 \
libxext6 \
libxrender1 \
uuid-dev \
libuuid1 \
libgdiplus \
libharfbuzz0b \
libicu72 \
&& rm -rf /var/lib/apt/lists/*

# Copy published app
COPY --from=build /app .

# Folder for file mounting
RUN mkdir -p /files && chmod -R 755 /files

# HTTP MCP endpoint
ENV ASPNETCORE_URLS=http://0.0.0.0:8080
ENV MCP_HTTP_PATH=/mcp

# STDI/O MCP + HTTP MCP 지원
ENTRYPOINT ["dotnet", "McpSamples.PptTranslator.HybridApp.dll"]
44 changes: 44 additions & 0 deletions Dockerfile.ppt-translator-azure
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Azure Container Registry compatible Dockerfile

###############################################
# 1) BUILD STAGE
###############################################
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build

COPY ./shared/McpSamples.Shared /source/shared/McpSamples.Shared
COPY ./ppt-translator/src/McpSamples.PptTranslator.HybridApp \
/source/ppt-translator/src/McpSamples.PptTranslator.HybridApp

WORKDIR /source/ppt-translator/src/McpSamples.PptTranslator.HybridApp

RUN dotnet publish -c Release -o /app --self-contained false


###############################################
# 2) FINAL STAGE (DEBIAN, not Alpine)
###############################################
FROM mcr.microsoft.com/dotnet/aspnet:9.0

WORKDIR /app

# ShapeCrawler + SkiaSharp deps (Debian)
RUN apt-get update && apt-get install -y \
libfontconfig1 \
libfreetype6 \
libpng16-16 \
libx11-6 \
libxext6 \
libxrender1 \
&& rm -rf /var/lib/apt/lists/*

# Create mount folder (Azure File Share - single /files mount)
RUN mkdir -p /files && chmod -R 777 /files

COPY --from=build /app .

ENV ASPNETCORE_URLS=http://0.0.0.0:8080
ENV MCP_HTTP_PATH=/mcp

EXPOSE 8080

ENTRYPOINT ["dotnet", "McpSamples.PptTranslator.HybridApp.dll"]
8 changes: 8 additions & 0 deletions ppt-translator/.vscode/mcp.http.container.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"servers": {
"ppt-translator-http-container": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
8 changes: 8 additions & 0 deletions ppt-translator/.vscode/mcp.http.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"servers": {
"ppt-translator": {
"type": "http",
"url": "http://localhost:5166/mcp"
}
}
}
15 changes: 15 additions & 0 deletions ppt-translator/.vscode/mcp.http.remote.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"inputs": [
{
"type": "promptString",
"id": "ppt-translator-azure-fqdn",
"description": "Azure Container App FQDN (from azd output: AZURE_RESOURCE_PPT_TRANSLATOR_FQDN)"
}
],
"servers": {
"ppt-translator-azure": {
"type": "http",
"url": "https://${input:ppt-translator-azure-fqdn}/mcp"
}
}
}
24 changes: 24 additions & 0 deletions ppt-translator/.vscode/mcp.stdio.container.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"inputs": [
{
"type": "promptString",
"id": "ppt-folder-path",
"description": "Absolute path of the folder that contains your PPT files"
}
],
"servers": {
"ppt-translator-stdio-container": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "OPENAI_API_KEY=${env:OPENAI_API_KEY}",
"-e", "HOST_MOUNT_PATH=${input:ppt-folder-path}",
"-v", "${input:ppt-folder-path}:/files",
"ppt-translator:latest"
]
}
}
}
23 changes: 23 additions & 0 deletions ppt-translator/.vscode/mcp.stdio.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"inputs": [
{
"type": "promptString",
"id": "consoleapp-project-path",
"description": "The absolute path to the console app project Directory"
}
],
"servers": {
"ppt-translator": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"${input:consoleapp-project-path}",
"--",
"-tc",
"-p"
]
}
}
}
52 changes: 52 additions & 0 deletions ppt-translator/McpPptTranslator.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpSamples.PptTranslator.HybridApp", "src\McpSamples.PptTranslator.HybridApp\McpSamples.PptTranslator.HybridApp.csproj", "{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpSamples.Shared", "..\shared\McpSamples.Shared\McpSamples.Shared.csproj", "{1F4DA2CA-2377-4800-A275-02F65E68CC2D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|x64.ActiveCfg = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|x64.Build.0 = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|x86.ActiveCfg = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Debug|x86.Build.0 = Debug|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|Any CPU.Build.0 = Release|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|x64.ActiveCfg = Release|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|x64.Build.0 = Release|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|x86.ActiveCfg = Release|Any CPU
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF}.Release|x86.Build.0 = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|x64.ActiveCfg = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|x64.Build.0 = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|x86.ActiveCfg = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Debug|x86.Build.0 = Debug|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|Any CPU.Build.0 = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|x64.ActiveCfg = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|x64.Build.0 = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|x86.ActiveCfg = Release|Any CPU
{1F4DA2CA-2377-4800-A275-02F65E68CC2D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4E3C401C-B16C-459D-8AFC-896CCF5DBACF} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal
Loading