Backend (FastAPI): - App factory with async SQLAlchemy 2.0 + PostgreSQL - Alembic migration for users and sessions tables - JWT auth (access + refresh tokens, bcrypt passwords) - Auth endpoints: register, login, refresh, logout, me - Admin seed script, role-based access deps Frontend (React + TypeScript): - Vite + Tailwind CSS + shadcn/ui theme (health-oriented palette) - i18n with English and Russian translations - Zustand auth/UI stores with localStorage persistence - Axios client with automatic token refresh on 401 - Login/register pages, protected routing - App layout: collapsible sidebar, header with theme/language toggles - Dashboard with placeholder stats Infrastructure: - Docker Compose (postgres, backend, frontend, nginx) - Nginx reverse proxy with WebSocket support - Dev override with hot reload Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
1.6 KiB
JSON
58 lines
1.6 KiB
JSON
{
|
|
"auth": {
|
|
"login": "Log In",
|
|
"register": "Sign Up",
|
|
"email": "Email",
|
|
"password": "Password",
|
|
"confirmPassword": "Confirm Password",
|
|
"username": "Username",
|
|
"fullName": "Full Name",
|
|
"rememberMe": "Remember me",
|
|
"submit": "Submit",
|
|
"noAccount": "Don't have an account?",
|
|
"hasAccount": "Already have an account?",
|
|
"loginTitle": "Welcome Back",
|
|
"loginSubtitle": "Sign in to your account",
|
|
"registerTitle": "Create Account",
|
|
"registerSubtitle": "Get started with your personal AI assistant",
|
|
"errors": {
|
|
"invalidCredentials": "Invalid email or password",
|
|
"emailExists": "User with this email or username already exists",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"passwordMinLength": "Password must be at least 8 characters",
|
|
"usernameFormat": "Username must be 3-50 characters (letters, numbers, _ or -)",
|
|
"required": "This field is required"
|
|
}
|
|
},
|
|
"layout": {
|
|
"dashboard": "Dashboard",
|
|
"chats": "Chats",
|
|
"documents": "Documents",
|
|
"memory": "Memory",
|
|
"notifications": "Notifications",
|
|
"profile": "Profile",
|
|
"logout": "Log Out",
|
|
"settings": "Settings",
|
|
"admin": "Admin",
|
|
"users": "Users",
|
|
"context": "Context",
|
|
"skills": "Skills"
|
|
},
|
|
"dashboard": {
|
|
"welcome": "Welcome, {{name}}",
|
|
"subtitle": "Your personal AI health assistant"
|
|
},
|
|
"common": {
|
|
"loading": "Loading...",
|
|
"error": "An error occurred",
|
|
"notFound": "Page not found",
|
|
"goHome": "Go to Dashboard",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"create": "Create",
|
|
"search": "Search"
|
|
}
|
|
}
|