An open API service indexing awesome lists of open source software.

https://github.com/zanebrackley/reportgenerator


https://github.com/zanebrackley/reportgenerator

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# Automated Monthly Cybersecurity Report Generator

## Overview
This project automates the extraction of data from PDF reports generated by Datto, processes and stores the extracted data in a local SQL database, and generates a structured, user-editable report in Microsoft Word (.docx) format. The report provides a comprehensive analysis of security, device performance, backup status, patch compliance, and recommendations for clients.

## Features
- Extraction of text and structured data from uploaded PDFs using `pdfplumber` and `Camelot`.
- Storage of extracted data in a local SQLite database (can be configured for other databases).
- Generation of a structured, user-editable report in .docx format.
- Customizable report template with branding elements.
- Logging and monitoring for security and integrity.

## Requirements
- Python 3.8+
- Libraries:
- Flask
- SQLAlchemy
- pdfplumber
- camelot-py
- opencv-python
- python-docx
- SQL Database (SQLite by default, configurable in `config.py`)

## Installation
1. Clone the repository:
```
git clone https://github.com/ZaneBrackley/ReportGenerator.git
cd ReportGenerator
```

2. Setup the Virtual Environment and install the required Python libraries:
`For Mac-OS and Linux`
```
source ./setup.sh
```
`For Windows`
```
call setup.bat
```
3. Configure the database connection in `config.py` (if necessary).

## Usage
1. Run the Flask application to upload and process the reports:
```
python app/app.py
```
1. Upload the PDF's that were downloaded from Datto RMM.

2. The application will extract data from the PDFs, store it in the SQLite database, and generate a structured report in the root folder.

3. The application will also reset the database and clear existing records whenever new files are uploaded.

## Support
For any questions or support, please contact [email protected]