Commit Graph

149 Commits

Author SHA1 Message Date
Antoni Nuñez Romeu 1bc34b1134 Fixes on docker compose & notify
Run Tests on Branches / Backend Tests (push) Successful in 3m28s
Run Tests on Branches / Frontend Tests (push) Successful in 3m27s
2026-07-02 17:09:15 +02:00
Ichitux 15e136f3d5 Merge pull request 'Profile_Fixes' (#4) from Profile_Fixes into main
Build & Push Docker Images / test-backend (push) Successful in 36s
Build & Push Docker Images / deploy (push) Successful in 7s
Build & Push Docker Images / build-backend (push) Successful in 22s
Build & Push Docker Images / build-frontend (push) Successful in 32s
Build & Push Docker Images / test-frontend (push) Successful in 31s
Reviewed-on: #4
2026-07-02 10:52:07 +00:00
Antoni Nuñez Romeu 7606d118e4 Design hotfixes and improvements.
Run Tests on Branches / Backend Tests (push) Successful in 3m32s
Run Tests on Branches / Frontend Tests (push) Successful in 3m29s
2026-07-02 12:40:09 +02:00
Antoni Nuñez Romeu 15c1127b34 Add admin access button in profile menu for admin users
- Add onAdminClick prop to ProfileView component
- Add conditional admin button visible only for is_admin users
- Add handleAdminClick function in App.jsx to navigate to admin view
- Button styled consistently with existing menu items
2026-07-02 11:23:57 +02:00
Antoni Nuñez Romeu 17cd5adaef Add design spec for admin access button in profile menu 2026-07-02 11:20:56 +02:00
Ichitux 4429ec4c7f Merge pull request 'Frontend_Fixes' (#3) from Frontend_Fixes into main
Build & Push Docker Images / test-backend (push) Successful in 33s
Build & Push Docker Images / test-frontend (push) Successful in 28s
Build & Push Docker Images / deploy (push) Successful in 18s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 31s
Reviewed-on: #3
2026-07-01 15:29:25 +00:00
Antoni Nuñez Romeu 71a34293a9 Views in frontend changed
Run Tests on Branches / Backend Tests (push) Successful in 3m28s
Run Tests on Branches / Frontend Tests (push) Successful in 3m26s
2026-07-01 17:08:15 +02:00
Antoni Nuñez Romeu c5df0ec0b2 First implementation API for PIP (Proyecto: Pharmacy Integration Platform)
Run Tests on Branches / Backend Tests (push) Successful in 3m32s
Run Tests on Branches / Frontend Tests (push) Successful in 3m27s
2026-07-01 16:46:52 +02:00
Antoni Nuñez Romeu d935db4b3e Android branch testing
Run Tests on Branches / Backend Tests (push) Successful in 3m31s
Run Tests on Branches / Frontend Tests (push) Successful in 3m26s
2026-07-01 16:44:48 +02:00
Ichitux 1b9494bce6 Merge pull request 'Testing steps to avoid wrong implementation' (#2) from testing into main
Build & Push Docker Images / test-backend (push) Successful in 32s
Build & Push Docker Images / test-frontend (push) Successful in 30s
Build & Push Docker Images / deploy (push) Successful in 6s
Build & Push Docker Images / build-backend (push) Successful in 19s
Build & Push Docker Images / build-frontend (push) Successful in 18s
Reviewed-on: #2
2026-07-01 14:40:47 +00:00
Antoni Nuñez Romeu 1255bda9c7 Testing steps to avoid wrong implementation
Run Tests on Branches / Backend Tests (push) Successful in 4m41s
Run Tests on Branches / Frontend Tests (push) Successful in 3m46s
2026-07-01 16:36:47 +02:00
Ichitux 8578bac776 Merge pull request 'Rebranding app and naming' (#1) from Rebranding into main
Build & Push Docker Images / test-backend (push) Successful in 35s
Build & Push Docker Images / deploy (push) Successful in 7s
Build & Push Docker Images / build-backend (push) Successful in 2m10s
Build & Push Docker Images / build-frontend (push) Successful in 53s
Build & Push Docker Images / test-frontend (push) Successful in 30s
Reviewed-on: #1
2026-07-01 13:57:19 +00:00
Antoni Nuñez Romeu 1c31362e0b Rebranding app and naming 2026-07-01 15:54:10 +02:00
Antoni Nuñez Romeu 2e9d6a94dd Fix backend
Build & Push Docker Images / test-backend (push) Successful in 33s
Build & Push Docker Images / test-frontend (push) Successful in 29s
Build & Push Docker Images / deploy (push) Successful in 8s
Build & Push Docker Images / build-backend (push) Successful in 2m9s
Build & Push Docker Images / build-frontend (push) Successful in 56s
2026-07-01 12:28:20 +02:00
Antoni Nuñez Romeu db0935eb16 feat(fullstack): implement observability and redesign frontend UI
Build & Push Docker Images / test-backend (push) Failing after 36s
Build & Push Docker Images / test-frontend (push) Successful in 29s
Build & Push Docker Images / build-backend (push) Has been skipped
Build & Push Docker Images / build-frontend (push) Has been skipped
Build & Push Docker Images / deploy (push) Successful in 7s
This commit introduces comprehensive observability for both backend and frontend, alongside a major UI/UX overhaul to align with modern design standards (Material 3 inspired) and improve localization.

Backend changes:
- Integrated OpenTelemetry SDK for distributed tracing.
- Added Pino for structured JSON logging with OTel instrumentation for trace/span correlation.
- Configured OTLP exporters to route traces and logs to Grafana Alloy.
- Updated docker-compose to include necessary environment variables for observability.

Frontend changes:
- Integrated Grafana Faro for Real User Monitoring (RUM), capturing Web Vitals, JS errors, and user interactions.
- Redesigned the entire UI using a new color palette and Material 3 design principles.
- Refactored component architecture (App, Home, Search, Scanner, Profile, Alerts views) for better state management and navigation.
- Improved mobile UX with a redesigned Bottom Navigation bar and Top Bar.
- Localized the interface to Spanish (es).
- Updated assets, icons, and PWA configuration (manifest, icons).
- Refactored CSS to use a centralized design token system (CSS variables).

Observability enables better debugging and performance monitoring across the entire stack.
2026-07-01 11:48:27 +02:00
Antoni Nuñez Romeu 9316f6c54f CI/CD Deployment
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 16s
Build & Push Docker Images / deploy (push) Successful in 33s
2026-06-29 14:21:37 +02:00
Antoni Nuñez Romeu 67ba352b1a Node version 22
Build & Push Docker Images / test-backend (push) Successful in 20s
Build & Push Docker Images / test-frontend (push) Successful in 21s
Build & Push Docker Images / build-backend (push) Successful in 16s
Build & Push Docker Images / build-frontend (push) Successful in 17s
2026-06-29 13:50:27 +02:00
Antoni Nuñez Romeu 17500e0567 iOS Build using GH Actions
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Successful in 16s
Build & Push Docker Images / build-frontend (push) Successful in 17s
2026-06-29 13:02:16 +02:00
Antoni Nuñez Romeu 6856640d81 Fixing ios build
Build & Push Docker Images / test-backend (push) Successful in 20s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 16s
2026-06-29 11:29:40 +02:00
Antoni Nuñez Romeu 4b5e1a7379 Hotfixes
Build & Push Docker Images / test-backend (push) Successful in 22s
Build & Push Docker Images / test-frontend (push) Successful in 24s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 18s
2026-06-29 11:00:39 +02:00
Antoni Nuñez Romeu 6db5b6da20 Visual hotfixes & CI/CD
Build & Push Docker Images / test-backend (push) Successful in 22s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 30s
2026-06-29 10:56:43 +02:00
Ichitux e720bfa95a Adnroid & iOS capacitor
Build & Push Docker Images / test-backend (push) Successful in 20s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 19s
Build & Push Docker Images / build-frontend (push) Successful in 42s
2026-06-29 00:54:01 +02:00
Ichitux 2f9c0d27df fix(ci): use --ci for backend (Jest), keep --run for frontend (Vitest)
Build & Push Docker Images / test-backend (push) Successful in 20s
Build & Push Docker Images / test-frontend (push) Successful in 21s
Build & Push Docker Images / build-frontend (push) Successful in 27s
Build & Push Docker Images / build-backend (push) Successful in 18s
Backend uses Jest, not Vitest — --run is unrecognized. --ci is the
Jest equivalent that disables watch mode and exits cleanly. Frontend
already uses --run --reporter=basic (Vitest) which is correct.

Verified locally: backend `npm test -- --ci` → 17/17 passing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 13:09:25 +02:00
Ichitux 55a5d93a91 fix(frontend): restore PublicView back-compat for tests + CI
Build & Push Docker Images / test-backend (push) Failing after 18s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Has been skipped
Build & Push Docker Images / build-frontend (push) Has been skipped
The lifted screen-state refactor in PublicView broke App.test.jsx (5
failures): when no `onScreenChange` prop was passed, the click handler
called a no-op, so the screen never advanced from 'home' to 'search'
and the search input was never rendered.

Fix: make screen state uncontrolled-by-default. PublicView owns its
own `useState('home')` and uses the lifted props only when App.jsx
provides them. Same back-compat shape as before, BottomNav still
drives the screen via controlled props in the real app.

Also: vitest defaults to watch mode, which hangs the CI test step
forever. Updated docker.yaml to pass `--run --reporter=basic` so the
job exits with a real pass/fail signal.

Local verification: `npm test -- --run` → 6/6 passing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 13:06:56 +02:00
Ichitux 1e928e5a93 feat(mobile): native-feel sticky top bar + bottom tab nav
Build & Push Docker Images / test-backend (push) Successful in 22s
Build & Push Docker Images / test-frontend (push) Failing after 23s
Build & Push Docker Images / build-backend (push) Has been skipped
Build & Push Docker Images / build-frontend (push) Has been skipped
Replaces the floating pill nav with persistent mobile chrome that
frames scrolling content the way iOS/Android native apps do.

New components:
- TopBar: brand left, contextual action right (Admin pill for admins,
  bell for saved, Login button when logged out)
- BottomNav: 4-tab fixed nav (Search, Scan [elevated center FAB],
  Saved, Profile). Saved/Profile disabled when logged out, tapping
  opens LoginModal
- icons.jsx: 5 stroke-based SVG icons (Search, Scan, Bell, User, Cog)
  plus Logo; replaces emoji in nav chrome

Behavior changes:
- App.jsx: tracks publicScreen ('home'|'scan'|'search') so BottomNav
  can drive both top-level view + inner screen
- PublicView: screen state lifted to App via props (back-compat
  defaults preserved so existing call sites don't break)
- App.css: old mobile .view-switcher block hidden (replaced by
  BottomNav); .app padding bumped to clear the fixed bottom bar

Desktop (>768px) unchanged — existing centered pill nav still works,
new components hidden via display:none.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-28 12:52:46 +02:00
Ichitux 5b75321406 fix(mobile): lock viewport, disable iOS bounce, fix 100vh reflow
Build & Push Docker Images / test-backend (push) Successful in 20s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 27s
Root cause: html/body had no height/overflow constraint, so the
webview allowed rubber-band overscroll. .app used min-height: 100vh
which on iOS resolves to the larger viewport (behind URL bar), causing
layout to reflow when the bar collapses.

- index.css: html/body locked to 100% height, overflow hidden,
  overscroll-behavior none; #root set to exact 100dvh
- App.css: .app height: 100dvh (was min-height: 100vh) with
  overflow-y: auto + overscroll-behavior: contain so the .app
  becomes the scroll container
- capacitor.config.json: ios.bounces false, contentInset never

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 13:16:44 +02:00
Ichitux 803eaab134 ci(bitrise): split deploy by tag prefix and add iOS code-signing step
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 15s
- Tag triggers split: ios-v* -> deploy_ios, android-v* -> deploy_android.
  The blanket tag: "*" trigger that ran both platforms on every tag is gone.
- Add certificate-and-profile-installer@1 before xcode-archive@4 in
  deploy_ios and combined deploy. Reads Bitrise's auto-injected
  BITRISE_IOS_CODE_SIGNING_* env vars; no-op if not configured.
- Harden test_ios simulator destination to generic/platform=iOS Simulator
  (was iPhone 15, OS=latest, which breaks when the runner ships a
  different Xcode).
- Enable swift build cache on xcode-archive steps.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 11:12:21 +02:00
Ichitux 0f2933586f fix(ios): bump deployment target to 15.5 for GoogleMLKit/BarcodeScanning
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Successful in 16s
Build & Push Docker Images / build-frontend (push) Successful in 16s
GoogleMLKit/BarcodeScanning ~> 8.0.0 requires iOS 15.5 (per the Sept 2024
ML Kit release notes). pod install failed with "Specs satisfying the
dependency were found, but they required a higher minimum deployment
target" when the app was set to 15.0.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 11:07:07 +02:00
Ichitux ef5d33a595 fix(ios): align deployment target to 15.0 and link mlkit barcode pod
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 22s
Build & Push Docker Images / build-backend (push) Successful in 17s
Build & Push Docker Images / build-frontend (push) Successful in 17s
- All four IPHONEOS_DEPLOYMENT_TARGET entries in project.pbxproj bumped
  from 13.0 to 15.0 to match Podfile's 'platform :ios, 15.0' and
  Capacitor 8's minimum. Mismatched target caused Swift compile errors
  for iOS-15-only APIs in linked pods.
- Add CapacitorMlkitBarcodeScanning pod to Podfile and the package to
  root package.json (already in frontend/package.json). Without this,
  cap sync never linked the pod and the build failed with
  'No such module CapacitorMLKitBarcodeScanning'.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-27 10:55:13 +02:00
Antoni Nuñez Romeu c0b3b1fc94 Scanner view
Build & Push Docker Images / test-backend (push) Successful in 21s
Build & Push Docker Images / test-frontend (push) Successful in 24s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 26s
2026-06-26 23:28:01 +02:00
Antoni Nuñez Romeu 1aad9761d1 fix: suppress CocoaPods master specs repo warning in iOS build
Build & Push Docker Images / test-frontend (push) Has been cancelled
Build & Push Docker Images / build-backend (push) Has been cancelled
Build & Push Docker Images / build-frontend (push) Has been cancelled
Build & Push Docker Images / test-backend (push) Has been cancelled
2026-06-26 23:27:37 +02:00
Antoni Nuñez Romeu 2c1b3cfca6 Documentos + Homepage rediseñada
Build & Push Docker Images / test-backend (push) Successful in 24s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 2m22s
Build & Push Docker Images / build-frontend (push) Successful in 57s
2026-06-26 16:59:20 +02:00
Antoni Nuñez Romeu 14e9c16310 Fixed html body
Build & Push Docker Images / test-backend (push) Successful in 1m10s
Build & Push Docker Images / test-frontend (push) Successful in 1m3s
Build & Push Docker Images / build-backend (push) Successful in 1m6s
Build & Push Docker Images / build-frontend (push) Successful in 1m51s
2026-06-05 23:08:05 +02:00
Ichitux 2048a695f1 Frontend fix
Build & Push Docker Images / test-backend (push) Successful in 1m17s
Build & Push Docker Images / test-frontend (push) Successful in 1m6s
Build & Push Docker Images / build-backend (push) Successful in 1m6s
Build & Push Docker Images / build-frontend (push) Successful in 1m17s
2026-05-26 20:18:14 +02:00
Ichitux 54cd44b666 Fix building
Build & Push Docker Images / test-backend (push) Successful in 48s
Build & Push Docker Images / test-frontend (push) Successful in 56s
Build & Push Docker Images / build-backend (push) Successful in 1m3s
Build & Push Docker Images / build-frontend (push) Successful in 2m23s
2026-05-26 19:33:38 +02:00
Ichitux c3f0f3c35c Add iOS & Android build + frontend fixes for desktop
Build & Push Docker Images / test-backend (push) Successful in 53s
Build & Push Docker Images / test-frontend (push) Successful in 58s
Build & Push Docker Images / build-backend (push) Successful in 1m4s
Build & Push Docker Images / build-frontend (push) Failing after 56s
2026-05-26 19:12:31 +02:00
Antoni Nuñez Romeu 53f81eeb01 Hotfix workflows
Build & Push Docker Images / test-backend (push) Successful in 47s
Build & Push Docker Images / test-frontend (push) Successful in 58s
Build & Push Docker Images / build-backend (push) Successful in 1m32s
Build & Push Docker Images / build-frontend (push) Successful in 58s
2026-05-25 18:00:28 +02:00
Antoni Nuñez Romeu 31b3eb21b4 feat(auth): migrate user store from SQLite to PostgreSQL
Build & Push Docker Images / test-backend (push) Successful in 44s
Build & Push Docker Images / test-frontend (push) Successful in 53s
Build & Push Docker Images / build-backend (push) Failing after 50s
Build & Push Docker Images / build-frontend (push) Successful in 54s
Users were wiped on container recreation because they shared the
backend_data volume with ephemeral pharmacy/medicine data. Postgres
gets its own named volume (postgres_data) that survives deploys.

- Add postgres:16-alpine service + postgres_data volume to compose
- Add pg + connect-pg-simple deps
- userDbGet/userDbRun helpers: PG when PG_URL set, SQLite fallback
- Sessions use connect-pg-simple when pgPool available
- create-admin.js: PG-aware, SQLite fallback for local dev
- push_subscriptions.user_id: plain INTEGER (cross-DB FK dropped)
- Tests unchanged — no PG_URL in test env = SQLite fallback

Set PG_PASSWORD in server .env before next deploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 17:50:34 +02:00
Antoni Nuñez Romeu 34733c121c fix: include API/ in backend Docker image
Build & Push Docker Images / test-backend (push) Successful in 49s
Build & Push Docker Images / test-frontend (push) Successful in 58s
Build & Push Docker Images / build-backend (push) Failing after 1m7s
Build & Push Docker Images / build-frontend (push) Successful in 1m13s
Build context was ./backend so API/ was never copied into the image.
server.js imports ../API/index.js which resolves to /API/index.js at runtime.
Expand build context to project root and explicitly copy API/ to /API/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 16:09:06 +02:00
Antoni Nuñez Romeu 3dc2c4c9f2 fix front dockerfile
Build & Push Docker Images / test-backend (push) Successful in 43s
Build & Push Docker Images / test-frontend (push) Successful in 52s
Build & Push Docker Images / build-backend (push) Successful in 57s
Build & Push Docker Images / build-frontend (push) Successful in 2m18s
2026-05-21 16:39:11 +02:00
Antoni Nuñez Romeu 58ba68e0e1 cicd fix
Build & Push Docker Images / test-backend (push) Successful in 45s
Build & Push Docker Images / test-frontend (push) Successful in 1m0s
Build & Push Docker Images / build-backend (push) Successful in 1m56s
Build & Push Docker Images / build-frontend (push) Failing after 1m54s
2026-05-21 15:55:51 +02:00
Ichitux 2eff93e66a More changes than expected. Mobile version improvements & PWA
Build & Push Docker Images / test-backend (push) Successful in 44s
Build & Push Docker Images / test-frontend (push) Successful in 52s
Build & Push Docker Images / build-backend (push) Failing after 34s
Build & Push Docker Images / build-frontend (push) Failing after 30s
2026-05-20 22:28:17 +02:00
Antoni Nuñez Romeu 7b288d33cb Remove tests, doing in one
Build & Push Docker Images / test-backend (push) Successful in 45s
Build & Push Docker Images / test-frontend (push) Successful in 41s
Build & Push Docker Images / build-backend (push) Failing after 27s
Build & Push Docker Images / build-frontend (push) Failing after 23s
2026-05-19 18:28:31 +02:00
Antoni Nuñez Romeu a1e52aa910 Plan.md for later
Build & Push Docker Images / test-backend (push) Successful in 42s
Build & Push Docker Images / build-frontend (push) Has been cancelled
Build & Push Docker Images / test-frontend (push) Has been cancelled
Run Tests / test-frontend (push) Has been cancelled
Run Tests / test-backend (push) Has been cancelled
Build & Push Docker Images / build-backend (push) Has been cancelled
2026-05-19 18:27:16 +02:00
Antoni Nuñez Romeu cc9a24d6d6 Plan Done, Dockerization and cleanup
Build & Push Docker Images / test-backend (push) Successful in 55s
Build & Push Docker Images / test-frontend (push) Successful in 43s
Run Tests / test-backend (push) Successful in 48s
Run Tests / test-frontend (push) Successful in 42s
Build & Push Docker Images / build-backend (push) Failing after 4m7s
Build & Push Docker Images / build-frontend (push) Failing after 32s
2026-05-19 18:16:28 +02:00
Ichitux 93ec8e6a6c Enable test cases for both apps
Run Tests / test-backend (push) Successful in 40s
Run Tests / test-frontend (push) Successful in 37s
2026-04-01 01:58:43 +02:00
Ichitux b5d1cb12bf Add tests in workflow
Run Tests / test-backend (push) Failing after 48s
Run Tests / test-frontend (push) Failing after 24s
2026-04-01 01:24:17 +02:00
Ichitux 0fe8ec9bc0 API, Backend & Frontend 2026-04-01 01:18:21 +02:00
Ichitux 331c04fbef first commit 2026-04-01 01:17:33 +02:00