DataOpsHub 6.2.0
A Python toolkit for streamlined data operations and database management
License: MIT
Requires Python: >=3.9
Keywords: database, data operations, security, web automation

# DataOpsHub

**DataOpsHub** is a comprehensive Python package designed to streamline data operations, database management, and web automation tasks. It provides a robust framework for handling data entry, user management, and secure database operations.

## Features

- **Database Management**:
  - Advanced database operations and data handling
  - Efficient data upload and retrieval mechanisms
  - Comprehensive database connection management
- **User Management**:
  - Complete user service implementation
  - User model with extensive functionality
  - Secure user authentication and authorisation
- **Data Entry Forms**:
  - Form validation and processing
  - Custom form implementations
  - Data integrity checks
- **Security Features**:
  - Automated password management
  - Security configuration management
  - Custom security exceptions handling
- **Web Automation**:
  - Browser automation support (Firefox and Chrome)
  - Web driver setup and configuration
- **Constants and Configuration**:
  - Centralised error message management
  - Table mapping configurations
  - System-wide constants

---

## Installation Guide

### Dependency Notice

Before installing, please ensure the following dependencies are available on your system:

- **Required Third-Party Libraries**:
  - SQLAlchemy
  - Flask
  - Selenium
  - PyYAML
  - cryptography

  You can install them via pip:
  
  ```bash
  pip install SQLAlchemy Flask selenium PyYAML cryptography
  ```

  Or via Anaconda (recommended channel: `conda-forge`):

  ```bash
  conda install -c conda-forge sqlalchemy flask selenium pyyaml cryptography
  ```

### Installation Instructions

Install the package using pip:

```bash
pip install dataopshub
```

### Package Updates

To stay up-to-date with the latest version of this package, simply run:

```bash
pip install --upgrade dataopshub
```

---

## Project Structure

The package is organised into several sub-packages:

- **databases/**: Core database operations and management
  - `database_handler.py`: Main database operations and connection management
  - `upload_data.py`: Data upload utilities

- **models/**: Data models and base classes
  - `user.py`: User model implementation
  - `base.py`: Base model definitions

- **services/**: Business logic and service implementations
  - `user_service.py`: User management services

- **data_entry_forms/**: Form handling and validation
  - `forms/`: Custom form implementations
  - `validators/`: Form validation utilities

- **security/**: Security-related functionality
  - `automated_passwords.py`: Password management
  - `config.py`: Security configuration
  - `exceptions.py`: Security-related exceptions

- **web_automation/**: Web automation tools
  - `webdriver_Firefox-Chrome_setup_test.py`: Browser automation setup

- **constants/**: System-wide constants and configurations
  - `error_messages.py`: Error message definitions
  - `table_mappings.py`: Database table mappings

For detailed version history and changes, please refer to:

- `CHANGELOG.md`: Comprehensive list of changes for each version
- `VERSIONING.md`: Versioning policy and guidelines