• v1.0.0 807ebc41a5

    kraehed released this 2026-04-13 12:08:44 +00:00 | 1 commits to main since this release

    [1.0.0] - 2026-04-13

    Added

    • Branding: app named "Armarium"; horizontal and vertical logo SVGs; favicon; dark-mode logo invert
    • Backend: Django + DRF with JWT auth (djangorestframework-simplejwt), token blacklist, rate limiting (5/200/20 req/min), PostgreSQL, media uploads, env config via python-dotenv
    • Data models: Account (asset/expense/revenue), Transaction (double-entry), Budget (7 categories), Expense (10 categories), Profile (avatar, canton, all 26 CH cantons), Deadline (5 types)
    • REST API: auth endpoints (register, login, refresh, logout, password change), full CRUD for accounts, transactions, budgets, expenses, deadlines, profile
    • Frontend: Angular 21 standalone components, Tailwind CSS v3, ApexCharts; ApiService, AuthService, authGuard, authInterceptor, SidebarService
    • Pages: Login, Register, Dashboard (KPIs + bar/donut charts), Accounts, Budgets, Expenses, Transactions, Calendar, Profile
    • Responsive layout: mobile-first — slide-in sidebar drawer, backdrop close, overflow-x-auto tables, notifications as full-width top drawer on mobile
    • Sidebar: collapsible to icon-only view with flyout submenus and tooltips; toggle in navbar
    • Dark/Light mode: sun/moon toggle in navbar; preference persisted in localStorage (dark default)
    • i18n: 4 languages (DE/FR/IT/EN) via ngx-translate; LanguageService; browser language auto-detection; canton names translated per UI language
    • Calendar: year view with month modal; Swiss public and school holidays by canton (2025–2026); expense due dates and deadlines; day detail slide-in drawer; iCal feed (HMAC-SHA256 token auth) with "Subscribe" button
    • Infrastructure: PostgreSQL, nginx reverse proxy, Forgejo Actions CI/CD pipeline, .env.example

    Fixed

    • Profile: canton and language selects not saving — switched to [ngModel]/(ngModelChange)
    • Calendar: canton not reflected on load; iCal feed pytz import error
    • Sidebar: collapse button unwired; flyout menus clipped due to overflow-y-auto; mobile submenus replaced with Angular signal-based state
    • i18n: translations not loading — src/assets missing from angular.json assets
    • Production: hardcoded http://127.0.0.1:8000 replaced with relative API paths throughout
    Downloads