ghrimx / InspectorMate

Information and Document management system
GNU General Public License v3.0
1 stars 0 forks source link
document-management pdf-viewer pyqt6 rich-text-editor viewer

license-shield pylama-failed project-status-progress

🔨 Note: major refactoring of the code is planned


Logo

InspectorMate

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

About The Project

main-layout

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.

(back to top)

Built With

(back to top)

Features

to come : visualize and annotate database extract from Excel or csv

(back to top)

Usage

"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.

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.

Create Workspace

create-workspace

Drag and Drop frames to organize the layout

flexible-layout

Create a request from anywhere in the app

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.

create-request

Capture the screen and keep the document reference with it

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.

screen-capture

Annotate table item (use shortcuts for quick formatting)

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.

annotate-table-item

Explore the content of the workspace folder and open any file in the default app

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.

explore-workspace

Write note

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.

write-note

For more examples, please refer to the Documentation

(back to top)

Known issues

OneNote COM error

If the app failed to connect to OneNote try the following workarounds:

Workaround 1: Delete the registry key

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
}

Workaround 2: Delete gen_py

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.

HyperLink warning in OneNote

  1. In the Registry Editor, locate the following subkey:

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common

  1. On the menu bar, click Edit > New > Key and type Security and press Enter.

  2. Right click Security, then click New > DWORD (32-bit) Value and type DisableHyperlinkWarning and press Enter.

  3. Double click the above value, select Decimal and change the Value data to 1, then click OK.

Contributing

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

Report bugs at https://github.com/ghrimx/InspectorMate/issues.

If you are reporting a bug, please include:

Implement Features

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!

Submit Feedback

The best way to send feedback is to file an issue at https://github.com/ghrimx/InspectorMate/issues.

Write Documentation

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.

Get Started!

Ready to contribute? Here's how to set up InspectorMate for local development.

  1. Fork the InspectorMate repo on GitHub.

  2. Clone your fork locally:

    • git clone git@github.com:your_name_here/InspectorMate.git
  3. 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
  4. Create a branch for local development:

    • git checkout -b name-of-your-bugfix-or-feature

    Now you can make your changes locally.

  5. 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>"

  6. 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
  7. Submit a pull request through the GitHub website.

(back to top)

Contributors

None yet. Why not be the first?

💖 Help will be greatly appreciated for issue #01

License

Distributed under the GPL-3.0 license. See LICENSE.txt for more information.

(back to top)

Contact

The best way to get in touch is to file an issue at https://github.com/ghrimx/InspectorMate/issues.

(back to top)

Acknowledgments

(back to top)