Commit Graph
39 Commits
Author SHA1 Message Date
john-okeefe 2da9245bfc Update homepage: remove create account, hide login if logged in 2026-01-23 17:54:56 -05:00
john-okeefe adeec3d64c Update admin templates: remove scanner link/card, fix profile inputs, reorder library sections 2026-01-23 17:52:10 -05:00
john-okeefe 335c63a494 Update main.go to use templ components for routing 2026-01-23 17:47:36 -05:00
john-okeefe e5a2b74be6 Add templ generation to Dockerfile 2026-01-23 17:44:49 -05:00
john-okeefe adaa425136 Update dependencies and admin template 2026-01-23 17:43:04 -05:00
john-okeefe a530df895f Remove generated .templ.go files from git and add to .gitignore 2026-01-23 17:41:57 -05:00
john-okeefe 5f5870b95d Migrate to templ: Convert all HTML templates to type-safe templ components
- Add templ dependency for type-safe HTML rendering
- Convert index.html, login.html, register.html, dashboard.html, admin.html, admin_profile.html, admin_library.html to .templ files
- Generate Go code with templ generate for compile-time safety
- Update server routes to use templ components with proper rendering
- Refactor JavaScript in dashboard to avoid backtick parsing conflicts
- Delete old HTML template files
- Clean up project by removing unnecessary files and binaries
2026-01-23 16:33:08 -05:00
john-okeefe fcc9b0f0b3 fix: resolve user registration error by fixing database queries
- Update CreateUser query to explicitly select only existing columns
- Update all user SELECT queries to explicitly select columns to avoid scan_frequency_minutes column issues
- Add GetUserForLogin query that includes password_hash for authentication
- Update login handler to use GetUserForLogin instead of GetUserByEmailOrUsername
- This prevents errors when migration hasn't been applied yet, allowing user registration to work
2026-01-23 11:06:56 -05:00
john-okeefe a5e96ddb0b feat: restructure admin dashboard into separate pages
- Convert admin dashboard from single 2-column page to multi-page interface
- Create main admin dashboard (/admin) as overview with navigation sidebar
- Add separate profile settings page (/admin/profile) for user account management
- Add separate library management page (/admin/library) combining folder and scan settings
- Implement sidebar navigation pattern similar to Gitea, Jellyfin, Audiobookshelf
- Add dedicated templates: admin.html, admin_profile.html, admin_library.html
- Include quick actions and statistics on main dashboard
- Improve UI with better organization and visual hierarchy
- Maintain consistent navigation and theme across all admin pages
- Add folder management, scan settings, and library statistics to library page
2026-01-23 09:44:47 -05:00
john-okeefe 11621462f2 feat: create admin dashboard with user preferences and library settings
- Add admin dashboard at /admin route consolidating all user settings
- Move user preferences (username, email, password, theme) from separate page
- Add ebook library preferences section with folder management
- Add scan settings (frequency and auto-scan toggle) with database persistence
- Create database migration for scan_frequency_minutes and auto_scan_enabled columns
- Add API endpoints for scan settings management:
  - PUT /api/library/scan-settings - Update scan preferences
  - GET /api/library/scan-settings - Get current scan settings
- Update dashboard navigation to link to admin dashboard
- Remove old preferences.html template (functionality moved to admin)
- Create Bruno API testing files for library endpoints
- Add real-time folder loading and management in admin interface
- Implement scan settings persistence and retrieval from database
2026-01-23 09:38:40 -05:00
john-okeefe 2dba1d6eb9 feat: add user preferences dashboard
- Add /preferences route and preferences.html template for user settings
- Implement username, email, password, and theme update functionality
- Add account deletion feature with confirmation
- Add navigation link to preferences from dashboard
- Create API endpoints:
  - PUT /api/user/username - Update username
  - PUT /api/user/email - Update email address
  - PUT /api/user/password - Change password with verification
  - DELETE /api/user/account - Delete user account
