Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rokawoo/security-training-enforcement-system
System to automate Security Training Enforcement record keeping
https://github.com/rokawoo/security-training-enforcement-system
file filesystem regex
Last synced: 2 days ago
JSON representation
System to automate Security Training Enforcement record keeping
- Host: GitHub
- URL: https://github.com/rokawoo/security-training-enforcement-system
- Owner: Rokawoo
- License: mit
- Created: 2024-04-25T17:20:16.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-04-29T20:05:51.000Z (6 months ago)
- Last Synced: 2024-04-29T21:57:02.540Z (6 months ago)
- Topics: file, filesystem, regex
- Language: Python
- Homepage:
- Size: 84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Security Enforcement System
By Rokawoo
> [!CAUTION]
> ⭐ If your security certificates are out of date, expect a visit. Yeah, I would start running if I were you.**What is a Security Enforcement System?**
A Security Enforcement System is a package of scripts that you can run to log user data, certificate names, and certificate dates. After logging, the data is normalized, categorized, and then distributed to the proper record folder for safekeeping. Additionally, there's a record search function for verifying the existence or status of stored records.**Demo**
[Demo](https://github.com/Rokawoo/security-training-enforcement-system/assets/129356996/93778193-ac08-44a1-91df-63a4412b0e87)
**Features Include:**
- Conversion of images to PDFs.
- Content-aware PDF scanning to extract dates.
- Automatic retrieval of first and last names with a switch option.
- PDF display for review if no date is found.
- A robust date-logging system that alerts you about outdated certificates. It also facilitates easy assignment of dates to certificates in DD, MM-DD, or YYYY-MM-DD formats.
- Auto-filling of missing information with the current system date.
- A file buffer to ensure files are not distributed in case of error.
- Automatic and manual modes of distribution.
- Logging of moved files for audit.**How to Use the System**
**Security Enforcement System**:
1. Type "get" or enter a name to start.
2. Watch as specified files are normalized and sorted into corresponding folders.
3. Type "end" to flush the buffer, or repeat steps to process more files.**Record Search**:
1. Enter the first and last name to search for a record.
2. View existing records in the search directory and subdirectories.## 🛠 Libraries and Tools Used
The project uses the following libraries and tools:
- **pdfplumber**: For working with and extracting content from PDF files.
- **datetime**: Python's built-in module for date and time manipulations.
- **re**: Python's built-in module for regular expressions.
- **fitz**: From PyMuPDF, used to work with PDF files.
- **tkinter**: Python's built-in library for creating graphical user interfaces.
- **datefinder**: For finding dates in text.
- **PIL (Python Imaging Library)**: For image processing, accessed through `Image` and `ImageTk`.
- **os**: For interacting with the operating system, such as file operations.
- **shutil**: For high-level file operations like copying and moving files.
- **logging**: For logging messages and errors in Python.
- **subprocess**: For running subprocesses and executing system commands from Python.
- **sys**: Provides access to some system-specific parameters and functions.
- **dotenv**: For loading environment variables from `.env` files.
- **reportlab**: Specifically, `reportlab.lib.pagesizes` and `reportlab.pdfgen.canvas`, used for generating PDFs.