From 2b0503017c25491ae6e2e2f2275fcf8f21dd37d3 Mon Sep 17 00:00:00 2001 From: arrelin Date: Fri, 19 Dec 2025 10:37:50 +0300 Subject: [PATCH] fix error after changing back to /api + feature/limits --- frontend/src/pages/FamilyView.tsx | 29 +++++++++++++++--- frontend/vite.config.ts | 10 +------ setup-ssl.ps1 | 49 +++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 13 deletions(-) create mode 100644 setup-ssl.ps1 diff --git a/frontend/src/pages/FamilyView.tsx b/frontend/src/pages/FamilyView.tsx index 5eac7ae..5da5830 100644 --- a/frontend/src/pages/FamilyView.tsx +++ b/frontend/src/pages/FamilyView.tsx @@ -199,6 +199,14 @@ export default function FamilyView() { return Math.max(0, Math.min(100, (remaining / limit) * 100)); }; + const getTotalLimit = () => { + return categories.reduce((sum, cat) => sum + parseFloat(cat.limit_amount.toString()), 0); + }; + + const getTotalRemaining = () => { + return Array.from(remainingLimits.values()).reduce((sum, val) => sum + val, 0); + }; + const formatDate = (dateString: string) => { let dateStr = dateString; if (!dateStr.endsWith('Z') && !dateStr.includes('+')) { @@ -229,12 +237,25 @@ export default function FamilyView() {
-

+

{selectedFamily?.name || 'Семья'}

-

- Управление категориями и расходами -

+
+
+
+

Общий лимит

+

+ {getTotalLimit().toFixed(2)} ₽ +

+
+
+

Общий остаток

+

+ {getTotalRemaining().toFixed(2)} ₽ +

+
+
+
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 2869179..b9d9589 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -6,15 +6,7 @@ export default defineConfig({ server: { port: 5173, proxy: { - '/families': { - target: 'http://localhost:8080', - changeOrigin: true, - }, - '/login': { - target: 'http://localhost:8080', - changeOrigin: true, - }, - '/logout': { + '/api': { target: 'http://localhost:8080', changeOrigin: true, } diff --git a/setup-ssl.ps1 b/setup-ssl.ps1 new file mode 100644 index 0000000..6d2586d --- /dev/null +++ b/setup-ssl.ps1 @@ -0,0 +1,49 @@ +# Setup SSL Certificate for Family Budget +# Run this script in PowerShell as Administrator + +$ErrorActionPreference = "Stop" + +$DOMAIN = "family-budget.duckdns.org" +$EMAIL = "your@email.com" # CHANGE THIS! + +Write-Host "=== Setting up SSL for $DOMAIN ===" -ForegroundColor Green + +# Change to project directory +Set-Location C:\deploy\family_budget + +Write-Host "`n1. Stopping certbot..." -ForegroundColor Yellow +docker compose -f docker-compose.prod.yml stop certbot + +Write-Host "`n2. Creating self-signed certificate..." -ForegroundColor Yellow +docker compose -f docker-compose.prod.yml run --rm --entrypoint sh certbot -c @" +mkdir -p /etc/letsencrypt/live/$DOMAIN && \ +openssl req -x509 -nodes -newkey rsa:2048 -days 365 \ + -keyout /etc/letsencrypt/live/$DOMAIN/privkey.pem \ + -out /etc/letsencrypt/live/$DOMAIN/fullchain.pem \ + -subj '/CN=$DOMAIN' +"@ + +Write-Host "`n3. Updating nginx configuration..." -ForegroundColor Yellow +$sslConfig = Get-Content nginx\conf.d\app-ssl.conf.template -Raw +$sslConfig = $sslConfig -replace '\$\{DOMAIN\}', $DOMAIN +$sslConfig | Out-File -FilePath nginx\conf.d\app-ssl.conf -Encoding UTF8 + +# Remove HTTP config +Remove-Item nginx\conf.d\app.conf -ErrorAction SilentlyContinue + +Write-Host "`n4. Restarting nginx..." -ForegroundColor Yellow +docker compose -f docker-compose.prod.yml restart nginx + +Write-Host "`n5. Checking nginx status..." -ForegroundColor Yellow +docker compose -f docker-compose.prod.yml ps nginx + +Write-Host "`n=== HTTPS Setup Complete! ===" -ForegroundColor Green +Write-Host "`nYour site is now available at: https://$DOMAIN" -ForegroundColor Cyan +Write-Host "`nNote: This is a self-signed certificate. Browser will show a warning." -ForegroundColor Yellow +Write-Host "You can click 'Advanced' -> 'Proceed to site' to access." -ForegroundColor Yellow + +Write-Host "`n=== To get a real Let's Encrypt certificate later: ===" -ForegroundColor Magenta +Write-Host "Run in Git Bash:" -ForegroundColor White +Write-Host " export DOMAIN=$DOMAIN" -ForegroundColor Gray +Write-Host " export EMAIL=$EMAIL" -ForegroundColor Gray +Write-Host " bash init-letsencrypt.sh" -ForegroundColor Gray