Skip to content

Quick Testing Access

The backend is testable end to end and is currently exposed via the public domain for review convenience.

  • Current hosted base URL: https://budgeti-backend.johandercampos.com
  • API base path: /api/v1
  • Hosting provider or URL can change over time; always verify the latest environment in runtime/operations docs.

Demo user bootstrap (no shared permanent account)

Section titled “Demo user bootstrap (no shared permanent account)”

Do not use a hardcoded shared account for reviews. Create a temporary demo user in your own test run, then authenticate and capture the JWT token.

Example values for this page:

  • Email pattern: demo+<timestamp>@example.com
  • Password: Demo12345!

Reviewers should generate their own local demo user per session.

Terminal window
BASE_URL="https://budgeti-backend.johandercampos.com/api/v1"
TS=$(date +%s)
EMAIL="demo+${TS}@example.com"
PASSWORD="Demo12345!"
Terminal window
curl -X POST "$BASE_URL/auth/register" \
-H "Content-Type: application/json" \
-d "{\"name\":\"Demo Reviewer\",\"email\":\"$EMAIL\",\"password\":\"$PASSWORD\"}"
Terminal window
curl -X POST "$BASE_URL/auth/login" \
-H "Content-Type: application/json" \
-d "{\"email\":\"$EMAIL\",\"password\":\"$PASSWORD\"}"

Capture token from the login response and export it:

Terminal window
TOKEN="<paste-jwt-token-from-login-response>"
Terminal window
curl -X POST "$BASE_URL/wallet" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Demo Wallet","currency":"USD","balance":1000}'

Copy id from the response as WALLET_ID.

Terminal window
WALLET_ID="<wallet-id>"
Terminal window
curl -X POST "$BASE_URL/categories" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Food"}'

Copy id from the response as CATEGORY_ID.

Terminal window
CATEGORY_ID="<category-id>"
Terminal window
curl -X POST "$BASE_URL/transaction" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"amount\":45.9,\"description\":\"Reviewer smoke test\",\"date\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"currency\":\"USD\",\"walletId\":\"$WALLET_ID\",\"categoryId\":\"$CATEGORY_ID\",\"type\":\"expense\"}"
Terminal window
curl -X GET "$BASE_URL/dashboard/summary" \
-H "Authorization: Bearer $TOKEN"

Expected outcome: a valid summary payload with totals and analytics fields for the authenticated demo user.

You can import each cURL command directly into Postman, or create a collection manually.

Set collection variables:

  • baseUrl = https://budgeti-backend.johandercampos.com/api/v1
  • token = JWT from login
  • walletId = wallet id from create wallet
  • categoryId = category id from create category

Recommended request order:

  1. POST {{baseUrl}}/auth/register
  2. POST {{baseUrl}}/auth/login
  3. POST {{baseUrl}}/wallet
  4. POST {{baseUrl}}/categories
  5. POST {{baseUrl}}/transaction
  6. GET {{baseUrl}}/dashboard/summary

Use Authorization: Bearer {{token}} on protected requests.

Create a workspace and define environment variables:

  • baseUrl
  • token
  • walletId
  • categoryId

Use the same request sequence as Postman. For protected routes, set header:

  • Authorization: Bearer {{ token }}

Insomnia also supports importing cURL commands directly into the workspace if preferred.

  • Never publish real credentials, tokens, or personal data in docs, issues, screenshots, or chat.
  • Use disposable demo users for review sessions.
  • Rotate or delete test credentials regularly.