- Add database queries for user updates and account deletion
- Create Bruno API testing files for all user preference endpoints
- Add proper validation, error handling, and security checks
2026-01-23 09:30:15 -05:00
john-okeefe c29183a14f fix: minor formatting fix in Bruno ebook rating file
- Remove extra space in 'body: json' declaration
- Ensure file ends with proper newline
2026-01-23 09:22:34 -05:00
john-okeefe b9edb92af2 refactor: rename bruno/auth folder to bruno/user
The auth folder now contains user management endpoints beyond just authentication:
- User registration/login (auth)
- Profile management (user)
- Theme settings (user preferences)
- Ebook folder management (user settings)

Renaming to 'user' better reflects the expanded scope covering user accounts, preferences, and settings management.
2026-01-23 09:11:42 -05:00
john-okeefe c3769fe7f1 refactor: rename project back from shelf to bookmann
- Change Go module name back from 'shelf' to 'bookmann'
- Update all import paths back to 'bookmann' module
- Update README.md project name back to 'Bookmann'
- Update docker-compose.yml container names back to 'bookmann' and 'bookmann_db'
- Regenerate database code with restored module imports
2026-01-23 09:08:59 -05:00
john-okeefe 4318f8624b refactor: restructure project from bookmann to shelf
- Rename project from 'bookmann' to 'shelf'
- Move all backend/ contents to root level (flatten structure)
- Update Go module name from 'bookmann' to 'shelf'
- Update all import paths to use new 'shelf' module
- Update Dockerfile to work without backend/ subdirectory
- Update docker-compose.yml to use new structure and rename containers
- Update .gitignore for new file paths
- Update README.md with new project name and structure
- Regenerate database code with new module imports
2026-01-23 09:08:04 -05:00
john-okeefe 152ed27200 docs: update README with multiple folder support and scanner functionality
- Add multiple folder support and smart scanner to features list
- Document new API endpoints for folder management and scanner operations
- Update project structure to include services directory
- Add comprehensive ebook scanner section with usage instructions
- Update recent enhancements with latest backend improvements
- Include real-time monitoring and metadata extraction details
2026-01-23 09:04:59 -05:00
john-okeefe 6c33ee4364 feat: add Bruno API testing files for multiple folder functionality
- Add auth/Add Ebook Folder.bru - test adding folders to user account
- Add auth/Get Ebook Folders.bru - test listing user's folders
- Add auth/Delete Ebook Folder.bru - test removing folders
- Add scanner/Scan Ebooks.bru - test manual scanning of multiple folders
- Add scanner/Start Scanner.bru - test starting folder monitoring
- Add scanner/Stop Scanner.bru - test stopping folder monitoring
- Update all scanner endpoints to use folder_paths array format
2026-01-23 09:03:15 -05:00
john-okeefe 7628bf20f9 feat: update API routes for multiple folder support
- Add routes for ebook folder management in auth group
- Add routes for scanner operations (scan, start, stop)
- Update route handlers to use new multiple folder endpoints
- Maintain JWT authentication for protected routes
2026-01-23 09:03:08 -05:00
john-okeefe 9fc5d3baea feat: implement multiple folder ebook scanner and API handlers
- Create EbookScanner service with multiple folder support
- Update scanner to handle array of folder paths instead of single path
- Add EPUB metadata extraction for rich ebook information
- Implement folder monitoring with fsnotify for real-time updates
- Add API endpoints for folder management:
  - POST /api/auth/ebook-folders (add folder)
  - GET /api/auth/ebook-folders (list folders)
  - DELETE /api/auth/ebook-folders/:folderPath (remove folder)
