Commit Graph

18 Commits

Author SHA1 Message Date
acd14e635b Add automatic GIF preview generation for videos
Backend changes:
- Add ffmpeg to Docker image for video processing
- Create gifGenerator utility with high-quality palette-based GIF generation
- Update Prisma schema: Add GIF to MediaKind enum
- Auto-generate 300px GIF preview (10fps, 3sec) on video upload
- Add POST /api/terms/:id/media/:mediaId/regenerate-gif endpoint for admins
- Update delete endpoint to cascade delete GIFs when video is deleted
- GIF generation uses ffmpeg with palette optimization for quality

Frontend changes:
- Update MediaKind enum to include GIF
- Display animated GIF previews in dictionary word cards
- Show 'No preview' icon for videos without GIF
- Add 'Regenerate GIF' button in admin video upload UI
- Display both video and GIF side-by-side in admin panel
- Visual indicator when GIF preview is available

Features:
- Automatic GIF generation on video upload (non-blocking)
- Manual GIF regeneration from admin panel
- GIF preview in dictionary listing for better UX
- Fallback to video icon when no GIF available
- Proper cleanup: GIFs deleted when parent video is deleted

Technical details:
- GIFs stored in /uploads/gifs/
- Uses two-pass ffmpeg encoding with palette for quality
- Configurable fps, width, duration, start time
- Error handling: video upload succeeds even if GIF fails

Co-Authored-By: Auggie
2026-01-18 17:51:08 +01:00
1cff7740a8 Fix WordDetailModal: Complete localhost:3000 hardcoding cleanup
- Fixed API_URL in WordDetailModal.tsx to use explicit undefined check
- This completes the Docker deployment fix for all frontend components
- Word info modal now works correctly in Docker via nginx proxy
- All 4 locations now use consistent environment-aware URL pattern:
  * api.ts (API client)
  * videoPlaylist.ts (video URLs)
  * VideoUpload.tsx (admin video upload)
  * WordDetailModal.tsx (word info modal)

Fixes: Word info click feature in Docker deployment

Co-Authored-By: Auggie
2026-01-18 17:32:55 +01:00
030491fc5a Fix Docker deployment: Replace hardcoded localhost:3000 with environment-aware URLs
- Fixed API client to respect empty VITE_API_URL for same-origin requests
- Fixed video URL construction in videoPlaylist.ts
- Fixed video URL construction in VideoUpload.tsx
- All three files now use explicit undefined check instead of || operator
- Enables proper same-origin requests via nginx proxy in Docker

Co-Authored-By: Auggie
2026-01-18 17:26:44 +01:00
22fb4b9b20 Add Help page with markdown support and routing 2026-01-18 15:52:46 +01:00
eab5303c0f Fix bugs and add features to Znakopis document management
- Fix API endpoint for creating pages (documents/:id/pages)
- Fix sentence deletion functionality
- Add CreateDocumentDialog component for better UX
- Improve document and sentence management UI
- Update seed data and backend routes
- Clean up documentation files (remove videos.md, videosentence.md)
- Add comprehensive bug tracking in fixbugsaddfeatures.md
2026-01-18 15:21:23 +01:00
d3c90ea447 Add video sentence feature with playlist functionality 2026-01-18 14:56:28 +01:00
7598f26c9c Add admin interface for term management with video upload support 2026-01-17 19:31:39 +01:00
85ae57b95b Refactor word type colors into centralized utility
- Extract word type color logic into shared wordTypeColors.ts utility
- Update TokenTray to use centralized color utility
- Remove duplicate color logic from WordCard and SortableToken
- Add color legend to Layout header for better UX
- Simplify Znakopis page component
2026-01-17 19:11:45 +01:00
8bdd4f6368 Add Znakopis feature with document and sentence management
- Implemented Znakopis page with document and sentence CRUD operations
- Added backend routes for documents and sentences
- Created UI components for sentence editing and display
- Added sentence store for state management
- Integrated select component for document selection
- Updated README with Phase 3 completion status
- Removed obsolete fix-colors.md file
2026-01-17 18:50:53 +01:00
2b768d4c13 Fix color contrast issues in WordCard and WordDetailModal components 2026-01-17 18:35:11 +01:00
65d117cf16 UI improvements: update favicon, reorder WordCard buttons, style logo, and refine color scheme
- Add custom favicon.ico to replace default Vite icon
- Reorder WordCard action buttons (Dodaj on left, Info on right)
- Add white circular background to sidebar logo for better visibility
- Update CSS color variables to use proper indigo color scheme with HSL values
2026-01-17 18:24:37 +01:00
c6d6c18466 Add dictionary feature with term management and UI components
- Implement backend API for term CRUD operations
- Add frontend dictionary page with search and filtering
- Integrate shadcn/ui components (Dialog)
- Create term management UI with add/edit/delete functionality
- Update database seed with initial terms
- Add API client for term operations
- Complete Phase 2 of development plan
2026-01-17 18:15:01 +01:00
bbf143a3b4 Update sidebar design with logo and improved color scheme 2026-01-17 17:37:15 +01:00
d20be4f868 Update frontend UI with improved layout and styling
- Enhanced homepage with modern design and better visual hierarchy
- Improved login page with centered layout and better UX
- Updated admin page with cleaner interface
- Refined sidebar navigation and layout components
- Updated Tailwind config and global styles
- Fixed protected route component
2026-01-17 15:18:08 +01:00
3275bc4a4f Add authentication system and admin panel
- Implement JWT-based authentication with login/logout
- Add user management routes and middleware
- Create admin panel for managing words and categories
- Add authentication store and API client
- Update database schema with User model
- Configure CORS and authentication middleware
- Add login page and protected routes
2026-01-17 14:30:22 +01:00
a11e2acb23 Initial project setup: monorepo structure with frontend and backend
- Set up pnpm workspace with frontend (React + Vite) and backend (Express + Prisma)
- Configure TypeScript, ESLint, and Prettier
- Add Prisma schema for database models (User, Course, Lesson, Progress, etc.)
- Create basic frontend structure with Tailwind CSS and shadcn/ui
- Add environment configuration files
- Update README with project overview and setup instructions
- Complete Phase 0: Project initialization
2026-01-17 11:58:26 +01:00
e38194a44c Add comprehensive project documentation
- Add detailed implementation plan (main-plan.md)
- Add professional README with project overview
- Include original specifications and screenshots
- Document technology stack and architecture
- Provide setup and deployment instructions
2026-01-17 11:42:15 +01:00
5e652ed519 Initial commit 2026-01-17 11:16:09 +01:00