- backend: FastAPI + SQLAlchemy 2.0(async) + asyncpg + Alembic - 7 API routes: auth/me/articles/sources/bookmarks/subscriptions/admin - models: User/Source/Article/Bookmark/Subscription/ApiToken - services: RSS fetcher (feedparser) + Tencent TMT translator with quota + cache + local NLLB fallback - workers: APScheduler + asyncio pipeline (fetch -> dedupe -> insert -> translate) - seed scripts: create_user, seed_sources (5 RSS: Reuters/BBC/Al Jazeera/NHK/DW) - frontend: Vue 3 + Vite + Naive UI + Pinia + vue-router - pages: Login, Feed (24h), ArticleDetail, Sources, Bookmarks, AdminSources - deploy: docker-compose (postgres/redis/api/worker/frontend/caddy) - docs: README, DEPLOY, architecture, acceptance
27 lines
538 B
JSON
27 lines
538 B
JSON
{
|
|
"name": "diary-news-web",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vue-tsc -b && vite build",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"axios": "^1.7.7",
|
|
"dayjs": "^1.11.13",
|
|
"naive-ui": "^2.40.1",
|
|
"pinia": "^2.2.6",
|
|
"vue": "^3.5.12",
|
|
"vue-router": "^4.4.5",
|
|
"vfonts": "^0.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@vitejs/plugin-vue": "^5.1.4",
|
|
"typescript": "^5.6.3",
|
|
"vite": "^5.4.10",
|
|
"vue-tsc": "^2.1.10"
|
|
}
|
|
}
|