Files
myworkspace/LinkSyncServer/TODOs.txt
DavidSaylor fe4cbc3537 feat: add web UI, query engine, session management, and 20 E2E tests
- Web UI: login, dashboard, links CRUD, collections, API keys, admin pages
- Query engine: AND/OR/XOR with field filters, tag search, preview endpoint
- Session management: token expiry detection, 401 interceptor, expiry banner
- Links search: tags included, multi-word AND, query mode with set operations
- Collections: static/dynamic, query builder with preview, public tree view
- Save as Collection: convert search results (static) or query (dynamic)
- Dashboard stats: resilient loading with allSettled pattern
- Login page: redesigned with public collections tree view
- Bug fix: query executor None fields crash (notes/description/url/title)
- E2E tests: 20 Playwright tests covering all critical user flows
- All 104 tests passing (84 unit/integration + 20 E2E)
2026-05-22 07:46:53 -05:00

121 lines
3.8 KiB
Plaintext

# LinkSyncServer - Task List
## Project Setup
- [x] Create project directory structure
- [x] Write README.md
- [x] Write TODOs.txt
- [x] Write design.md
- [x] Write tasks.md
- [x] Write AGENTS.md
- [x] Create docker-compose.yml
- [x] Create Dockerfile
- [x] Create requirements.txt
- [x] Create pyproject.toml
- [x] Create .env.example
## Core Development
### Authentication & Authorization
- [x] User registration/login (with real DB integration)
- [x] JWT token generation and validation (from environment settings)
- [x] API key management (with real DB integration)
- [x] Admin user creation (auto-creates on first login)
- [x] Role-based access control (admin/user roles)
- [x] Session management (JWT-based)
### Data Models
- [x] User model (with to_dict serialization)
- [x] Link model with Firefox fields (Bookmark)
- [x] Collection model (static and dynamic)
- [x] Tag model
- [x] Audit log model
- [x] SQLAlchemy ORM integration (with proper relationships)
### Database Schema
- [x] PostgreSQL schema design (schema.sql)
- [x] Migrations setup (Alembic with autogenerate)
- [x] Full-text search indexes
- [x] Schema.sql for Docker volumes
### API Layer
- [x] Link CRUD endpoints (with real DB)
- [x] Collection CRUD endpoints (with real DB)
- [x] Auth endpoints (with real DB, bcrypt hashing)
- [x] Sync endpoint for extension (with real DB)
- [x] Query execution endpoint (with real DB)
- [x] Admin endpoints (user management, stats, audit log)
- [x] Tag management endpoints
- [x] OpenAPI/Swagger documentation
### Query Engine
- [x] Query parser (recursive descent with proper precedence)
- [x] AST representation (TERM, TERM_SET, FIELD:*, AND, OR, XOR)
- [x] Query executor (set operations, field filters)
- [x] Set operation logic (AND=intersection, OR=union, XOR=difference)
- [x] Field filtering (url, tag, title, description, path, id)
### Web Interface
- [x] Base template and layout
- [x] Index page with feature overview
- [x] Responsive CSS (mobile-first)
- [x] JavaScript API client (LinkSync object)
### Docker & Deployment
- [x] Dockerfile for application
- [x] docker-compose.yml
- [x] .env.example
- [x] Health checks
- [x] Graceful shutdown (lifespan events)
## Testing
- [x] Unit tests for models
- [x] Unit tests for query parser/executor (17 tests)
- [x] API endpoint tests (25 tests)
- [x] Authentication tests (8 tests)
- [x] Integration tests with TestClient
- [x] Test configuration (tests/conftest.py)
- [x] pytest.ini in pyproject.toml
- [x] All 84 tests passing
- [x] E2E tests with Playwright (20+ tests)
- [x] Session management tests
- [x] Search mode tests (simple, query, multi-word)
- [x] Collection query builder tests
- [x] Save as Collection tests
## Web Interface
- [x] Login page with session expiry handling
- [x] Dashboard with stats and quick actions
- [x] Links page with dual search modes
- [x] Collections page with query builder
- [x] API Keys page with CRUD
- [x] Admin page with user management
- [x] Save as Collection feature
- [x] Token expiry detection and redirect
- [x] Session expiry warnings
- [x] Graceful error handling
## Documentation
- [x] API reference (via /api/docs OpenAPI)
- [x] User guide (README.md)
- [x] Developer guide (AGENTS.md, design.md)
- [x] Deployment guide (README.md)
- [x] Query syntax reference (README.md)
- [x] UI/UX design documentation (design.md)
- [x] Implementation tasks (tasks.md)
## Security
- [x] Password hashing (bcrypt with cost factor 12)
- [x] CORS configuration (configurable origins)
- [x] Input validation/sanitization (Pydantic models)
- [x] Security headers (via FastAPI defaults)
## Future Enhancements
- [ ] Export/import functionality
- [ ] Bulk operations
- [ ] Email notifications
- [ ] Webhook support
- [ ] Mobile app API
- [ ] Rate limiting middleware
- [ ] Caching layer for query results
- [ ] Full-text search optimization