Overview
Context: The WebDAV sync client and server are fully implemented in nexanote/sync/. The SettingsScreen (app/lib/screens/settings_screen.dart) already has a form with fields for NAS URL, username, and password, and a "Sync now" button. Credentials are saved to SharedPreferences and sent to the backend via POST /sync/configure.
The gap: There's no way to test the WebDAV connection before saving credentials. If the URL or password is wrong, the user only finds out when they tap "Sync now" and the sync silently fails or produces a generic error.
What needs to be done
Goal
A user setting up NAS sync for the first time can tap "Test Connection" and get immediate feedback — success or a specific error — before saving their credentials.
Where to look
app/lib/screens/settings_screen.dart — the WebDAV settings section
app/lib/services/api_client.dart — configureSync(), triggerSync(), getSyncStatus()
Testing steps
Notes
This is a good first issue. It's a small, contained UI improvement with no backend changes required.
Related to: #17, #26
Overview
Context: The WebDAV sync client and server are fully implemented in
nexanote/sync/. TheSettingsScreen(app/lib/screens/settings_screen.dart) already has a form with fields for NAS URL, username, and password, and a "Sync now" button. Credentials are saved toSharedPreferencesand sent to the backend viaPOST /sync/configure.The gap: There's no way to test the WebDAV connection before saving credentials. If the URL or password is wrong, the user only finds out when they tap "Sync now" and the sync silently fails or produces a generic error.
What needs to be done
SettingsScreenApiClient.configureSync(serverUrl, username, password)followed immediately byApiClient.triggerSync(), then read the result fromgetSyncStatus()Goal
A user setting up NAS sync for the first time can tap "Test Connection" and get immediate feedback — success or a specific error — before saving their credentials.
Where to look
app/lib/screens/settings_screen.dart— the WebDAV settings sectionapp/lib/services/api_client.dart—configureSync(),triggerSync(),getSyncStatus()Testing steps
Notes
Related to: #17, #26