Commit Graph
52 Commits
Author SHA1 Message Date
Rafał Tyński e176d0c211 feat(client): add English default and Ukrainian language with switcher
Default language is English; detect the browser language (Polish -> pl, Ukrainian -> uk, otherwise en) and persist the user choice. Add full Ukrainian (Cyrillic) translations, a language switcher showing native endonyms, and keep vue-i18n, Vuetify locale, <html lang> and document.title in sync.
2026-10-04 04:12:36 +02:00
Rafał Tyński 9854133ac0 feat(client): add high-contrast theme option to theme switcher
Extend theme modes with an explicit high-contrast choice (WCAG 1.4.3) and expose i18n label keys for the theme menu.
2026-10-04 04:04:54 +02:00
Rafał Tyński 804ad617ad feat(client): add app skeleton with routing, state and i18n
Add vue-router routes with accessible navigation (document title + focus management), Pinia session store, vue-i18n (PL/EN) and the default layout. Replace the landing page with routed views and remove the old MainView.
2026-10-04 04:04:35 +02:00
Rafał Tyński 92a904b8a9 feat(client): add accessible design system and API client foundation
Add design tokens, base components (page header, section, status chip, empty state, loading, announcer), a11y composables (text scaling, announcements), high-contrast theme and a typed HTTP client with ProblemDetails error mapping.
2026-10-04 04:04:31 +02:00
Rafał Tyński 4b0225008c chore(client): add lint, format and test tooling
Configure ESLint 10 (flat, Vue + a11y), Prettier, Vitest + @vue/test-utils + jsdom, and add npm scripts for lint/format/test. Document VITE_API_BASE_URL.
2026-10-04 04:04:26 +02:00
Rafał Tyński cca20a9965 test(backend): cover step 17 modules and extract stubs
Add tests for partnership workflow, middleman adaptation and idea notifications; extract reusable test stubs into separate files; add architecture guard forbidding object-valued dictionaries in data contracts.
2026-10-04 03:49:51 +02:00
Rafał Tyński fa1199539b feat(backend): add communication, tester, admin and middleman modules
Implement step 17 modules: threads/messages, notifications with automation (submission.created, idea.created, grant_call.opened), innovation test feedback, admin panel (submissions, verify, metrics, grant call status), Middleman adaptation and partnerships. Split multi-type files into one type per file and replace object-valued dictionaries with string-valued maps in data contracts (migrations 0006/0007).
2026-10-04 03:49:45 +02:00
Rafał Tyński f4f3b3896a docs(backend): document C# conventions in AGENTS.md
Add C# language conventions: one type per file, file-scoped namespaces, sealed/internal types, DTO as records, ban on object-valued dictionaries with the enforcing test, layering, naming and formatting rules.
2026-10-04 03:49:39 +02:00
Rafał Tyński ded596d872 test(ideas): cover workflow, application window and controller outcomes
Add unit tests for idea status transitions, granted application windows and applications controller status mapping (409 when call closed, 201 on success).
2026-10-04 03:13:50 +02:00
Rafał Tyński 127ca92f63 feat(ideas): add idea creator, grant calls and applications
Implement the idea creator and application generator: idea status workflow, social canvas card, grant call windows with 409 when closed, and an LLM-backed idea assistant with offline fallback.
2026-10-04 03:13:45 +02:00
Rafał Tyński fd408b102b test(backend): add matchmaking LLM scoring and limiter tests 2026-10-04 02:52:45 +02:00
Rafał Tyński 0c10489a5e chore(config): configure LLM provider and cost limits 2026-10-04 02:52:45 +02:00
Rafał Tyński 03e2d66ca4 feat(backend): add LLM provider abstraction, contextual ranking and explanations
Add a pluggable LLM provider with an offline template fallback, prompt builder, contextual match scoring (area/location boosts, availability), per-solution explanations and in-memory request limiting for cost control.
2026-10-04 02:52:45 +02:00
Rafał Tyński 182c26d9f8 test(backend): add matchmaking relevance and ranking tests 2026-10-04 02:44:03 +02:00
Rafał Tyński 25ce901021 feat(backend): add semantic matchmaking with embedding pipeline
Add a pluggable embedding provider with an offline deterministic default, vector indexing for problems and innovations, cosine semantic ranking, similar cases and solution suggestions, area filtering and an admin reindex endpoint. Refresh the index when innovations or submissions change.
2026-10-04 02:44:03 +02:00
Rafał Tyński 2bc083fb95 feat(sql): add problem embedding vector index 2026-10-04 02:44:03 +02:00
Rafał Tyński 2676240440 test(backend): add embedding text and innovation stage tests 2026-10-04 02:32:33 +02:00
Rafał Tyński bad37a6ab9 feat(backend): add knowledge base, innovation library and trends modules
Add knowledge item and innovation CRUD with search/filtering, published-only visibility for non-staff, admin publish/update, challenge dictionary, problem aggregation with trends (admin only) and canonical embedding text preparation for matchmaking.
2026-10-04 02:32:33 +02:00
Rafał Tyński fee137aee6 test(backend): add submission workflow, keyword and controller tests 2026-10-04 02:22:05 +02:00
Rafał Tyński cadc321d96 feat(backend): add problem/need submission module with workflow and events
Add submission CRUD with pagination and role scoping, challenge/location binding, automatic keyword extraction, a validated status workflow, and domain events for matchmaking and notifications. Create a problem record together with each submission.
2026-10-04 02:22:00 +02:00
Rafał Tyński 58cc2e4096 docs(readme): document authentication and RBAC 2026-10-04 02:12:00 +02:00
Rafał Tyński 5d3be19ca8 chore(config): document auth signing key and ignore surreal history 2026-10-04 02:12:00 +02:00
Rafał Tyński c163db3029 test(backend): add auth token and security policy tests 2026-10-04 02:12:00 +02:00
Rafał Tyński dcaa1a77db fix(sql): make audit_log context field flexible
Allow nested keys in audit_log.context (SCHEMAFULL rejected free-form context like user.read/consent.grant metadata).
2026-10-04 02:12:00 +02:00
Rafał Tyński 482a4b41f0 feat(backend): add JWT authentication, RBAC and consent/audit services
Add signup/signin with backend-issued JWT (Argon2 passwords in SurrealDB), role-based authorization policies, per-user data access levels, consent register and read audit log. Protect user endpoints and record sensitive reads.
2026-10-04 02:11:56 +02:00
Rafał Tyński 24c9e582c9 ci: update commented CI format and test steps 2026-10-04 01:50:01 +02:00
Rafał Tyński 40e07bc1a6 docs(readme): document layered backend and API endpoints 2026-10-04 01:50:01 +02:00
Rafał Tyński a9815b54e0 fix(infra): fix Dockerfile restore and build script solution name
Copy the layered project files before restore so the Docker build resolves project references, and build the correct solution file (TarninaHub.slnx) in scripts/build.mjs.
2026-10-04 01:50:01 +02:00
Rafał Tyński 1cbf965657 test(backend): add xUnit tests for the API skeleton
Add tests/TarninaHub.Tests with health controller and SurrealDB endpoint builder tests, and register the test and layer projects in the solution.
2026-10-04 01:49:56 +02:00
Rafał Tyński b3756238a3 feat(backend): restructure API into layers with OpenAPI, versioning and error handling
Split the backend into API host, Domain, Application and Infrastructure projects. Add Swagger/OpenAPI per API version, Asp.Versioning (query/header), ProblemDetails with a global exception handler and SurrealQL migrations applied at startup (namespace/database ensured). Infrastructure owns the SurrealDB client, settings and DI.
2026-10-04 01:49:51 +02:00
Rafał Tyński 0a5ef715eb feat(sql): add demo schema additions and synthetic seed data
Add additive schema for demo (user.display_name, innovation.tags, FLEXIBLE free-form fields) and a fully synthetic seed with organizations, personas, problems, submissions, innovations, knowledge items, grant calls, ideas and tester feedback. Verified on SurrealDB 3.2.4: migrations apply cleanly and are idempotent.
2026-10-04 01:24:18 +02:00
Rafał Tyński 6df1027699 feat(sql): add SurrealDB schema and taxonomy seed migrations
Add an idempotent SurrealDB 3.x schema for all domain entities with indexes (HNSW vector and full-text), record access and permissions, plus a taxonomy seed with the 8 social challenges, grouped tags and sample locations. Verified on SurrealDB 3.2.4: migrations apply cleanly, re-run is idempotent and CRUD works.
2026-10-04 01:11:33 +02:00
Rafał Tyński 67ec85b6cc docs(readme): document CI/CD, environments and observability 2026-10-04 00:57:40 +02:00
Rafał Tyński 70fb592cf7 chore(config): add backend environment variable example 2026-10-04 00:57:40 +02:00
Rafał Tyński 6c78351a95 ci: add disabled Gitea Actions CI/CD workflows
Add CI and CD workflows for backend, frontend and image publishing. The workflows are fully commented out because no Gitea Actions runner is attached; uncomment once a runner is registered.
2026-10-04 00:57:40 +02:00
Rafał Tyński 2401991870 chore(repo): add PR/issue templates and editorconfig rules
Add pull request and issue templates and extend .editorconfig with json/yml rules. Templates are force-added because the user's global gitignore excludes .github directories.
2026-10-04 00:48:53 +02:00
Rafał Tyński b2fd7f8940 docs(backend): require English-only commit messages
State that commit messages must be written in English in the DevHeyah and TarninaHub repositories and follow Conventional Commits.
2026-10-03 22:09:36 +02:00
Rafał Tyński 179ad953cb docs(readme): document registry pull workflow and image publish script 2026-10-03 21:16:20 +02:00
Rafał Tyński 9d28d23e45 build(docker): pull image from Gitea registry in compose template
Switch the compose example from local build to pulling the full registry path git.rtynski.pl/rtynski/hy2026, default the host port to 8075 and add a commented external ovh_net network.
2026-10-03 21:16:11 +02:00
Rafał Tyński 46178d915a build(scripts): add Docker image publish script for Gitea registry 2026-10-03 21:16:08 +02:00
Rafał Tyński 5598fa5156 build(docker): add container setup with persistent ./data volume
Add a multi-stage Dockerfile (Vue build + .NET 10 publish) and a docker-compose service exposing port 8080 with a single bind mount ./data -> /app/data for SurrealDB persistence. Include an example compose file, a .dockerignore, and document Docker usage and version 0.0.1 in the README.
2026-10-03 20:23:25 +02:00
Rafał Tyński 3b94358162 feat(frontend): connect client to local SurrealDB
Add a SurrealDB service with a local IndexedDB-backed (indxdb://) connection for private, local-first data and an optional remote connection for sync. Initialize the local connection on app start and document the required VITE_* variables in .env.example.

Bump the client version to 0.0.1.
2026-10-03 20:23:18 +02:00
Rafał Tyński e8e1658b3a feat(backend): integrate SurrealDB storage with embedded RocksDB
Add StorageService backed by SurrealDB using the embedded RocksDB provider that persists to ./data (never in memory). Support an optional remote server via SurrealDb:RemoteUrl for frontend sync. Expose readiness and storage probe endpoints under /api/system and add a helper script to start a local SurrealDB server.

Set the backend version to 0.0.1.
2026-10-03 20:23:11 +02:00
Rafał Tyński ac9ce68fbe style(frontend): use outlined variant for feature cards 2026-10-03 18:54:17 +02:00
Rafał Tyński 1ad16fb35b feat(frontend): add light/dark theme switcher
Add persisted theme mode (light, dark, system) with a header menu.
Rework the light and dark palettes for stronger contrast and drop the
high-contrast theme.
2026-10-03 18:54:13 +02:00
Rafał Tyński 2b6a9f5433 build(frontend): add @vueuse/core dependency 2026-10-03 18:54:09 +02:00
Rafał Tyński 8541e3b42e chore: ignore local backend docs 2026-10-03 18:54:05 +02:00
Rafał Tyński 2158ad0ae6 docs: add project README 2026-10-03 18:30:50 +02:00
Rafał Tyński 3a45267ad8 feat(frontend): scaffold Vue 3 + Vuetify landing page 2026-10-03 18:30:47 +02:00
Rafał Tyński f26ad1744e feat(backend): scaffold ASP.NET Core Web API with health endpoint 2026-10-03 18:30:43 +02:00
Rafał Tyński 74f14e93ea build: add solution and client bundling scripts 2026-10-03 18:30:39 +02:00
Rafał Tyński 04ac25eae4 chore: add editorconfig and gitignore 2026-10-03 18:30:36 +02:00