Metadata-Version: 2.1
Name: pg-fms
Version: 0.1.2
Summary: The Purple Geckos File Management System (PG-FMS) is an advanced, Python-based file management solution designed to streamline and enhance file handling tasks.
Author-Email: Mike Odnis <airwolf635@gmail.com>, Pankti Mehta <pnm1@rice.edu>, Vay Manning <jmanning7@dmacc.edu>
License: MIT
Requires-Python: >=3.12
Requires-Dist: flask>=3.0.3
Requires-Dist: pdm>=1.19.0
Requires-Dist: requests>=2.31.0
Requires-Dist: typing-extensions>=4.8.0
Description-Content-Type: text/markdown

# Purple Geckos File Management System (PG-FMS)

Copyright © 1999 by Karl E. Wiegers. Permission is granted to use, modify, and distribute this document for any purpose, provided that this notice is included in all copies or substantial portions of it.

## Table of Contents

- [Introduction](#introduction)
  - [Purpose](#purpose)
  - [Document Conventions](#document-conventions)
  - [Intended Audience and Reading Suggestions](#intended-audience-and-reading-suggestions)
  - [Product Scope](#product-scope)
  - [References](#references)
- [Overall Description](#overall-description)
  - [Product Perspective](#product-perspective)
  - [Product Functions](#product-functions)
  - [User Classes and Characteristics](#user-classes-and-characteristics)
  - [Operating Environment](#operating-environment)
  - [Design and Implementation Constraints](#design-and-implementation-constraints)
  - [User Documentation](#user-documentation)
  - [Assumptions and Dependencies](#assumptions-and-dependencies)
- [External Interface Requirements](#external-interface-requirements)
  - [User Interfaces](#user-interfaces)
  - [Hardware Interfaces](#hardware-interfaces)
  - [Software Interfaces](#software-interfaces)
  - [Communications Interfaces](#communications-interfaces)
- [System Features](#system-features)
  - [Feature 1: File Operations](#feature-1-file-operations)
  - [Feature 2: File Filtering](#feature-2-file-filtering)
- [Other Nonfunctional Requirements](#other-nonfunctional-requirements)
  - [Performance Requirements](#performance-requirements)
  - [Safety Requirements](#safety-requirements)
  - [Security Requirements](#security-requirements)
  - [Software Quality Attributes](#software-quality-attributes)
  - [Business Rules](#business-rules)
- [Other Requirements](#other-requirements)
- [Appendix A: Glossary](#appendix-a-glossary)
- [Appendix B: Analysis Models](#appendix-b-analysis-models)
- [Appendix C: To Be Determined List](#appendix-c-to-be-determined-list)

---

## Revision History

| Name | Date | Reason for Change |
| ---- | ---- | ------------------ |
| Initial Draft | 2024-07-01 | Created initial draft |

## Introduction

### Purpose

The Purple Geckos File Management System (PG-FMS) is a Python-based solution designed to streamline file management tasks, enhancing efficiency and flexibility for users.

### Document Conventions

Standard markdown conventions are used throughout this document for clarity and consistency.

### Intended Audience and Reading Suggestions

This document is intended for developers, project managers, testers, and documentation writers involved in the development and deployment of PG-FMS. Start with the overview sections and delve deeper into specific sections as needed.

### Product Scope

PG-FMS covers comprehensive file operations including moving, copying, renaming, and deleting files, along with advanced file filtering capabilities based on criteria like file type, size, and date modified.

### References

- [Python](https://www.python.org)
- [CLI](https://en.wikipedia.org/wiki/Command-line_interface)

---

## Overall Description

### Product Perspective

PG-FMS is a standalone file management system developed to operate across various platforms, ensuring compatibility with different operating environments and system configurations.

### Product Functions

- **File Operations:** Move, copy, rename, and delete files.
- **File Filtering:** Filter files based on type, size, and date modified.

### User Classes and Characteristics

Users include administrators and end-users seeking efficient file management solutions. Admins have access to all features, while end-users have restricted capabilities based on permissions.

### Operating Environment

PG-FMS operates on Python, compatible with Windows, macOS, and Linux platforms. It requires minimal system resources and supports integration with existing software environments.

### Design and Implementation Constraints

PG-FMS adheres to Python programming standards and integrates with standard libraries for file system operations. It maintains compatibility with Python versions 3.6 and above.

### User Documentation

Comprehensive user manuals and online help guides are provided to assist users in installing, configuring, and utilizing PG-FMS effectively.

### Assumptions and Dependencies

PG-FMS assumes a stable operating environment with access to standard Python libraries and consistent file system configurations across different platforms.

---

## External Interface Requirements

### User Interfaces

PG-FMS utilizes a command-line interface (CLI) for user interactions, providing a straightforward method for executing file management commands and operations.

### Hardware Interfaces

PG-FMS interacts with standard hardware components such as storage devices and network interfaces, ensuring seamless data transfer and management.

### Software Interfaces

PG-FMS integrates with Python's standard libraries for file handling and system operations, maintaining compatibility with operating system-specific APIs and libraries.

### Communications Interfaces

PG-FMS does not require external communication interfaces beyond standard system protocols used for file transfer and data management.

---

## System Features

### Feature 1: File Operations

- **Description and Priority:** Implement basic file operations including move, copy, rename, and delete files. (High)
- **Stimulus/Response Sequences:** User initiates commands via CLI; PG-FMS performs specified file operation and provides confirmation or error messages.
- **Functional Requirements:**
  - REQ-1: Allow users to move files between directories.
  - REQ-2: Enable users to copy files with specified source and destination paths.
  - REQ-3: Provide functionality to rename files based on user-provided new names.
  - REQ-4: Support deletion of files with confirmation prompts.

### Feature 2: File Filtering

- **Description and Priority:** Implement advanced file filtering capabilities based on file attributes such as type, size, and date modified. (Medium)
- **Stimulus/Response Sequences:** User specifies filtering criteria via CLI arguments; PG-FMS filters files accordingly and displays results.
- **Functional Requirements:**
  - REQ-5: Filter files by file type (e.g., text files, images, documents).
  - REQ-6: Filter files by size range (e.g., greater than 1MB, less than 100KB).
  - REQ-7: Filter files based on date modified (e.g., last 7 days, last month).

---

## Other Nonfunctional Requirements

### Performance Requirements

- PG-FMS should execute file operations efficiently, with response times under one second for typical file management tasks.
- File filtering operations should complete within reasonable timeframes, even with large datasets.

### Safety Requirements

- PG-FMS should prevent accidental file deletions by requiring user confirmation before executing delete operations.
- Error handling mechanisms should ensure that critical file operations do not result in data loss or corruption.

### Security Requirements

- PG-FMS must implement user authentication and authorization mechanisms to restrict access based on user roles and permissions.
- File operations should comply with security protocols and standards to prevent unauthorized access or manipulation of sensitive data.

### Software Quality Attributes

- PG-FMS prioritizes reliability and robustness, ensuring consistent performance across different operating systems and environments.
- The system should be maintainable, allowing for easy updates and enhancements without disrupting existing functionality.

### Business Rules

- Admin users have full access to all file management features and settings.
- End-users may have restricted access based on their assigned roles and permissions within the system.

---

## Other Requirements

- TBD

---

## Appendix A: Glossary

- **CLI:** Command-line interface
- **API:** Application programming interface
- **Python:** High-level programming language

---

## Appendix B: Analysis Models

- TBD

---

## Appendix C: To Be Determined List

- TBD
