4.5 KiB
4.5 KiB
Sanasto Wiki TODO
Authentication & Authorization
- Authentication system
- Sessions controller and views (login/logout)
- Password reset flow
- Rate limiting on login attempts
- Session management (remember me, session timeout)
- Invitation system
- Invitations controller and mailer
- Invitation token generation and validation
- Registration via invitation link
- Token expiry (14 days)
- Authorization & roles
- Role-based access control middleware
- Contributor permissions enforcement
- Reviewer permissions enforcement
- Admin permissions enforcement
Core Features
Search & Browse
- Full-text search across all languages (FTS5 integration)
- Filter by category (word, phrase, proper_name, title, reference, other)
- Alphabetical browsing per selected language
- Live search (AJAX updates without page reload)
Entry Management
- Create entry form with all language fields
- Edit entry form (contributors only)
- Delete entries (admin only, with confirmation)
- Bulk actions (select multiple, bulk edit/delete)
- Entry validation (at least one language required, category required)
Suggested Meanings
- Submit alternative translation form
- Review queue for reviewers
- Approve/reject workflow
- Display approved alternatives on entry view
- Notifications when suggestions are reviewed
Comments & Discussion
- Add comment form on entry view
- Edit/delete own comments
- Comment threading (optional: replies to comments)
- Comment notifications for entry contributors
History & Audit
- Entry version tracking (record all changes in
entry_versions) - View edit history on entry page
- Diff view showing what changed
- Revert to previous version (admin/reviewer only)
User Management
- Admin dashboard
- Send invitations by email
- Manage users (list, edit roles, deactivate)
- System statistics (users, entries, contributions)
- User profile page
- Edit name, email, password
- Set primary language preference
- View contribution history
- Personal statistics
Import/Export
- XLSX export of all entries
- CSV import for bulk entry creation
- CSV export as alternative to XLSX
- Import validation (check duplicates, validate data)
UI/UX Improvements
- Mobile-responsive design (translators use phones during services)
- Typography optimization (easy to read quickly)
- Visual distinction for verified vs unverified entries
- Keyboard shortcuts (navigate search results, quick edit)
- Loading states and progress indicators
- Error messages and validation feedback
- Toast notifications for actions (saved, deleted, etc.)
Performance & Infrastructure
- Database indexes review and optimization
- N+1 query prevention (check all controller actions)
- Caching strategy (page caching, fragment caching)
- Background jobs setup (Solid Queue for emails)
- Database backup strategy (Litestream configuration)
Testing
- Controller tests for all actions
- System tests for critical user flows
- Public browsing and search
- Contributor creates/edits entry
- Reviewer workflow
- Admin user management
- Integration tests for authentication flows
- Performance tests for search queries
Deployment
- Kamal configuration
- Production environment setup
- SSL certificate configuration
- Monitoring (error tracking, performance monitoring)
- Backup automation (Litestream to S3 or similar)
Future Considerations
- API endpoints (REST API for mobile app)
- PDF/print export for offline use
- Audio pronunciation recordings
- Mobile app (native or PWA)
- Offline mode with sync
- Additional languages (requires schema migration)
Completed
- Search input loses focus on filter change
- Mismatched enum syntax in models
- Replace hardcoded LANGUAGE_COLUMNS with dynamic query
- Improve fixture quality (resolved foreign key violations)
- XLSX download button for entries
- FTS5 integration (migration added)
- Database schema implementation (all models and migrations)
- Supported languages table with seed data