How nickpanov/purinina works
Purinina is a Tauri desktop app for managing projects, with a SvelteKit interface. The visible workflow is to choose a source folder, create and persist a project, then navigate to its project route; the home screen also checks for an app-local directory. Project-list controls retrieve or remove projects, while shared UI renders alerts and confirmation dialogs. The README describes only a starter template, so the product interpretation comes from the sampled app source. Project-detail behavior and several UI modules are present in the tree but not inspected here; their connections are omitted where evidence is lacking.
Main entry points: ProjectManager.svelte.ts Project manager · project-list-item.svelte Project item · message-layer.svelte Message layer · +page.svelte Home screen
Components 16
Project interface
- Home screen
src/routes/+page.svelte - Project list
src/components/layout/projects.svelte - Project item
src/components/layout/project-list-item.svelte - Project detail
src/routes/project/[ID]/+page.svelte - File table
src/components/filetable.svelte
Project management
- Project manager
src/modules/ProjectManager.svelte.ts - Global context
src/modules/GlobalContext.svelte.ts
Shared feedback UI
- Toast and dialog state
src/modules/toaster.svelte.ts - Message layer
src/components/message-layer.svelte - Alert
src/components/alert.svelte - Confirmation dialog
src/components/dialog.svelte
Desktop runtime
- Project store
- Folder picker
- App-local filesystem
- Tauri runtime
src-tauri/src/lib.rs
Other components
- User
Connections 17
- User → Home screen: opens
- Home screen → Project manager: creates project
src/routes/+page.svelte - Home screen → App-local filesystem: checks directory
src/routes/+page.svelte - Project manager → Folder picker: selects folder
src/modules/ProjectManager.svelte.ts - Project manager → Project store: loads and saves
src/modules/ProjectManager.svelte.ts - Project manager → Global context: updates list
src/modules/ProjectManager.svelte.ts - Project manager → Toast and dialog state: reports results
src/modules/ProjectManager.svelte.ts - Project manager → Project detail: navigates to
src/modules/ProjectManager.svelte.ts - Project list → Project item: renders
src/components/layout/projects.svelte - Project item → Project manager: gets or removes
src/components/layout/project-list-item.svelte - Project item → Project detail: links to
src/components/layout/project-list-item.svelte - Project item → Toast and dialog state: reports deletion
src/components/layout/project-list-item.svelte - Message layer → Toast and dialog state: reads messages
src/components/message-layer.svelte - Message layer → Alert: renders alerts
src/components/message-layer.svelte - Message layer → Confirmation dialog: renders dialogs
src/components/message-layer.svelte - Tauri runtime → Project store: registers plugin
src-tauri/src/lib.rs - Tauri runtime → Folder picker: registers plugin
src-tauri/src/lib.rs