Quick Testing Access
Why this page exists
Section titled “Why this page exists”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.
BASE_URL="https://budgeti-backend.johandercampos.com/api/v1"TS=$(date +%s)EMAIL="demo+${TS}@example.com"PASSWORD="Demo12345!"1) Register
Section titled “1) Register”curl -X POST "$BASE_URL/auth/register" \ -H "Content-Type: application/json" \ -d "{\"name\":\"Demo Reviewer\",\"email\":\"$EMAIL\",\"password\":\"$PASSWORD\"}"2) Login
Section titled “2) Login”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:
TOKEN="<paste-jwt-token-from-login-response>"Minimal end-to-end API smoke flow (cURL)
Section titled “Minimal end-to-end API smoke flow (cURL)”3) Create wallet
Section titled “3) Create wallet”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.
WALLET_ID="<wallet-id>"4) Create category
Section titled “4) Create category”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.
CATEGORY_ID="<category-id>"5) Create transaction
Section titled “5) Create transaction”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\"}"6) Get dashboard summary
Section titled “6) Get dashboard summary”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.
Use with Postman
Section titled “Use with Postman”You can import each cURL command directly into Postman, or create a collection manually.
Set collection variables:
baseUrl=https://budgeti-backend.johandercampos.com/api/v1token= JWT from loginwalletId= wallet id from create walletcategoryId= category id from create category
Recommended request order:
POST {{baseUrl}}/auth/registerPOST {{baseUrl}}/auth/loginPOST {{baseUrl}}/walletPOST {{baseUrl}}/categoriesPOST {{baseUrl}}/transactionGET {{baseUrl}}/dashboard/summary
Use Authorization: Bearer {{token}} on protected requests.
Use with Insomnia
Section titled “Use with Insomnia”Create a workspace and define environment variables:
baseUrltokenwalletIdcategoryId
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.
Security note
Section titled “Security note”- 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.