diff --git a/README.md b/README.md index f22657d..3fdc9a0 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ A self-hosted ebook management system built with Go, PostgreSQL, HTMX, and Tailw ## ✨ Features - **πŸ”’ Multi-User Authentication**: Complete user system with registration/login, JWT-based sessions, and bcrypt password hashing +- **πŸ‘€ User Profile Management**: Update profile information, username, email, password, and account deletion +- **βš™οΈ Scan Settings**: Configure scan frequency and auto-scan options per user - **βœ… Server-Side Validation**: Comprehensive input validation with detailed error messages - **πŸŒ™ Multiple Themes**: 11 beautiful themes including Tokyo Night, Dracula, Nord, Solarized Dark, Monokai, One Dark Pro, Material Dark, and Catppuccin variants (Mocha, Macchiato, FrappΓ©, Latte) with user preferences saved to database - **🎨 Theme Persistence**: User theme choices sync between browser and server @@ -59,7 +61,7 @@ The application uses Go HTML templates for server-side rendering with HTMX for d **✨ Enhanced Features:** - **Authentication**: Login/Register forms with multiple theme support at `/login` and `/register` - **JWT Management**: Secure token storage with localStorage and session persistence -- **Theme Switching**: 7 popular dark themes with dropdown selector and database persistence +- **Theme Switching**: 11 beautiful dark themes with dropdown selector and database persistence - **HTMX Integration**: Form submissions and dynamic updates without page reloads - **Input Validation**: Server-side validation with detailed error messages - **Multiple Themes**: Beautiful dark themes with smooth transitions @@ -73,12 +75,21 @@ The application uses Go HTML templates for server-side rendering with HTMX for d - `POST /api/auth/register` - Register new user - `POST /api/auth/login` - Login user (email or username) - `GET /api/auth/profile` - Get user profile (requires JWT) +- `PUT /api/auth/profile` - Update user profile (first_name, last_name) (requires JWT) - `PUT /api/auth/theme` - Update user theme preference (requires JWT) +- `PUT /api/user/username` - Update username (requires JWT) +- `PUT /api/user/email` - Update email (requires JWT) +- `PUT /api/user/password` - Update password (requires JWT) +- `DELETE /api/user/account` - Delete user account (requires JWT) ### Ebook Folders (Protected) - `POST /api/auth/ebook-folders` - Add an ebook folder for scanning - `GET /api/auth/ebook-folders` - List user's configured ebook folders -- `DELETE /api/auth/ebook-folders/:folderPath` - Remove an ebook folder +- `DELETE /api/auth/ebook-folders` - Remove an ebook folder + +### Library Settings (Protected) +- `PUT /api/library/scan-settings` - Update scan frequency and auto-scan settings +- `GET /api/library/scan-settings` - Get current scan settings ### Ebooks (Protected) - `GET /api/ebooks` - List ebooks @@ -160,12 +171,14 @@ Use the included Bruno collection in the `bruno/` directory for testing the API: ### Backend Improvements - **Server-Side Rendering**: Replaced static frontend with Go HTML templates -- **Theme System**: Database-backed user theme preferences with 7 popular dark themes +- **Theme System**: Database-backed user theme preferences with 11 beautiful dark themes - **HTMX Integration**: Dynamic interactions using HTMX for modern UX - **Enhanced Security**: JWT authentication with theme persistence +- **User Profile Management**: Full CRUD operations for user profiles, usernames, emails, passwords, and account deletion - **Multiple Folder Support**: Users can configure multiple ebook directories - **Smart Ebook Scanner**: Automatic discovery and metadata extraction from EPUB files - **Real-Time Monitoring**: File system watching for automatic ebook updates +- **Scan Settings**: User-configurable scan frequency and auto-scan options ### Frontend Redesign - **Beautiful Homepage**: Hero section with features showcase and modern design @@ -179,8 +192,8 @@ Use the included Bruno collection in the `bruno/` directory for testing the API: - **Go Templates**: Server-side rendering with template inheritance - **Tailwind CSS**: Utility-first CSS framework via CDN - **TypeScript Support**: Client-side scripting with TypeScript compilation -- **Database Schema**: Added user_ebook_folders table for multiple folder support -- **API Expansion**: New endpoints for folder management and scanner operations +- **Database Schema**: Added user names (first_name, last_name) and user_ebook_folders table for enhanced user profiles and multiple folder support +- **API Expansion**: New endpoints for user profile management, folder management, scanner operations, and scan settings - **Metadata Extraction**: EPUB parsing for rich ebook information - **File System Monitoring**: Real-time folder watching with fsnotify