Skip to content

Claude/voicenotes ai app qb6n s#1

Merged
landim32 merged 7 commits into
mainfrom
claude/voicenotes-ai-app-qb6nS
Feb 28, 2026
Merged

Claude/voicenotes ai app qb6n s#1
landim32 merged 7 commits into
mainfrom
claude/voicenotes-ai-app-qb6nS

Conversation

@landim32

Copy link
Copy Markdown
Owner

No description provided.

- Solution and .csproj with MAUI, SQLite, CommunityToolkit.Mvvm packages
- Models: Note.cs, Category.cs, NoteResult.cs
- Data: AppDatabase.cs with SQLite setup and default category seeding
- Services: INoteRepository/NoteRepository with CRUD + GetByCategoryAsync
- Helpers: PromptTemplates.cs with AI note interpretation prompt
- MauiProgram.cs with dependency injection configuration
- App shell, Android platform files, resource styles (dark mode ready)

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
- IAudioService/AudioService: recording via Plugin.Maui.Audio, saves to appdata/audio/{guid}.wav
- ISpeechToTextService/SpeechToTextService: OpenAI Whisper integration for audio transcription
- IAIService/AIService: GPT-4o integration for note interpretation with structured JSON response
- OpenAISettings helper class for API configuration
- MauiProgram.cs updated with full DI registration for all services

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
- NoteListViewModel: list/filter/delete notes, navigation to recording and detail
- RecordingViewModel: microphone permission, start/stop recording, transcribe + interpret flow
- NoteResultViewModel: display AI-generated result, edit before saving, IQueryAttributable
- NoteDetailViewModel: view/edit/delete existing notes
- All ViewModels registered as Transient in MauiProgram.cs DI

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
…Etapa 4)

Pages:
- NoteListPage: CollectionView with SwipeView, category filter chips, empty state, FAB
- RecordingPage: mic icon, start/stop button with color feedback, process button
- NoteResultPage: editable AI result with title/category/description, transcribed text preview
- NoteDetailPage: edit/delete existing notes

Infrastructure:
- InvertedBoolConverter, RecordButtonTextConverter, RecordButtonColorConverter
- AppShell with Shell routing for all pages
- App.xaml with global converters and ChipButton style
- All pages registered as Transient in MauiProgram.cs DI
- Dark mode friendly with AppThemeBinding throughout

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
Test project setup:
- xUnit 2.6.6 + Moq 4.20.72 targeting net8.0
- Linked source files pattern to avoid TFM incompatibility with MAUI
- Added to VoiceNotesAI.sln

Tests (28 test cases):
- NoteTests: default values, property assignment
- NoteResultTests: defaults, JSON serialization/deserialization, missing fields
- PromptTemplatesTests: placeholder replacement, categories, structure
- NoteRepositoryTests: CRUD with real SQLite (temp file), ordering, category filter
- AIServiceTests: mocked HttpClient, auth header, model param, error handling
- SpeechToTextServiceTests: file validation, transcription, auth, API errors

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
- Added appsettings.json as embedded resource for configuration
- Added Microsoft.Extensions.Configuration packages
- MauiProgram reads settings via IConfiguration.Bind()
- appsettings.json added to .gitignore (API key never committed)
- appsettings.example.json included as reference template

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
- Triggers on push to main/develop, PRs to main, and manual dispatch
- Sets up .NET 8, MAUI Android workload, and Java 17
- Creates appsettings.json from OPENAI_API_KEY secret
- Publishes signed APK as downloadable artifact

https://claude.ai/code/session_01KGo3AWg8hJHWwpLLCL2LTT
@landim32 landim32 merged commit 332b50b into main Feb 28, 2026
1 of 2 checks passed
@landim32 landim32 deleted the claude/voicenotes-ai-app-qb6nS branch February 28, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants