Skip to content

TheSSSAI/Reporting-System

Repository files navigation

PROJECT DOCUMENTATION



REPOSITORY DOCUMENTS

## Repository : ReportingSystem.Core.Domain

, ## Repository : ReportingSystem.Infrastructure

, ## Repository : ReportingSystem.Plugins.Examples

, ## Repository : ReportingSystem.Plugins.Sdk

, ## Repository : ReportingSystem.Service

, ## Repository : ReportingSystem.Shared.Common

, ## Repository : ReportingSystem.Shared.Contracts

, ## Repository : ReportingSystem.Web.UI


1 Id

574

2 Section

Reporting System Summary

3 Section Id

SUMMARY-001

4 Section Requirement Text

# Software Requirements Specification (SRS) for Reporting System

## Document Control
- **Version**: 1.0
- **Date**: November 2, 2025

## 1. Introduction

### 1.1 Purpose
This Software Requirements Specification (SRS) defines the functional and non-functional requirements for a locally deployable Reporting System. The system generates, manages, and delivers customizable HTML and PDF reports based on data from various sources. It includes a cloud-based activation key mechanism, a control panel for configuration, and a viewer for browsing reports. The system is designed to be extensible, secure, and aligned with world-class tech company standards.

### 1.2 Scope
The Reporting System provides:
- **Data Ingestion**: Connectors for databases, file systems, OPC (OLE for Process Control), and extensible custom connectors (e.g., FHIR, HL7).
- **Data Processing**: JSON-based intermediate data storage and transformation.
- **Report Generation**: Configurable HTML reports using Handlebars templates, with PDF export.
- **Report Delivery**: Outputs to cloud storage, email, local storage, FTP, etc.
- **Configuration**: A control panel for managing connectors, transformations, schedules, and templates.
- **Viewing**: A report viewer for browsing and accessing generated reports.
- **Deployment**: Local Windows service with cloud-based activation key validation.
- **Extensibility**: Plug-in architecture for future connectors and features.

The system ensures scalability, security, and user-friendly configuration while supporting both scheduled and on-demand reporting.

### 1.3 Definitions, Acronyms, and Abbreviations
- **SRS**: Software Requirements Specification
- **OPC**: OLE for Process Control, a standard for industrial automation data exchange
- **FHIR**: Fast Healthcare Interoperability Resources
- **HL7**: Health Level Seven, a standard for healthcare data exchange
- **JSON**: JavaScript Object Notation
- **Handlebars**: A templating engine for generating HTML reports
- **FTP**: File Transfer Protocol
- **FTPS**: FTP over SSL/TLS
- **SFTP**: SSH File Transfer Protocol
- **API**: Application Programming Interface
- **UI**: User Interface

### 1.4 References
- Handlebars documentation: https://handlebarsjs.com/
- OPC Foundation: https://opcfoundation.org/
- FHIR Specification: https://www.hl7.org/fhir/
- HL7 Standards: https://www.hl7.org/

### 1.5 Audience
This document is intended for:
- Software developers and architects
- Project managers and stakeholders
- Quality assurance teams
- System administrators
- End-users configuring and viewing reports

## 2. Overall Description

### 2.1 Product Perspective
The Reporting System is a standalone Windows service that operates locally but requires a cloud-based activation key for licensing. It integrates with external data sources (databases, files, OPC, etc.), processes data into JSON, applies transformations, and generates HTML or PDF reports using Handlebars templates. Reports can be scheduled or generated on-demand and delivered to various destinations. The system includes a control panel for configuration and a viewer for report access.

The system is designed with a modular architecture to support future extensions, such as new connectors (e.g., FHIR, HL7) via a plug-in framework.

### 2.2 Product Functions
- **Activation**: Validate and activate the service using a cloud-issued activation key.
- **Data Ingestion**: Connect to databases, files, OPC servers, or custom sources.
- **Data Processing**: Store intermediate data in JSON and apply configurable transformations.
- **Report Configuration**: Define schedules, intervals, and historical data ranges for reports.
- **Report Generation**: Create HTML reports using Handlebars templates, with PDF export.
- **Report Delivery**: Output reports to cloud storage, email, local storage, or secure file servers.
- **Control Panel**: Provide a UI for configuring connectors, transformations, templates, and schedules.
- **Report Viewer**: Enable browsing and viewing of generated reports.

### 2.3 User Classes and Characteristics
- **Administrators**: Configure connectors, transformations, templates, and schedules via the control panel. Require technical knowledge of data sources and reporting needs.
- **End-Users**: View and browse reports through the viewer. Minimal technical expertise required.
- **System Integrators**: Develop custom connectors (e.g., FHIR, HL7) using the plug-in framework.
- **IT Support**: Manage local deployment, activation, and maintenance of the Windows service.

### 2.4 Operating Environment
- **Platform**: Windows Server 2019/2022 or Windows 10/11 (64-bit)
- **Deployment**: Local installation as a Windows service
- **Network**: Internet access for cloud-based activation key validation
- **Dependencies**:
  - .NET Framework or .NET Core for Windows service
  - Database drivers (e.g., ODBC, JDBC) for database connectors
  - OPC UA client libraries for OPC connectivity
  - Handlebars.js for report templating
  - PDF generation library (e.g., wkhtmltopdf, iTextSharp)

### 2.5 Design and Implementation Constraints
- Must run as a Windows service for background operation.
- Activation key must be validated via a secure cloud API.
- All data processing and report generation must occur locally to ensure data privacy.
- Custom connectors must follow a defined plug-in specification.
- Reports must support both HTML and PDF formats.
- System must handle large datasets (up to 1M records) efficiently.

### 2.6 Assumptions and Dependencies
- **Assumptions**:
  - Users have stable internet access for initial activation.
  - Data sources provide consistent and well-structured data.
  - Administrators are trained to configure connectors and templates.
- **Dependencies**:
  - Cloud-based licensing server availability.
  - Third-party libraries for PDF generation and data connectivity.

## 3. Functional Requirements

### 3.1 System Activation
- **FR1.1**: The system shall validate an activation key via a secure cloud API during initial setup and periodically (e.g., every 30 days).
- **FR1.2**: The control panel shall provide a UI to input and update the activation key.
- **FR1.3**: The system shall operate in a trial mode (limited features) if the activation key is invalid or expired.
- **FR1.4**: Activation failures shall be logged, and users shall be notified via the control panel.

### 3.2 Data Input Connectors
- **FR2.1**: The system shall support data ingestion from:
  - Relational databases (e.g., SQL Server, MySQL, PostgreSQL) via ODBC/JDBC.
  - File systems (e.g., CSV, JSON, XML).
  - OPC UA servers for industrial data.
  - Custom connectors via a plug-in framework.
- **FR2.2**: Custom connectors shall follow a documented plug-in specification, including:
  - Input: Configuration parameters (e.g., connection strings, authentication).
  - Output: Data in JSON format.
  - Methods: Connect, Disconnect, Fetch Data, Validate Configuration.
- **FR2.3**: The system shall support future connectors (e.g., FHIR, HL7) without modifying core code.
- **FR2.4**: Connectors shall handle errors (e.g., connection failures) and log them for debugging.
- **FR2.5**: The control panel shall allow configuration of connector parameters (e.g., database credentials, file paths).

### 3.3 Intermediate Data Storage
- **FR3.1**: All ingested data shall be converted to a standardized JSON format for processing.
- **FR3.2**: The system shall store intermediate JSON data temporarily in memory or on disk, configurable by the administrator.
- **FR3.3**: JSON data shall include metadata (e.g., source, timestamp) for traceability.

### 3.4 Data Transformation
- **FR4.1**: The system shall provide a transformation engine to manipulate JSON data (e.g., filtering, aggregation, mapping).
- **FR4.2**: Transformations shall be configurable via the control panel using a visual editor or script-based interface (e.g., JavaScript, Python).
- **FR4.3**: The system shall support predefined transformation templates for common operations (e.g., sum, average, date formatting).
- **FR4.4**: Transformations shall be validated to prevent errors in report generation.

### 3.5 Report Configuration
- **FR5.1**: The system shall allow configuration of report schedules (e.g., daily, weekly, one-time).
- **FR5.2**: Reports shall support historical data ranges (e.g., last 7 days, specific date range).
- **FR5.3**: The control panel shall provide a UI to define report parameters (e.g., data source, transformation, template).
- **FR5.4**: The system shall support on-demand report generation triggered via the control panel or API.

### 3.6 Report Generation
- **FR6.1**: Reports shall be generated using Handlebars templates, accepting JSON data as input.
- **FR6.2**: The system shall support custom Handlebars templates uploaded via the control panel.
- **FR6.3**: Reports shall be exportable as HTML or PDF.
- **FR6.4**: The system shall provide a library of default templates for common report types (e.g., tabular, summary).
- **FR6.5**: Report generation errors shall be logged and reported to the user.

### 3.7 Report Delivery
- **FR7.1**: Reports shall be deliverable to:
  - Cloud storage (e.g., AWS S3, Google Cloud Storage, Azure Blob Storage).
  - Email (SMTP configuration).
  - Local file system.
  - <<$Change>>SFTP/FTPS servers<<$Change>>.
- **FR7.2**: The control panel shall allow configuration of delivery options (e.g., <<$Change>>credentials, host keys,<<$Change>> file naming conventions).
- **FR7.3**: Delivery failures shall be logged, and retry mechanisms shall be implemented (e.g., retry 3 times with 5-minute intervals).
- **FR7.4**: Reports shall be archived locally or in the cloud, configurable by the administrator.

#### Enhancement Justification
The requirement for report delivery via FTP has been updated to specify secure protocols (SFTP/FTPS). This change resolves a technical contradiction and security vulnerability, as standard FTP does not support encryption and transmits data in plaintext. This ensures that all report delivery mechanisms adhere to modern security standards, aligning with the overall security requirements of the system.

### 3.8 Control Panel
- **FR8.1**: The system shall provide a web-based control panel accessible via a local URL (e.g., http://localhost:8080).
- **FR8.2**: The control panel shall support:
  - Activation key management.
  - Connector configuration.
  - Transformation configuration.
  - Report scheduling and template management.
  - Delivery configuration.
  - System monitoring (e.g., logs, status).
- **FR8.3**: The control panel shall require user authentication (e.g., username/password, SSO).
- **FR8.4**: The control panel shall support role-based access control (e.g., admin, viewer).

### 3.9 Report Viewer
- **FR9.1**: The system shall provide a web-based report viewer to browse and view generated reports.
- **FR9.2**: The viewer shall support filtering and searching reports by metadata (e.g., date, type).
- **FR9.3**: The viewer shall display HTML reports natively and allow PDF downloads.
- **FR9.4**: The viewer shall require user authentication, with access restricted based on roles.

## 4. Non-Functional Requirements

### 4.1 Performance
- **NFR1.1**: The system shall process datasets up to 1 million records within 5 minutes.
- **NFR1.2**: Report generation shall complete within 10 seconds for datasets under 10,000 records.
- **NFR1.3**: The control panel and viewer shall load pages within 2 seconds under normal conditions.

### 4.2 Scalability
- **NFR2.1**: The system shall support up to 100 concurrent users accessing the control panel or viewer.
- **NFR2.2**: The system shall handle up to 1,000 reports per day without performance degradation.

### 4.3 Security
- **NFR3.1**: All data transmissions (e.g., cloud activation, <<$Change>>secure file transfers<<$Change>>) shall use HTTPS/TLS encryption.
- **NFR3.2**: Sensitive configuration data (e.g., database credentials) shall be encrypted at rest.
- **NFR3.3**: The system shall implement role-based access control for the control panel and viewer.
- **NFR3.4**: Audit logs shall track all user actions (e.g., configuration changes, report access).

#### Enhancement Justification
Requirement NFR3.1 was updated to replace "FTP" with "secure file transfers." This resolves a technical contradiction, as the standard FTP protocol does not natively support TLS encryption. By specifying secure alternatives like SFTP or FTPS, the requirement becomes technically feasible and eliminates a potential security vulnerability associated with transmitting data over an unencrypted channel.

### 4.4 Reliability
- **NFR4.1**: The system shall achieve 99.9% uptime, excluding scheduled maintenance.
- **NFR4.2**: The system shall recover from crashes automatically and resume pending tasks.

### 4.5 Usability
- **NFR5.1**: The control panel and viewer shall have an intuitive UI, requiring less than 1 hour of training for administrators.
- **NFR5.2**: The system shall provide inline help and tooltips for configuration options.

### 4.6 Maintainability
- **NFR6.1**: The system shall use a modular architecture to allow updates to individual components (e.g., connectors) without affecting others.
- **NFR6.2**: The system shall provide detailed logs for debugging and monitoring.

### 4.7 Compatibility
- **NFR7.1**: The system shall support modern browsers (e.g., Chrome, Firefox, Edge) for the control panel and viewer.
- **NFR7.2**: The system shall be compatible with Windows Server 2019/2022 and Windows 10/11.

## 5. System Architecture

### 5.1 Overview
The system follows a modular, layered architecture:
- **Presentation Layer**: Web-based control panel and report viewer.
- **Business Logic Layer**: Windows service handling data ingestion, transformation, report generation, and delivery.
- **Data Layer**: Temporary JSON storage and connector-specific data access.
- **Plug-in Layer**: Extensible connectors for custom data sources.

### 5.2 Deployment
- **Local Deployment**: Installed as a Windows service on a local server or workstation.
- **Cloud Integration**: Connects to a cloud-based licensing server for activation key validation.
- **Network Requirements**: Requires outbound HTTPS access for activation and optional cloud storage/secure file delivery.

### 5.3 Component Diagram

[Control Panel] <-> [Windows Service] <-> [Data Connectors] [Report Viewer] <-> [Windows Service] <-> [Report Storage] [Windows Service] <-> [Cloud Licensing Server] [Windows Service] <-> [Delivery Endpoints (Cloud, Email, SFTP/FTPS)]


## 6. External Interface Requirements

### 6.1 User Interfaces
- **Control Panel**: Web-based UI with forms for configuring connectors, transformations, schedules, and delivery.
- **Report Viewer**: Web-based UI with report browsing, filtering, and download capabilities.

### 6.2 Hardware Interfaces
- **Local Server/Workstation**: Runs the Windows service and hosts the control panel/viewer.
- **Network**: Internet access for activation and optional delivery.

### 6.3 Software Interfaces
- **Database Drivers**: ODBC/JDBC for database connectivity.
- **OPC UA Client**: For industrial data sources.
- **Handlebars.js**: For HTML report templating.
- **PDF Library**: For PDF generation (e.g., wkhtmltopdf).
- **Cloud APIs**: For activation key validation and cloud storage.
- **Email/FTP Libraries**: For report delivery.

### 6.4 Communication Interfaces
- **HTTPS**: For cloud activation and cloud storage.
- **SMTP**: For email delivery.
- **<<$Change>>SFTP/FTPS<<$Change>>**: For file transfer.

#### Enhancement Justification
The communication interface for file transfer has been updated from "FTP/SFTP" to "SFTP/FTPS". This change standardizes the use of secure, encrypted protocols, removing the insecure FTP option and resolving the technical contradiction identified in the security requirements.

## 7. Other Requirements

### 7.1 Regulatory Compliance
- The system shall comply with GDPR and CCPA for data privacy if deployed in relevant regions.
- The system shall support FHIR/HL7 standards for healthcare-related connectors.

### 7.2 Documentation
- **User Manual**: For administrators and end-users.
- **Developer Guide**: For custom connector development.
- **API Documentation**: For system integration and automation.

### 7.3 Support and Maintenance
- The system shall provide automated updates for the Windows service and connectors.
- A support portal shall be available for reporting issues and accessing updates.

## 8. Future Considerations
- Support for additional output formats (e.g., Excel, Word).
- Integration with BI tools (e.g., Power BI, Tableau).
- Mobile app for report viewing.
- Advanced analytics (e.g., predictive reporting) using machine learning.

## 9. Acceptance Criteria
- The system successfully activates with a valid cloud-issued key.
- All connectors (database, file, OPC, custom) fetch data and convert to JSON.
- Transformations produce correct JSON output as per configuration.
- Reports are generated in HTML and PDF formats using Handlebars templates.
- Reports are delivered to all configured destinations without errors.
- The control panel and viewer are accessible, secure, and user-friendly.
- The system meets performance and scalability requirements under load testing.

5 Requirement Type

other

6 Priority

πŸ”Ή ❌ No

7 Original Text

❌ No

8 Change Comments

❌ No

9 Enhancement Justification

❌ No

About

Reporting-System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published