Overview
After processing your Auvo file, the results page displays all tasks that match your configured keywords. This page provides statistics, an interactive table, and quick export options.Results Page Layout
The results page (/upload route, rendered as resultado.html) consists of several sections:
1. Page Header
The header includes:- Title: “Tarefas Encontradas” (Tasks Found)
- Export buttons: Quick access to Excel and PDF downloads (if results exist)
- Navigation buttons: Links to configuration and new file upload
2. Statistics Cards
Four color-coded cards display key metrics:Total de Registros
Total number of rows in the original file (excluding the 5 skipped header rows)
Tarefas Encontradas
Number of tasks that matched your keywords
Taxa de Ocorrência
Percentage of total records that require action
Palavras Ativas
Number of keywords that found at least one match
Statistics are generated by the
gerar_estatisticas() function in app.py:55.3. Keyword Breakdown
The “Ocorrências por Palavra-chave” section shows how many matches each keyword found:Only keywords that found matches appear in this section. If a keyword found zero matches, it won’t be listed.
4. Interactive Results Table
The main table displays filtered tasks with the following columns:| Column | Description | Example |
|---|---|---|
| Data | Service order date | 15/03/2026 |
| Cliente | Client name | Empresa XYZ Ltda |
| Endereco | Service address | Rua ABC, 123 |
| OS Digital | Clickable link to digital service order | [Link] |
| Relato | Service report (contains matched keywords) | “Equipamento quebrado, solicitar peça” |
Using the Search Feature
Search Functionality
The results table includes a client-side search box (powered by JavaScript inresultado.js):
The search feature works client-side (in your browser), so it’s instant and doesn’t require re-processing the file.
No Results Message
If your search term doesn’t match any rows, a friendly message appears:Handling Empty Results
If no tasks match your keywords, you’ll see:- Your keywords don’t appear in any “Relato” entries
- The file contains no data (after skipping 5 header rows)
- All “Relato” entries are empty or null
Understanding the Statistics
Total de Registros
Calculated as the total number of rows in your file minus 5 header rows:Tarefas Encontradas
The count of rows where the “Relato” column contains at least one configured keyword:Taxa de Ocorrência
Percentage calculated as:A higher percentage doesn’t necessarily mean more problems—it depends on your keywords. If you search for common terms, you’ll get more matches.
Palavras Ativas
Count of keywords that found at least one match. Calculated by iterating through all keywords and counting those withcount > 0:
Table Styling and Features
Visual Design
The table uses Bootstrap styling for a clean, professional appearance:- Striped rows: Alternating row colors for easier reading
- Hover effect: Rows highlight when you move your mouse over them
- Responsive design: Table scrolls horizontally on small screens
- Clickable links: OS Digital links styled in blue with hover effects
Table Generation
The table HTML is generated server-side using pandas:escape=False is critical for rendering clickable links in the OS Digital column. The criar_links() function converts URLs to HTML anchor tags.Results Persistence
Session Storage
Your results are stored in two ways:-
Temporary File: The filtered DataFrame is saved as a CSV in the server’s
temp/folder- Filename: UUID-based (e.g.,
a3f5b9c7e1d4f8a2.csv) - Location: Stored in
session['temp_filename'] - Purpose: Used for Excel and PDF exports
- Filename: UUID-based (e.g.,
-
Statistics: Saved in the session for display consistency
- Key:
session['last_stats'] - Contains: total, filtrados, percentual, por_palavra
- Key:
Results persist for the duration of your browser session. If the session expires or you clear cookies, you’ll need to re-upload your file.
Processing History
Each file you process is added to your session history:- Original filename
- Processing date/time
- Number of tasks found
- Total records processed
/historico route from the home page.
Quick Actions from Results Page
Export Options
Two export buttons appear when results exist:Excel Export
Downloads a
.xlsx file with two sheets: “Tarefas Encontradas” and “Estatísticas”PDF Export
Generates a formatted PDF report with statistics and the full results table
Navigation Options
- Config: Opens the keyword configuration page
- Novo Arquivo: Returns to the home page to upload a different file
Keyword Management
At the bottom of the results page, you can:- View all keywords used in the current search
- Click “Editar” to modify keywords (redirects to
/config)
Troubleshooting
Results Page Won’t Load
If you’re redirected back to the home page with an error:- Check that your file format is supported
- Ensure required columns (Data, Cliente, Endereco, OS Digital, Relato) exist
- Verify the file isn’t corrupted
Search Not Working
If the search box doesn’t filter results:- Ensure JavaScript is enabled in your browser
- Check the browser console for JavaScript errors
- Verify the
resultado.jsscript is loading correctly
Links Not Clickable
If OS Digital links aren’t clickable:- The original data must contain valid URLs starting with
http - The
criar_links()function only converts strings starting with “http”
Results Disappeared
If you return to the results page but see “Os resultados expiraram”:- Your session has expired (typically after browser closure or timeout)
- The temporary file was deleted from the
temp/folder - Re-upload your file to generate new results
Related Routes
POST /upload- Processes file and displays results (app.py:124)GET /download/excel- Exports results to Excel (app.py:178)GET /download/pdf- Exports results to PDF (app.py:206)GET /config- Modifies search keywords (app.py:108)GET /historico- Views processing history (app.py:118)
Next Steps
- Export your results to Excel or PDF
- Configure keywords to refine future searches
- Upload a new file to analyze different data