Skip to content

About

A configurable React and TypeScript reporting framework for SQL Server, providing dynamic reports, dashboards, advanced filtering, server-side pagination, caching, exports, and reusable data visualization components.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Generic Reporting Framework

A configuration-driven React frontend for building reusable reports, widgets, and dashboards on top of the Generic SQL API.

Overview

The framework keeps responsibilities explicit:

JSON report/dashboard/widget configuration
        -> validation and defaults
        -> runtime filters, sorting and pagination
        -> JSON request to the Generic SQL API
        -> report grid or dashboard widget

Data can be described by a top-level universal JSON request or by a discovered SQL Resource ID. Frontend definitions keep display columns, controls, and initial sorting at the top level; the runtime derives the constrained SQL API envelope from that normalized configuration. SQL text, discovery, path resolution, validation, and execution remain backend responsibilities; the frontend does not load SQL files.

Features

  • JSON request and backend SQL-resource query modes
  • JSON-configured columns, filters, grids, toolbars, widgets, dashboards, and navigation
  • Reusable report, stat, table, and chart dashboard widgets
  • Runtime filtering, sorting, and server-side pagination
  • AG Grid-based GenericGrid with column resizing, reordering, and configured grouping
  • Request caching and in-flight request deduplication
  • Current-view and all-row CSV/Excel exports where enabled by configuration
  • Browser-local saved report views
  • Automated Vitest and React Testing Library coverage
  • GitHub Actions checks for tests, lint, type-checking, and production builds

The application is built with React, TypeScript, Vite, Material UI, AG Grid, and Recharts.

Architecture

The frontend is organized into configuration, definition/query engines, API integration, shared state, and presentation components. See the architecture guide and the SQL/JSON responsibility rules.

Getting Started

git clone git@github.com:itsshashanksp/Generic_Reporting_Framework.git
cd Generic_Reporting_Framework
npm ci
npm run dev

Set VITE_API_URL in a local .env file to the Generic SQL API endpoint used for live data. See Getting Started for details.

Run the project checks with:

npm test
npm run lint
npx tsc --noEmit
npm run build

Documentation

Document Description
Documentation index Navigation for all project documentation
Architecture Overall frontend architecture and request flow
Getting Started Installation, configuration, and first run
Development Project structure and developer workflows
Configuration reference Complete report, dashboard, widget and menu properties
Query modes JSON requests, SQL resource IDs and runtime merging
Feature behavior Filtering, grid, export, saved views and cache details
Examples Valid configurations and authoring recipes
Reports Report definition and rendering architecture
Widgets Reusable widget definitions and widget types
Dashboards Dashboard configuration and runtime behavior
Testing Test strategy, commands, and CI
Supported behavior Capability matrix and known gaps
Backend capability matrix Backend capabilities and frontend exposure
API reference Exact read requests, runtime merge, responses and errors
Roadmap Implemented, next, planned and deferred work
Changelog Frontend change history

Contributing

Contributions are welcome. Read CONTRIBUTING.md before opening a change.

License

This project is available under the MIT License.

About

A configurable React and TypeScript reporting framework for SQL Server, providing dynamic reports, dashboards, advanced filtering, server-side pagination, caching, exports, and reusable data visualization components.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages