Skip to content

Commit 6dc487f

Browse files
committed
chore: adjust wording in instruction and use lowercase for releases
1 parent b49d44b commit 6dc487f

File tree

8 files changed

+177
-374
lines changed

8 files changed

+177
-374
lines changed

.github/workflows/release.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,25 @@ jobs:
7070
- name: Create portable package (Linux)
7171
if: matrix.os == 'ubuntu-latest'
7272
run: |
73-
mkdir -p dist/Echo-Portable
74-
cp dist/Echo dist/Echo-Portable/
75-
chmod +x dist/Echo dist/Echo-Portable/Echo
76-
cp README.md dist/Echo-Portable/ 2>/dev/null || true
73+
mkdir -p dist/echo-portable
74+
cp dist/echo dist/echo-portable/
75+
chmod +x dist/echo dist/echo-portable/echo
76+
cp README.md dist/echo-portable/ 2>/dev/null || true
7777
7878
- name: Create portable package (Windows)
7979
if: matrix.os == 'windows-latest'
8080
run: |
81-
mkdir -p dist/Echo-Portable
82-
copy dist\Echo.exe dist\Echo-Portable\
83-
copy README.md dist\Echo-Portable\ 2>nul || echo README.md not found
81+
mkdir -p dist/echo-portable
82+
copy dist\echo.exe dist\echo-portable\
83+
copy README.md dist\echo-portable\ 2>nul || echo README.md not found
8484
8585
- name: Upload artifacts
8686
uses: actions/upload-artifact@v4
8787
with:
8888
name: build-${{ matrix.os }}
8989
path: |
90-
dist/Echo*
91-
dist/Echo-Portable/**
90+
dist/echo*
91+
dist/echo-portable/**
9292
retention-days: 1
9393

9494
release:

CLAUDE.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Simple, straightforward exam simulation platform for 10-year-old Chinese student
1010
- **Subjects**: English + Math (mixed exams)
1111
- **Timeline**: Full implementation in 2 weeks
1212
- **Scope**: Simple, focused, no unnecessary complexity
13-
- **Deployment**: Local development → Windows .exe via PyInstaller
13+
- **Deployment**: Local development → Windows echo.exe via PyInstaller
1414
- **Motivation**: A friend of the user asks me to develop this for his kid.
1515

1616
## Tech Stack
@@ -206,6 +206,8 @@ echo/
206206
│ ├── main.py # FastAPI app with all endpoints
207207
│ ├── models.py # Pydantic models for data validation
208208
│ ├── omni_client.py # Unified LLM client for all AI processing
209+
│ ├── config.py # Configuration management with AppData support
210+
│ ├── paths.py # Centralized path management for cross-platform
209211
│ ├── file_conversion.py # File processing and exam creation
210212
│ └── exam_logic.py # Session management and state tracking
211213
├── frontend/ # ✅ COMPLETED
@@ -222,6 +224,7 @@ echo/
222224
│ │ ├── QuickResponse.vue # Quick response questions
223225
│ │ ├── ReadAloud.vue # Read aloud practice
224226
│ │ ├── Results.vue # Exam results display
227+
│ │ ├── Settings.vue # Settings management
225228
│ │ └── Translation.vue # Translation questions
226229
│ ├── App.vue # Main application component
227230
│ ├── main.js # Application entry point
@@ -234,6 +237,8 @@ echo/
234237
├── audio_cache/ # Generated audio files cache
235238
│ ├── student_answers/ # Student audio recordings by session
236239
│ └── tts/ # Text-to-speech cache
240+
├── build.py # PyInstaller build script
241+
├── launch.py # Application launcher
237242
├── .env # Environment variables
238243
├── .gitignore # Git ignore rules
239244
├── .python-version # Python version specification
@@ -250,3 +255,11 @@ echo/
250255
- Don't ever return mock data. If there's an error, let it expose naturally instead of pretending that everything is working all right.
251256
- Always check API_DOCUMENTATION.md when implementing frontend services.
252257
- try-except blocks are **FORBIDDEN**.
258+
259+
## todos
260+
261+
- complete README.md
262+
- update frontend/API_DOCUMENTATION.md
263+
- enhance file-conversion prompt with examples
264+
- user-friendly guide for fresh start
265+
- wording

backend/file_conversion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ def _generate_yaml_content(self, original_filenames: List[str], questions: List[
176176
"tts": "For read aloud questions, you should read displayed English sentences aloud"
177177
},
178178
"multiple_choice": {
179-
"text": "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D.",
180-
"tts": "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D"
179+
"text": "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D.",
180+
"tts": "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D"
181181
},
182182
"quick_response": {
183183
"text": "For quick response questions, you will hear a question and respond by speaking. Listen carefully and answer clearly.",

build.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def build_executable():
121121
return False
122122

123123
# Check if executable was created
124-
executable_path = dist_dir / "Echo.exe" if os.name == 'nt' else dist_dir / "Echo"
124+
executable_path = dist_dir / "echo.exe" if os.name == 'nt' else dist_dir / "echo"
125125
if not executable_path.exists():
126126
print("❌ Executable not created")
127127
return False
@@ -134,7 +134,7 @@ def create_portable_package():
134134
print("\nCreating portable package...")
135135

136136
dist_dir = Path("dist")
137-
portable_dir = dist_dir / "Echo-Portable"
137+
portable_dir = dist_dir / "echo-portable"
138138

139139
# Clean previous portable package
140140
if portable_dir.exists():
@@ -143,7 +143,7 @@ def create_portable_package():
143143
portable_dir.mkdir(parents=True)
144144

145145
# Copy executable
146-
executable_name = "Echo.exe" if os.name == 'nt' else "Echo"
146+
executable_name = "echo.exe" if os.name == 'nt' else "echo"
147147
executable_path = dist_dir / executable_name
148148
shutil.copy2(executable_path, portable_dir / executable_name)
149149

@@ -155,11 +155,11 @@ def create_portable_package():
155155

156156
# Create a simple batch file for Windows
157157
if os.name == 'nt':
158-
batch_file = portable_dir / "Start Echo.bat"
158+
batch_file = portable_dir / "Start echo.bat"
159159
with open(batch_file, 'w') as f:
160160
f.write('@echo off\n')
161-
f.write('echo Starting Echo...\n')
162-
f.write('start "" "%~dp0Echo.exe"\n')
161+
f.write('echo Starting echo...\n')
162+
f.write('start "" "%~dp0echo.exe"\n')
163163

164164
print(f"✅ Portable package created: {portable_dir}")
165165
return True
@@ -193,8 +193,8 @@ def main():
193193
print("🎉 Build completed successfully!")
194194
print("="*50)
195195
print("Output files:")
196-
print(" • Executable: dist/Echo.exe")
197-
print(" • Portable package: dist/Echo-Portable/")
196+
print(" • Executable: dist/echo.exe" if os.name == 'nt' else " • Executable: dist/echo")
197+
print(" • Portable package: dist/echo-Portable/")
198198
print("\nTo test the application:")
199199
print(" 1. Run the executable directly")
200200
print(" 2. Or extract the portable package and run from there")

echo.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ exe = EXE(
7979
a.zipfiles,
8080
a.datas,
8181
[],
82-
name='Echo',
82+
name='echo',
8383
debug=False,
8484
bootloader_ignore_signals=False,
8585
strip=False,

exams/exam-2098.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ exam:
88
tts: "For read aloud questions, you should read displayed English sentences aloud"
99

1010
multiple_choice:
11-
text: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D."
12-
tts: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D"
11+
text: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D."
12+
tts: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D"
1313

1414
quick_response:
1515
text: "For quick response questions, you will hear a question and respond by speaking. Listen carefully and answer clearly."

exams/exam-2099.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ exam:
88
tts: "For read aloud questions, you should read displayed English sentences aloud"
99

1010
multiple_choice:
11-
text: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D."
12-
tts: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C or D"
11+
text: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D."
12+
tts: "For multiple choice questions, read the question carefully and choose the best answer from A, B, C and D"
1313

1414
quick_response:
1515
text: "For quick response questions, you will hear a question and respond by speaking. Listen carefully and answer clearly."

0 commit comments

Comments
 (0)