Services: - api: FastAPI gateway with JWT auth, async endpoints, WebSocket - worker-gpu: CUDA sentence-transformers, FAISS IVFFlat, Ollama LLM - worker-indexer: Winnowing+MinHash plagiarism detection, PDF/DOCX extraction - worker-notifier: SMTP email notifications - worker-gost: GOST 7.1-2003 and GOST R 7.0.5-2008 formatting Infrastructure: - docker-compose.yml (production) + docker-compose.dev.yml (hot reload) - Nginx reverse proxy + WebSocket support - PostgreSQL 16 with Alembic migrations - Elasticsearch 8 with Russian/English analyzers - MinIO, RabbitMQ, Redis, Ollama Frontend: - React 18 + Vite + TypeScript + TailwindCSS + Zustand + React Query v5 - 9 pages: Home, Search, Cabinet, Task, Check, Bibliography, Pricing, Login, Register Scripts: - Parser stubs: OpenAlex, КиберЛенинка, arXiv (Phase 0 - to be filled) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
37 lines
893 B
JSON
37 lines
893 B
JSON
{
|
|
"name": "academic-helper-frontend",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"lint": "eslint . --ext ts,tsx",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"react": "^18.3.0",
|
|
"react-dom": "^18.3.0",
|
|
"react-router-dom": "^6.23.0",
|
|
"@tanstack/react-query": "^5.40.0",
|
|
"zustand": "^4.5.2",
|
|
"axios": "^1.7.2",
|
|
"react-dropzone": "^14.2.3",
|
|
"react-hot-toast": "^2.4.1",
|
|
"lucide-react": "^0.390.0",
|
|
"clsx": "^2.1.1",
|
|
"tailwind-merge": "^2.3.0",
|
|
"date-fns": "^3.6.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "^18.3.3",
|
|
"@types/react-dom": "^18.3.0",
|
|
"@vitejs/plugin-react": "^4.3.0",
|
|
"typescript": "^5.4.5",
|
|
"vite": "^5.2.12",
|
|
"tailwindcss": "^3.4.4",
|
|
"postcss": "^8.4.38",
|
|
"autoprefixer": "^10.4.19",
|
|
"eslint": "^9.4.0"
|
|
}
|
|
}
|