- Update scanner endpoints to accept folder_paths array
- Add go-epub and fsnotify dependencies for metadata extraction and file watching
2026-01-23 09:02:53 -05:00
john-okeefe 9019e524e0 feat: update database queries for multiple folder management
- Replace single folder queries with multiple folder operations
- Add AddUserEbookFolder, GetUserEbookFolders, DeleteUserEbookFolder queries
- Regenerate Go code with sqlc
- Update models to include UserEbookFolders struct
2026-01-23 09:02:47 -05:00
john-okeefe b5ec84c901 feat: add database support for multiple user ebook folders
- Add ebook_folder_path column to users table (migration 004)
- Create user_ebook_folders table for multiple folders per user (migration 005)
- Remove old ebook_folder_path column from users table (migration 006)
- Add unique constraint to prevent duplicate folder paths per user
2026-01-23 09:02:35 -05:00
john-okeefe 3d325c71a2 Add dashboard for authenticated users with JWT check and static files 2026-01-22 21:13:31 -05:00
john-okeefe e5ca12117c added ratings and updated ebook struct 2026-01-22 20:54:39 -05:00
john-okeefe e32fda6b65 Add user theme support and migrate frontend to HTMX templates
- Add theme column to users table with default 'tokyo-night'
- Update all user queries to include theme field
- Add ListUsers and UpdateUserTheme database queries
- Update auth handlers to support HTMX form submissions and JSON API
- Add ListUsers API endpoint
- Replace embedded static files with Go templates
- Update Dockerfile to copy templates directory
- Redesign index.html with inline styles and HTMX forms
- Update Bruno API testing requests for auth endpoints
2026-01-22 18:38:06 -05:00
john-okeefe 2399e892a6 Redesign homepage with hero section, features, and improved auth forms 2026-01-22 17:21:49 -05:00
john-okeefe 9efae205a2 Rename containers: backend -> bookmann, db -> bookmann_db 2026-01-22 17:19:57 -05:00
john-okeefe 1239f6033c Add Catppuccin themes: Mocha, Macchiato, Frappé, Latte variants 2026-01-22 17:05:17 -05:00
john-okeefe e34906a187 Update Bruno requests: add Update Theme endpoint and include theme in responses 2026-01-22 17:04:07 -05:00
john-okeefe 34cf8cf3d3 Update README with current project state: Go templates + HTMX + multiple themes 2026-01-22 17:03:21 -05:00
john-okeefe d98a0675e1 Complete project cleanup: remove unneeded files, organize static assets, update .gitignore 2026-01-22 14:08:57 -05:00
john-okeefe 61f772b976 Update .gitignore to ignore generated assets and binaries 2026-01-22 14:08:23 -05:00
john-okeefe 90ea12f6f4 updated documentation license 2026-01-22 10:13:19 -05:00
john-okeefe 4345b7bcdd First Commit. AI Generated App. 2026-01-21 21:17:22 -05:00
john-okeefe ea70d85f9d docs: Update remaining application name references from 'ebook reader' to 'Bookmann'
- Updated COMPLETE_DOCUMENTATION.md feature descriptions
- Updated user journey reference from 'ebook library' to 'ebook collection'
- Updated all frontend page titles and headers
- Updated Bruno API collection and workspace names
- All references now consistently use 'Bookmann' as the application name
2026-01-21 20:03:30 -05:00
john-okeefe 9abce9c41d docs: Update all references from 'Ebook Reader and Library Manager' to 'Bookmann' in documentation 2026-01-21 20:02:01 -05:00
john-okeefe 55c42f1f99 feat: Add comprehensive backend validation, toast notifications, and Tokyo Night theme
- Backend: Add server-side validation with go-playground/validator/v10
- Frontend: Add toast notifications for API errors with @zerodevx/svelte-toast
- UI: Complete Tokyo Night theme redesign with modern animations
- Docs: Update COMPLETE_DOCUMENTATION.md and README.md with all enhancements
- Validation: Email format, password strength, and input sanitization
- UX: Real-time error feedback, loading states, and responsive design
2026-01-21 20:01:18 -05:00
john-okeefe 7448dfff30 added echo framework and created a hello world 2026-01-14 20:00:07 -05:00
john-okeefe 3405160813 removed goaccepted and added svelte 2026-01-14 19:51:05 -05:00
john-okeefe c0bb537bef Initial commit 2026-01-14 19:44:35 -05:00