🔨 Note: major refactoring of the code is planned
InspectorMate provides a central place to inspector to gather all the information needed to conduct a successful inspection.
Explore the docs »
Report Bug
·
Request Feature
InspectorMate is a Windows desktop application designed to streamline the workflow for inspectors. It offers tools for organizing folders, managing document requests, findings, and questions, and includes a rich text editor. The app references documents from monitored folders and supports viewing various file types. With a flexible layout, users can easily view documents while taking notes, ensuring efficient and organized inspections.
- View Multiple File Formats: Safely view various file types, including Microsoft Office formats (requires MS Office suite), with no risk of altering the original files. Convert Office documents and text files to PDF for secure, unchangeable viewing. (Supported formats: .pdf, .txt, .md, .png, .jpeg, .jpg, .docx, .doc, .xlsx, .xls, .ppt, .pptx)
- Import Tags from OneNote: Seamlessly import tags from specific OneNote sections for efficient categorization.
- Bulk Import of "Signage": Import data from multiple Excel files simultaneously, streamlining the signage management process.
- Export to Excel: Easily export requests, findings, and questions into structured Excel files for reporting or further analysis.
- Recursive Zip File Extraction: Unpack zip files recursively, ensuring that all nested content is extracted.
- Embedded PDF Extraction: Automatically unpack embedded PDFs within files for quick access.
- Excel Sheet Merging: Merge multiple Excel sheets into a single document, simplifying data consolidation.
- Create Stylish Notes: Write detailed, beautifully formatted notes using the rich text editor, and save them as clean HTML files for easy sharing and access.
- Automatic Reference Key Detection: Effortlessly detect reference keys from filenames or folder names to streamline document organization.
- Smart Reference Key Increment: Automatically increment signage reference key, with or without a prefix, ensuring consistency in document tracking.
- File Access Flexibility: Open files seamlessly, even if they've been renamed or moved, maintaining a smooth workflow without manual re-linking.
to come : visualize and annotate database extract from Excel or csv
"Signage" refers to key elements like document requests, findings, and questions. Unlike simple tags or labels, signage items have a defined lifecycle (e.g., Open, Closed, On Hold), allowing for more dynamic tracking and management.
Document requests, referred to as "requests," are organized within a dedicated tab for streamlined access and handling.
"RefKey" serves as the unique identifier for a "Signage". It consists of an optional prefix (letters [a-Z]), a 3-digit number (e.g., 003), and an optional suffix (letters [a-Z]). To link a "Signage" to a document (e.g., evidence), the document's name must begin with the RefKey (e.g., 001 Training records of Walter White.pdf).
A "workspace" is a dedicated folder where all files and folders related to an inspection are systematically organized. When setting up a workspace, two primary folders are created: “Evidence” and “Notebook.” The “Evidence” folder serves as the repository for documents received in response to requests, from which the app will generate references. The “Notebook” folder is designated for note files, which have the “.phv” extension. Additionally, the “Notebook” folder contains a “.image” subfolder that stores all images copy-pasted into note files.
The popup dialog (shortcut "ctrl + R" or via File menu) provides an interface for selecting the signage type, with "request" set as the default option. The reference key (refkey) is automatically incremented based on the chosen signage type and any specified prefix, ensuring consistent and organized tracking.
The built-in screen capture tool enables users to capture and paste images along with citations directly into internal notes. The citation, automatically placed below the image, includes essential details such as the reference key, title, subtitle, reference, and current page number. When the capture is pasted into other applications the image is transferred without the accompanying citation.
You can create a note for any item organized in a table by using the Note tab in the right pane. An icon will appear in the first column of the item to indicate that a note is associated with it.
Effortlessly navigate your workspace files and folder structure with the intuitive popup panel located on the left side of the interface. This panel provides a view of your directories within your workspace, making it easy to find what you need without hassle. The "Explorer" panel allows you to open any file with ease, using the default system applications. The "Notebook" tab offers quick access to your notes. To create new notes, right-click within the panel to open the context menu that provides additional options to manage your notes and files.
Right-click within the "Explorer" or "Notebook" panel to open the context menu. Use the system file dialog to create folders and files. When you create a note, it is saved by default in the Notebook folder assigned during the workspace setup. Note files have the “.phv” extension, but they are standard HTML files that can be opened with any web browser.
For more examples, please refer to the Documentation
If the app failed to connect to OneNote try the following workarounds:
run regedit.exe, and navigate to
HKEY_CLASSES_ROOT\TypeLib\{0EA692EE-BB50-4E3C-AEF0-356D91732725}
There should only be one subfolder in this class called 1.1. If you see 1.0 or any other folders, you'll need to delete them.
The final hierarchy should look like this:
|- {0EA692EE-BB50-4E3C-AEF0-356D91732725}
| |- 1.1
| |-0
| | |- win32
| |- FLAGS
| |- HELPDIR
Alternatively use the following powershell script
$path 'HKEY_CLASSES_ROOT\TypeLib\{0EA692EE-BB50-4E3C-AEF0-356D91732725}\1.0'
if (Test-Path -Path registry::$path){
Get-Item registry::$path | Remove-Item -Verbose
}
Clear the content of C:\Users\<username>\AppData\Local\Temp\gen_py
Type %temp%
in the address bar in FileExplorer and delete the folder gen_py
.
- In the Registry Editor, locate the following subkey:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common
-
On the menu bar, click Edit > New > Key and type
Security
and press Enter. -
Right click Security, then click New > DWORD (32-bit) Value and type
DisableHyperlinkWarning
and press Enter. -
Double click the above value, select Decimal and change the Value data to
1
, then click OK.
The document viewer has the functionality of taking screen capture. Depending on the Windows display configuration, the images might be blurry. The solution is to set the Windows text size to 100 % instead of 150 % (default).
- Right-click on the desktop
- Display parameters
- Change the value of the dropdown menu under "Scale and layout" to 100 %
Remember that in most Windows applications, you can change the text font size by using "Ctrl + wheel"
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
You can contribute in many ways:
Report bugs at https://github.com/ghrimx/InspectorMate/issues.
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Run the executable from windows command line
Inspectormate.exe -V > sdout.txt 2>&1
If you have a suggestion that would make this better, please fork the repo and create a pull request (see Get Started). You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
The best way to send feedback is to file an issue at https://github.com/ghrimx/InspectorMate/issues.
InspectorMate could always use more documentation, whether as part of the official InspectorMate docs, in docstrings, or even on the web in blog posts, articles, and such.
Ready to contribute? Here's how to set up InspectorMate
for local development.
-
Fork the
InspectorMate
repo on GitHub. -
Clone your fork locally:
git clone git@github.com:your_name_here/InspectorMate.git
-
Install your local copy into a virtualenv. Assuming you have "venv" installed, this is how you set up your fork for local development:
python -m venv /path/to/new/virtual/environment
.\venv\Scripts\activate
cd InspectorMate
pip install -r .\requirements.txt
-
Create a branch for local development:
git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
-
When you're done making changes, check that your changes pass
pylama
and the tests:pylama .\src > pylama_outcome.txt
pytest -rA .\tests
To get pylama, just pip install it into your virtualenv. Check
pylama.ini
for linters.Tips: to run a subset of tests
pytest -rA .\test\<test-file>.py -k "test_<method-name>"
-
Commit your changes and push your branch to GitHub::
git add .
git commit -m "Your detailed description of your changes."
git push origin name-of-your-bugfix-or-feature
-
Submit a pull request through the GitHub website.
None yet. Why not be the first?
💖 Help will be greatly appreciated for issue #01
Distributed under the GPL-3.0 license. See LICENSE.txt for more information.
The best way to get in touch is to file an issue at https://github.com/ghrimx/InspectorMate/issues.
- PyQt6 by Riverbank Computing. License under GPL license.
- Fugue Icons by Yusuke Kamiyamane. Licensed under a Creative Commons Attribution 3.0 License.
- Remix Icon Licensed under Apache License.
- Qt Advanced Docking System Licensed under LGPL-2.1 license.
- PyMuPDF by Artiflex. Licensed under GNU AFFERO GPL 3.0.
- PyQt-Template Licensed under MIT license.
- one-py Licensed under MIT license.
- QtWaitingSpinner Licensed under MIT license.
- html2text by Aaron Swartz. Licensed under GPL-3.0 license
- openpyxl Licensed under MIT license.
- pywin32 by Mark Hammond (et al). Licensed under Python Software Foundation License (PSF)
- pandas Licensed under BSD License (BSD 3-Clause License Copyright (c) 2008-2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and ...)