Once a CSV file has been uploaded, CSV Manager exposes a real-time search experience. The frontend debounces every keystroke by 300 ms before firing a request, which keeps network traffic low while still feeling instantaneous. On the server side, theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/titobrian97/Prueba-tecnica-ts-node---gestion-de-csv/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/users endpoint filters the in-memory dataset by checking whether the query string appears anywhere in any column value — no index, no configuration required. You can use the browser UI or call the API directly with curl.
Via the UI
Reach the Search view
After a successful CSV upload the app automatically transitions to the Search view. You will see a form with the label Busqueda and a single text input.
Type your query
Click the search input (placeholder: Inserte su letra) and start typing. The input accepts any free-text string — partial words, digits, phone number fragments, email addresses, and so on.
Wait for the debounce
After 300 ms of inactivity the frontend automatically sends
GET /api/users?q={yourQuery} to the backend. No button press is needed — results update as you type.Via the API
Pass your search term as theq query parameter on GET /api/users:
200 with a data array containing every matching row:
"mexico":
How the Filter Works
The search logic is intentionally broad. For each row in the in-memory dataset, the server calls:- Every column is searched —
id,nombre,apellido,edad,email,ciudad,pais,telefono, and any other columns present in your CSV. - Partial matches succeed — the query
"can"matches"Cancun". - The comparison is case-insensitive — both sides are lowercased before comparing.
- A row is included if any single column matches — you do not need to specify which column to search.
Error Case
If theq parameter is omitted entirely, the endpoint returns HTTP 500:
?q= followed by at least one character. An empty string (?q=) is technically provided but will match every row because every value includes the empty string.