# NextSnap File Locations (docker1:~/nextsnap/) - `app/services/tech_users.py` - Tech user JSON CRUD (create/verify_pin/list/update/delete/reset_nc_password) - `app/services/nextcloud.py` - Nextcloud WebDAV/OCS client (incl. ocs_set_password) - `app/routes/auth.py` - Dual login: `/api/auth/login` (admin), `/api/auth/login/tech` (tech) - `app/routes/admin.py` - Admin API + tech user CRUD endpoints - `app/routes/views.py` - Page routes with admin guard (tech users → /capture) - `app/templates/login.html` - Tabbed login (Tech/Admin) - `app/templates/admin.html` - Tech user management UI - `app/static/js/auth.js` - Dual login form logic - `app/static/js/admin.js` - Tech user list + detail modal - `app/static/js/sync.js` - Upload sync engine - `app/static/js/storage.js` - IndexedDB wrapper (Dexie) - `app/static/sw.js` - Service worker - `app/templates/queue.html` - Upload queue page (inline JS) - `app/templates/capture.html` - Camera/capture page (inline JS) - `app/templates/browser.html` - File browser with gallery viewer - `app/static/js/filebrowser.js` - File browser + gallery logic