crisleo94
f091386974
feat: pdf reader
2026-06-03 22:46:38 -05:00
crisleo94
d9c66e68a6
fix: floating bookmarks
...
- update floating bookmarks
- fix search suggestions
- fix filters
2026-06-03 22:33:24 -05:00
crisleo94
6b4c0c43f8
feat: uv config other feats
...
- add uv configuration for the backend
- update frontend to make auth work
- add new auth endpoints
- add bookmars feat
- add reader feat
2026-06-03 22:06:01 -05:00
Marko (Hermes Implementer)
a7864bf5cd
Address Reid's PR #25 review comments
...
🔴 Blocking fixes:
- Add reader app migration (apps/reader/migrations/0001_initial.py)
- Remove duplicate ReadingSettings from apps.books to resolve model clash
with apps.reader.ReadingSettings (keep richer reader version)
- Redirect books serializers/views to use reader app's ReadingSettings
- Update frontend API endpoints to match main's backend routes:
/api/books/ebooks/{id}/toc/ (chapters)
/api/books/ebooks/{id}/content/?page=N (chapter content)
/api/books/ebooks/{id}/progress/ (GET/PATCH progress)
- Add DOMPurify sanitization for dangerouslySetInnerHTML (XSS fix)
🟡 Non-blocking fixes:
- Fix CSS typo: landascape -> landscape in reader.css
- Add null-safe fallback for book.title in ReadingPage
2026-05-29 06:37:58 +00:00
Marko (Hermes Implementer)
edac7cb08a
Merge branch 'main' into feature/customizable-mobile-reading-experience
...
Resolve merge conflicts:
- backend/apps/books/: Keep main's models (EBook, BookChapter, etc.)
- frontend/src/App.tsx: Keep /read/:id route + main's all routes
- web/ files: Accept deletion (content ported to frontend/)
2026-05-29 05:59:10 +00:00
Marko (Hermes Implementer)
74fdae61db
Resolve merge conflicts for PR #25 : customizable mobile reading experience
...
- Backend: Replace PR's Book-only models with main's full models
(EBook, BookChapter, DownloadRecord, ReadingProgress, ReadingSettings)
- Backend: Add reader app (ReadingSettings model, serializer, view, URL)
- Frontend: Port reader feature files from web/ to frontend/ (api, hooks,
components/reader/, pages/ReadingPage, types/reader, reader.css)
- Frontend: Add /read/:id route to App.tsx for chapter-based reading view
- All imports adjusted for frontend/src directory structure
2026-05-29 05:53:14 +00:00
Marko (Hermes Implementer)
b29ea8211c
feat: customizable mobile reading experience
...
- Backend: Chapter, ReadingProgress, ReadingSettings models
- Backend: Chapter API (TOC + content), progress tracking, settings CRUD
- Frontend: ReadingPage with chapter navigation
- Frontend: TableOfContents drawer
- Frontend: ReadingSettingsPanel (theme, font, size, orientation)
- Frontend: Custom hooks for settings, chapters, progress tracking
- CSS: Mobile-first reading view with sepia/dark/light/paper themes
- Route: /reader/:bookId reading view from book detail page
- Docs: 001-customizable-mobile-reading-experience.md
2026-05-29 02:55:36 +00:00
marko and reid
332b539880
Implement: US: Book Search and Discovery ( #13 )
...
Reviewed and merged by Reid (Hermes Reviewer)
Co-authored-by: crisleo-hermes <hermes@codescripters.org >
Co-committed-by: crisleo-hermes <hermes@codescripters.org >
2026-05-26 06:21:32 +00:00
marko and reid
f84a593c5d
Implement: Refactor: Consolidate Duplicate Backend and Frontend Implementations ( #11 )
...
Reviewed and merged by Reid (Hermes Reviewer)
Co-authored-by: crisleo-hermes <hermes@codescripters.org >
Co-committed-by: crisleo-hermes <hermes@codescripters.org >
2026-05-26 03:54:25 +00:00
Marko (Hermes Implementer)
3b5b301e42
feat: bookmarks and notes management
...
- Backend: Django REST Framework API with Bookmark and Note models
- ViewSets with user-scoped querysets and select_related for N+1 prevention
- Create/List/Detail/Update/Delete endpoints
- Batch delete operations
- Unique constraint on user+book+page for bookmarks
- IsOwner permission class for object-level access control
- Full serializer validation (page > 0, non-empty content, duplicate check)
- 30+ pytest-django tests covering CRUD, auth, filtering, edge cases
- Frontend: React TypeScript components
- AnnotationsContext with useReducer for state management
- BookmarkList, NoteList, AddAnnotationForm, AnnotationsDashboard
- Inline note editing with immediate save
- Batch delete support
- API client with JWT auto-refresh interceptors
- Paginated query hook for infinite scroll support
- Responsive CSS with loading/empty states
- Infrastructure: Django project with custom User model, JWT auth, CORS
- PostgreSQL database models with proper FK and indexes
- Django admin configuration for all models
2026-05-26 00:50:06 +00:00