BatStats is a free and open-source application with no login required. It allows for fast, detailed deep dives into your CSV and Excel data using multiple charts and generate a pdf file with your dashboard to save and share it. There are many solutions on the market for generating dashboards and performing data analysis, but not as many when it comes to free & open-source, no-logging solutions. We don’t want your data—the application is purely about functionality.
Generate data charts and dashboards interactively.
BatStats is a dynamic and user-friendly solution for analyzing and visualizing data. Using line charts, boxplots, barcharts and correlation matrix tables, you can create interactive charts effortlessly, identify insights, and download them for your storytelling needs.
The app leverages React with TypeScript and integrates the Plotly library for chart rendering.
- Dynamic Data Visualization: Generate linecharts, barcharts and correlation Matrix.
- Customizable Box Plots: Analyze numerical data with the option to select categorical variables.
- Drag-and-Drop CSV and Excel Upload: Easily upload any CSV and Excel files for analysis.
- User-Friendly UI: Scroll-snapping navigation for seamless interaction between sections.
- Landscape Dashboard: Download your landscape dashboard in a pdf file.
batstasts_demo_18-02-25.mp4
-
Clone the Repository
git clone https://github.com/Car85/batstats.git cd batstats
-
App Setup (React + Vite)
- Install Node.js and npm/yarn.
- Navigate to the frontend folder:
cd frontend/bats-dashboar-tp/ yarn install yarn run dev
-
Access the Application The app will generate a random port, you will able to copy it from your terminal.
- Open http://localhost:xxxx in your browser.
Preliminary version of the icon:
The initial unitary testing has been implemented.
🔒 Risk | ✅ Mitigated BatStats | 📜 OWASP/UI Security Standard |
---|---|---|
1. XSS (Cross-Site Scripting) | ✅ Protected (sanitizeData() blocks <script> ) |
✅ OWASP A07:2021 – Identification & Authentication Failures |
2. Clickjacking | ✅ Protected (Content-Security-Policy: frame-ancestors 'none' ) |
✅ OWASP Clickjacking Cheat Sheet |
3. DoS with Large Files | ✅ Protected (processedRows and maxFiles: 1 ) |
✅ OWASP DoS Prevention Cheat Sheet |
4. UI Freezing with Large Files | ✅ Protected (worker: true in Papa.parse ) |
✅ Google UI Performance & Security Guidelines |
5. Malformed Excel Files | ✅ Protected (try/catch and validation) |
✅ OWASP Secure UI Design Principles |
6. Restricting Allowed File Types | ✅ Protected (useDropzone accept ) |
✅ OWASP File Upload Security |
7. Formula Injection in Excel | ✅ Protected (sanitizeData() ) |
✅ OWASP Spreadsheet Injection Guide |
8. Malicious URLs in CSV/XLSX | ✅ Protected (sanitizeData() blocks URLs) |
✅ OWASP Data Validation Cheat Sheet |
9. JavaScript Execution in PDFs | ✅ Protected (Local loading of jsPDF , addJS() disabled) |
✅ OWASP Untrusted Code Execution |
- Deploy app in a web server.
- Create desktop, browser and android app.
Contributions are welcome! If you'd like to improve BatStats, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add your feature'
). - Push to the branch (
git push origin feature/your-feature
). - Open a Pull Request.
This project is licensed under the GPL-3.0 License.