myYouTube/frontend
vrubelroman 0ed20bb838 Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback
- FastAPI + PostgreSQL + Alembic + React/Vite skeleton, Docker Compose, healthcheck
- Google OAuth (single allowed account), encrypted refresh token storage
- Subscriptions sync with pagination, uploads playlist batch fetch
- Categories CRUD, many-to-many channel assignment, category filtering
- Video sync (playlistItems + videos.list batching), cached feed with cursor
  pagination, background scheduler (APScheduler)
- Video detail page with YouTube embed player
- SPA fallback routing, optimistic UI updates, client-side query caching

40 backend tests covering OAuth allow-list, sync idempotency, cascade deletes,
cursor pagination, and category filtering.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 18:44:30 +00:00
..
public Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
src Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
.gitignore Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
.oxlintrc.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
index.html Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
package-lock.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
package.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
README.md Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
tsconfig.app.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
tsconfig.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
tsconfig.node.json Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00
vite.config.ts Implement Phases 1-5: skeleton, OAuth, categories, video sync/feed, playback 2026-09-16 18:44:30 +00:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the Oxlint configuration

If you are developing a production application, we recommend enabling type-aware lint rules by installing oxlint-tsgolint and editing .oxlintrc.json:

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["react", "typescript", "oxc"],
  "options": {
    "typeAware": true
  },
  "rules": {
    "react/rules-of-hooks": "error",
    "react/only-export-components": ["warn", { "allowConstantExport": true }]
  }
}

See the Oxlint rules documentation for the full list of rules and categories.