File Formats and Compatibility
What file formats are supported?
What file formats are supported?
- CSV (
.csv) - Comma-separated values files - Excel 97-2003 (
.xls) - Legacy Excel format - Excel 2007+ (
.xlsx) - Modern Excel format
pd.read_csv() and Excel files using pd.read_excel() with the openpyxl engine (app.py:37-42).Note: All three formats are treated equally - the application automatically detects the format based on file extension.Does the CSV file need to be in a specific format?
Does the CSV file need to be in a specific format?
- First 5 rows are skipped - These typically contain Auvo export metadata
-
Row 6 must contain column headers with these exact names:
DataClienteEnderecoOS DigitalRelato
-
The
Relatocolumn must contain task descriptions where keywords will be searched
Relato column and returns the five columns listed above in the results (app.py:38, app.py:49-53).Can I use files from sources other than Auvo?
Can I use files from sources other than Auvo?
- Is in CSV, XLS, or XLSX format
- Has 5 rows of headers/metadata before the column names (or adjust the file accordingly)
- Contains the required columns:
Data,Cliente,Endereco,OS Digital, andRelato - Has searchable text in the
Relatocolumn
What encoding should my CSV file use?
What encoding should my CSV file use?
- UTF-8 (recommended)
- Latin-1 (ISO-8859-1)
- Windows-1252
Keywords and Search Functionality
How do I customize the search keywords?
How do I customize the search keywords?
- Navigate to the configuration page from the main menu
- Enter your keywords as a comma-separated list
- Click save
- Your custom keywords are stored in the session and will be used for all subsequent file uploads
What are the default keywords?
What are the default keywords?
- solicitar peça
- quebrado, quebrada, quebrados
- orçamento
- danificada, danificado, danificados, danificadas
- trocar cabo
- soldar
- trocar
- instalar
Is the keyword search case-sensitive?
Is the keyword search case-sensitive?
Relato column text (app.py:50).For example:- Keyword
"quebrado"will match “QUEBRADO”, “Quebrado”, “equipamento quebrado”, etc. - Keyword
"instalar"will match “instalação”, “instalar”, “precisa instalar”, etc.
str.contains() method with case=False parameter.Can I search for phrases with spaces?
Can I search for phrases with spaces?
"solicitar peça"- searches for this exact phrase"trocar cabo"- finds records mentioning cable replacement"equipamento danificado"- locates damaged equipment mentions
How does the application count keyword matches?
How does the application count keyword matches?
- Total de Registros - All rows in the uploaded file (after skipping 5 header rows)
- Tarefas Encontradas - Rows where the
Relatocolumn contains at least one keyword - Taxa de Ocorrência - Percentage of records matching (app.py:55-73)
Export and Download Features
What export formats are available?
What export formats are available?
- Excel (.xlsx) - Includes two sheets:
Tarefas Encontradas- Filtered results with all five columnsEstatísticas- Summary metrics and generation timestamp
- PDF - Formatted report with:
- Header with generation date
- Statistics dashboard
- Keywords used section
- Results table with clickable links
Is there a limit on how many rows can be exported?
Is there a limit on how many rows can be exported?
- Excel exports - Can handle very large datasets (tested up to 1M+ rows with pandas/openpyxl)
- PDF exports - May become slow or timeout with thousands of rows due to WeasyPrint rendering
Can I download results later, or do I need to download immediately?
Can I download results later, or do I need to download immediately?
- You close your browser
- Your session expires
- You clear browser cookies
- The server restarts
Are links in the OS Digital column clickable in exports?
Are links in the OS Digital column clickable in exports?
- URLs are preserved as text
- Excel may auto-detect and hyperlink them
- You can manually convert to hyperlinks in Excel if needed
- URLs are rendered as clickable HTML links (app.py:218, app.py:238)
- Links open in a new tab when clicked
- Only URLs starting with
http://orhttps://are converted to links (app.py:28-29)
- Links are fully clickable in the results table
- Open in new browser tabs via
target="_blank"attribute
Session and Data Persistence
How long does the application remember my custom keywords?
How long does the application remember my custom keywords?
- Your browser remains open
- You don’t clear cookies
- The session cookie doesn’t expire (default is until browser closes)
Does the application store my uploaded files permanently?
Does the application store my uploaded files permanently?
- Upload - Your original file is processed in memory (app.py:140)
- Temporary storage - Filtered results are saved to
temp/folder with a unique UUID filename (app.py:145-149) - Session reference - Only the temporary filename is stored in the session (app.py:152)
- Automatic cleanup - Files remain until manually deleted
Can I view my processing history?
Can I view my processing history?
- Original filename
- Processing date and time
- Number of tasks found
- Total records processed
Is my data secure? Can others see my uploaded files?
Is my data secure? Can others see my uploaded files?
- Each user session has a unique SECRET_KEY-signed cookie
- Temporary files use random UUID names (app.py:145)
- Other users cannot access your session data or files
- Original uploads are NOT saved to disk
- Only filtered results are temporarily stored
- No database or permanent storage is used
- Use HTTPS to encrypt data in transit
- Set appropriate file system permissions on the
temp/folder - Implement automatic temporary file cleanup
- Use environment-specific SECRET_KEY (never commit
.envto version control) - Consider adding authentication for multi-user deployments
Browser Compatibility
Which browsers are supported?
Which browsers are supported?
- Chrome/Edge (recommended) - Version 90+
- Firefox - Version 88+
- Safari - Version 14+
- Opera - Version 76+
- JavaScript enabled (for table search and interactivity)
- Cookies enabled (for session management)
- File upload support
Does the application work on mobile devices?
Does the application work on mobile devices?
- File uploads work on iOS Safari and Android Chrome
- Table viewing is functional but may require horizontal scrolling
- Downloads work on all major mobile browsers
- Desktop/laptop - Full functionality, best experience
- Tablet - Good for viewing and basic uploads
- Phone - Works but challenging for large tables
Can I use the application offline?
Can I use the application offline?
- An active Flask server running (
python app.py) - Network connection to localhost (127.0.0.1:5000)
- Browser access to the running server
- Run the Flask server locally on your machine
- Access it via
http://127.0.0.1:5000in your browser - Process files while the server is running
Technical Questions
What Python version is required?
What Python version is required?
Can I run this application in production?
Can I run this application in production?
debug=True, which is not suitable for production.For production deployment, you should:-
Change debug mode:
-
Use a production WSGI server:
- Gunicorn (Linux/macOS):
gunicorn app:app - Waitress (Windows):
waitress-serve --listen=*:5000 app:app
- Gunicorn (Linux/macOS):
-
Add security measures:
- File upload size limits
- Rate limiting
- HTTPS/SSL certificates
- Authentication/authorization
- CSRF protection
-
Implement file cleanup:
- Cron job to delete old temp files
- Automatic cleanup on session expiration
-
Set environment variables properly:
- Strong SECRET_KEY
- Production database (if adding one)
How can I modify the columns that are filtered and displayed?
How can I modify the columns that are filtered and displayed?
app.py:52-53. To modify:-
Change the search column (currently
Relato): -
Change result columns (currently 5 columns):
-
Adjust header skip rows (currently 5):
Can I integrate this with other systems via API?
Can I integrate this with other systems via API?
-
Add JSON response routes:
- Use Flask-RESTful or Flask-RESTX for structured API development
- Implement authentication (JWT, API keys, etc.)
-
Add CORS headers if calling from different domains:
Getting Started
I'm new to this application. Where should I start?
I'm new to this application. Where should I start?
-
Install dependencies (see Installation guide)
-
Configure environment
- Create
.envfile with SECRET_KEY - Create
temp/folder
- Create
-
Start the application
- Open in browser: http://127.0.0.1:5000
-
Upload a test file
- Use a small Auvo CSV export (< 1000 rows)
- Process with default keywords
-
Explore features
- View statistics
- Download Excel/PDF
- Customize keywords in Configurações
- Check Histórico
Where can I get help if I'm stuck?
Where can I get help if I'm stuck?
- Check the Troubleshooting guide - Covers common problems and solutions
-
Review error messages - Look at the terminal where you ran
python app.py - Read this FAQ - Many questions are answered here
-
Verify your setup:
-
Enable debug output - The application runs with
debug=Trueby default, showing detailed errors
- Python version
- Operating system
- Full error message
- Steps to reproduce