Initial commit: LinkSyncServer and LinkSyncExtension projects with complete documentation, models, API endpoints, tests, and extension implementation
This commit is contained in:
200
LinkSyncServer/tasks.md
Normal file
200
LinkSyncServer/tasks.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# LinkSyncServer - Implementation Tasks
|
||||
|
||||
## Phase 1: Project Setup
|
||||
|
||||
### Setup Tasks
|
||||
- [ ] Initialize git repository
|
||||
- [ ] Configure git remote (gitea.blabber1565.com)
|
||||
- [ ] Create directory structure
|
||||
- [ ] Write README.md
|
||||
- [ ] Write TODOs.txt
|
||||
- [ ] Write design.md
|
||||
- [ ] Write tasks.md
|
||||
- [ ] Write AGENTS.md
|
||||
- [ ] Create docker-compose.yml
|
||||
- [ ] Create Dockerfile
|
||||
- [ ] Create requirements.txt
|
||||
- [ ] Create pyproject.toml
|
||||
- [ ] Create .env.example
|
||||
|
||||
## Phase 2: Core Application
|
||||
|
||||
### App Configuration
|
||||
- [ ] Create app.py with FastAPI setup
|
||||
- [ ] Configure CORS
|
||||
- [ ] Set up error handlers
|
||||
- [ ] Create health check endpoint
|
||||
- [ ] Create config/settings.py
|
||||
|
||||
### Database Setup
|
||||
- [ ] Create models/base.py
|
||||
- [ ] Create models/user.py
|
||||
- [ ] Create models/link.py
|
||||
- [ ] Create models/collection.py
|
||||
- [ ] Create models/tag.py
|
||||
- [ ] Create models/audit_log.py
|
||||
- [ ] Configure SQLAlchemy engine
|
||||
- [ ] Create schema.sql
|
||||
- [ ] Set up Alembic migrations
|
||||
|
||||
### Authentication
|
||||
- [ ] Create models for users/roles
|
||||
- [ ] Implement password hashing (bcrypt)
|
||||
- [ ] Create JWT token utilities
|
||||
- [ ] Implement login endpoint
|
||||
- [ ] Implement register endpoint
|
||||
- [ ] Implement logout endpoint
|
||||
- [ ] Create API key model and endpoints
|
||||
- [ ] Set up session management
|
||||
|
||||
## Phase 3: API Endpoints
|
||||
|
||||
### Auth Endpoints
|
||||
- [ ] POST /api/auth/register/
|
||||
- [ ] POST /api/auth/login/
|
||||
- [ ] POST /api/auth/logout/
|
||||
- [ ] POST /api/auth/api-key/
|
||||
- [ ] DELETE /api/auth/api-key/{key_id}/
|
||||
|
||||
### Link Endpoints
|
||||
- [ ] GET /api/links/ - list with pagination and filters
|
||||
- [ ] GET /api/links/{id}/ - single link details
|
||||
- [ ] POST /api/links/ - create link
|
||||
- [ ] PUT /api/links/{id}/ - update link
|
||||
- [ ] DELETE /api/links/{id}/ - delete link
|
||||
- [ ] POST /api/links/{id}/tags/ - add tags
|
||||
- [ ] DELETE /api/links/{id}/tags/ - remove tags
|
||||
|
||||
### Collection Endpoints
|
||||
- [ ] GET /api/collections/ - list collections
|
||||
- [ ] GET /api/collections/{id}/ - collection details
|
||||
- [ ] POST /api/collections/ - create collection
|
||||
- [ ] PUT /api/collections/{id}/ - update collection
|
||||
- [ ] DELETE /api/collections/{id}/ - delete collection
|
||||
- [ ] POST /api/collections/{id}/refresh/ - refresh dynamic collection
|
||||
|
||||
### Query Endpoints
|
||||
- [ ] POST /api/queries/parse/ - parse and validate query
|
||||
- [ ] POST /api/queries/execute/ - execute query and return results
|
||||
- [ ] GET /api/queries/{id}/ - get saved query
|
||||
- [ ] PUT /api/queries/{id}/ - update saved query
|
||||
- [ ] DELETE /api/queries/{id}/ - delete query
|
||||
|
||||
### Sync Endpoint
|
||||
- [ ] POST /api/sync/ - sync with browser extension
|
||||
- [ ] Implement sync mode logic
|
||||
- [ ] Handle conflict resolution
|
||||
- [ ] Process deletions
|
||||
|
||||
### Admin Endpoints
|
||||
- [ ] GET /api/admin/users/ - list all users
|
||||
- [ ] POST /api/admin/users/ - create user
|
||||
- [ ] PUT /api/admin/users/{id}/ - update user
|
||||
- [ ] DELETE /api/admin/users/{id}/ - delete user
|
||||
- [ ] PUT /api/admin/settings/ - update settings
|
||||
|
||||
## Phase 4: Query Engine
|
||||
|
||||
### Parser
|
||||
- [ ] Create tokenization logic
|
||||
- [ ] Implement AST node classes
|
||||
- [ ] Build parser with precedence rules
|
||||
- [ ] Validate AST
|
||||
- [ ] Serialize AST to JSON
|
||||
|
||||
### Executor
|
||||
- [ ] Implement TermSet executor
|
||||
- [ ] Implement TagFilter executor
|
||||
- [ ] Implement FieldFilter executor
|
||||
- [ ] Implement AND/OR/XOR operators
|
||||
- [ ] Build SQL from AST
|
||||
- [ ] Execute queries with full-text search
|
||||
|
||||
### Cache
|
||||
- [ ] Implement query result caching
|
||||
- [ ] Set appropriate TTL
|
||||
- [ ] Invalidate on link update
|
||||
|
||||
## Phase 5: Web Interface
|
||||
|
||||
### Layout
|
||||
- [ ] Create templates/base.html
|
||||
- [ ] Create templates/layout.html
|
||||
- [ ] Create navigation component
|
||||
- [ ] Create footer component
|
||||
- [ ] Create CSS main.css
|
||||
|
||||
### Links View
|
||||
- [ ] Create templates/links/list.html
|
||||
- [ ] Create templates/links/detail.html
|
||||
- [ ] Create templates/links/create.html
|
||||
- [ ] Create templates/links/edit.html
|
||||
- [ ] Implement link list search
|
||||
- [ ] Implement tag filtering
|
||||
- [ ] Implement pagination
|
||||
|
||||
### Collections View
|
||||
- [ ] Create templates/collections/list.html
|
||||
- [ ] Create templates/collections/detail.html
|
||||
- [ ] Create templates/collections/create.html
|
||||
- [ ] Create templates/collections/edit.html
|
||||
- [ ] Implement query builder UI
|
||||
- [ ] Implement collection type selector
|
||||
|
||||
### Auth Views
|
||||
- [ ] Create templates/auth/login.html
|
||||
- [ ] Create templates/auth/register.html
|
||||
- [ ] Create templates/auth/forgot_password.html
|
||||
|
||||
### Static Files
|
||||
- [ ] Create static/css/main.css
|
||||
- [ ] Create static/js/main.js
|
||||
- [ ] Create static/js/api.js
|
||||
- [ ] Add favicon
|
||||
|
||||
## Phase 6: Testing
|
||||
|
||||
### Unit Tests
|
||||
- [ ] tests/test_auth.py
|
||||
- [ ] tests/test_links.py
|
||||
- [ ] tests/test_collections.py
|
||||
- [ ] tests/test_queries.py
|
||||
- [ ] tests/test_sync.py
|
||||
|
||||
### Integration Tests
|
||||
- [ ] Setup test database
|
||||
- [ ] Test full registration flow
|
||||
- [ ] Test CRUD operations
|
||||
- [ ] Test sync endpoint
|
||||
- [ ] Test query execution
|
||||
|
||||
### E2E Tests
|
||||
- [ ] Test login/logout
|
||||
- [ ] Test link CRUD
|
||||
- [ ] Test collection CRUD
|
||||
- [ ] Test query builder
|
||||
- [ ] Test sync flow
|
||||
|
||||
## Phase 7: Docker & Deployment
|
||||
|
||||
### Docker
|
||||
- [ ] Create optimized Dockerfile
|
||||
- [ ] Configure health checks
|
||||
- [ ] Test container build
|
||||
- [ ] Test container run
|
||||
- [ ] Test docker-compose
|
||||
|
||||
### Deployment
|
||||
- [ ] Create deployment guide
|
||||
- [ ] Configure production settings
|
||||
- [ ] Set up logging
|
||||
- [ ] Configure monitoring
|
||||
- [ ] Create backups procedure
|
||||
|
||||
## Phase 8: Documentation
|
||||
|
||||
- [ ] API reference
|
||||
- [ ] User guide
|
||||
- [ ] Query syntax guide
|
||||
- [ ] Deployment guide
|
||||
- [ ] Troubleshooting guide
|
||||
Reference in New Issue
Block a user