{"id":27425757,"url":"https://github.com/baci-ak/b-vista","last_synced_at":"2025-07-22T20:34:19.275Z","repository":{"id":286572057,"uuid":"933662591","full_name":"Baci-Ak/b-vista","owner":"Baci-Ak","description":"Interactive EDA tool to explore pandas DataFrames — via Python, notebooks \u0026 Docker","archived":false,"fork":false,"pushed_at":"2025-04-14T08:41:00.000Z","size":275430,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T23:52:35.749Z","etag":null,"topics":["analytics","data-analysis","data-science","data-visualization","dataframe","docker","eda","flask","flexible","ipython","jupyter","notebook","pandas","python","react","visualization"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Baci-Ak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md ","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-16T12:09:12.000Z","updated_at":"2025-06-21T13:41:46.000Z","dependencies_parsed_at":"2025-04-07T09:22:17.954Z","dependency_job_id":"6ebb93aa-d893-4fe4-b3b9-fd90d97ee1f3","html_url":"https://github.com/Baci-Ak/b-vista","commit_stats":null,"previous_names":["baci-ak/b-vista"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/Baci-Ak/b-vista","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baci-Ak%2Fb-vista","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baci-Ak%2Fb-vista/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baci-Ak%2Fb-vista/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baci-Ak%2Fb-vista/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Baci-Ak","download_url":"https://codeload.github.com/Baci-Ak/b-vista/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Baci-Ak%2Fb-vista/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266567640,"owners_count":23949391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","data-analysis","data-science","data-visualization","dataframe","docker","eda","flask","flexible","ipython","jupyter","notebook","pandas","python","react","visualization"],"created_at":"2025-04-14T12:28:44.591Z","updated_at":"2025-07-22T20:34:19.242Z","avatar_url":"https://github.com/Baci-Ak.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n---\n\n# 📊 B-vista\n\n\n\n\u003e **Visual, Scalable, and Real-Time Exploratory Data Analysis — Built for modern notebooks and the browser.**\n\n---\n\n![Untitled design (6)](https://github.com/user-attachments/assets/240b0325-92aa-40ef-822d-af3b0c765699)\n\n## What is it?\n**B-vista** is a full-stack Exploratory Data Analysis (EDA) interface for `pandas` DataFrames. It connects a **Flask + WebSocket backend** to a **dynamic React frontend**, offering everything from descriptive stats to missing data diagnostics — in real-time.\n\n---\n\n\n| **Testing** | ![Build](https://img.shields.io/badge/build-passing-brightgreen) ![Tests](https://img.shields.io/badge/tests-passing-brightgreen) ![Coverage](https://img.shields.io/badge/coverage-85%25-yellowgreen) |\n|-------------|----------------------------------------------------------------------------------------------------------------------------------|\n| **Package** | [![PyPI Version](https://img.shields.io/pypi/v/bvista)](https://pypi.org/project/bvista/) [![PyPI Downloads](https://static.pepy.tech/badge/bvista)](https://pepy.tech/projects/bvista) ![Python](https://img.shields.io/badge/python-3.7%2B-blue) | \n| **Meta**    | ![Docs](https://img.shields.io/badge/docs-available-brightgreen) [![License](https://img.shields.io/badge/license-BSD%203--Clause-blue)](https://opensource.org/licenses/BSD-3-Clause) ![Status](https://img.shields.io/badge/status-active-success) |\n\n\n---\n\n\n\n\n\n\n\u003e 🎯 **Designed for**  \n\u003e Data Scientists · Analysts · Educators  \n\u003e Teams collaborating over datasets  \n\n\n\n---\n\n## 📚 Contents\n\n- [✨ Main Features](#-main-features)\n- [📦 Installation](#-installation)\n- [🐳 Docker Quickstart](#-docker-quickstart)\n- [🚀 Quickstart](#-quickstart)\n- [⚙️ Advanced Usage](#️-advanced-usage)\n- [🔁 Reconnect to a Previous Session](#-reconnect-to-a-previous-session)\n- [🐳 Environment \u0026 Compatibility](#-️environment--compatibility)\n- [📘 Documentation](#-documentation)\n- [🖥️ UI](#-ui)\n  - [🔢 Interactive Data Grid](#-interactive-data-grid)\n  - [📂 Session Management](#-session-management)\n  - [📂 No-Code Cleaning \u0026 Transformation](#-no-code-cleaning--transformation)\n  - [📊 Performance \u0026 Usability](#-performance--usability)\n- [💡 In the News \u0026 Inspiration](#-in-the-news--inspiration)\n- [🔗 Related Tools \u0026 Inspiration](#-related-tools--inspiration)\n- [📂 Project Structure](#-project-structure)\n- [📂 Dataset](#-dataset)\n- [🔖 Versioning](#-versioning)\n- [🧑‍💻 Developer Setup \u0026 Contributing](#-developer-setup--contributing)\n- [🧑‍💻 Security](#-security)\n- [📄 License](#-license)\n\n\n---\n\n## ✨ Main Features\n\nB-vista transforms how you explore and clean pandas DataFrames. With just a few clicks or lines of code, you get a comprehensive, interactive EDA experience tailored for effecient workflows.\n\n- **📊 Descriptive Statistics**  \n  Summarize distributions with enhanced stats including skewness, kurtosis, Shapiro-Wilk normality, and z-scores—beyond standard `.describe()`.\n\n- **🔗 Correlation Matrix Explorer**  \n  Instantly visualize relationships using Pearson, Spearman, Kendall, Mutual Info, Partial, Robust, and Distance correlations.\n\n- **📈 Distribution Analysis**  \n  Generate histograms, KDE plots, box plots (with auto log-scaling), and QQ plots for deep insight into variable spread and outliers.\n\n- **🧼 Missing Data Diagnostics**  \n  Visualize missingness (matrix, heatmap, dendrogram), identify patterns, and classify gaps using MCAR/MAR/NMAR inference methods.\n\n- **🛠️ Smart Data Cleaning**  \n  Drop or impute missing values with Mean, Median, Mode, Forward/Backward Fill, Interpolation, KNN, Iterative, Regression, or Autoencoder.\n\n- **🔁 Data Transformation Engine**  \n  Cast column types, format as time or currency, normalize/standardize, rename or reorder columns—all with audit-safe tracking.\n\n- **🧬 Duplicate Detection \u0026 Resolution**  \n  Automatically detect, isolate, or remove duplicate rows with real-time filtering.\n\n- **🔄 Inline Cell Editing \u0026 Updates**  \n  Update any cell in-place and sync live across sessions via WebSocket-powered pipelines.\n\n- **📂 Seamless Dataset Upload**  \n  Drag-and-drop or API-based DataFrame ingestion using secure, session-isolated pickle transport.\n\n\n\u003e 🔍 [See full feature breakdown →](docs/features.md)\n\n\n---\n### Where to get it\nthe source code is currently hosted on Github at → [Source code](https://github.com/Baci-Ak/b-vista).\n\u003e Binary installers for the latest released version are available at the →  [Python Package Index (PyPI)](https://pypi.org/project/bvista/)\n\n---\n## 📦 Installation\n\n```bash\n#PYPI\npip install bvista\n```\n```bash\n#Conda\nconda install -c conda-forge bvista\n```\n\n## 🐳 Docker Quickstart\n\nB-Vista is available as a ready-to-run Docker image on →  [Docker Hub](https://hub.docker.com/r/baciak/bvista):\n\n```bash\ndocker pull baciak/bvista:latest\n```\n\n\u003e ✅ Works on Linux, Windows, and macOS  \n\u003e ✅ On Apple Silicon (M1/M2/M3), use: `--platform linux/amd64`\n\n### ▶️ Run the App\n\nTo launch the B-Vista web app locally:\n\n```bash\ndocker run --platform linux/amd64 -p 8501:5050 baciak/bvista:latest\n```\n\nThen open your browser and go to:\n\n```\nhttp://localhost:8501\n```\n\n\u003e  [Docker Doc](https://hub.docker.com/r/baciak/bvista)\n---\n\n\n\n\n## 🚀 Quickstart\n\nThe fastest way to get started (in a notebook):\n\n```python\n\nimport bvista\n\ndf = pd.read_csv(\"dataset.csv\")\nbvista.show(df)\n```\n![demo_fast](https://github.com/user-attachments/assets/ab9c225a-49ed-4c64-a6ed-e9601ed2fc9f)\n\n\n### Command line (terminal)\n![new](https://github.com/user-attachments/assets/9b586970-a8cf-4d58-8ee2-e4521662b894)\n\n---\n\n## ⚙️ Advanced Usage\n\nFor full control over how and where B-Vista runs, use the `show()` function with advanced arguments:\n\n```python\nimport bvista\nimport pandas as pd\n\ndf = pd.read_csv(\"dataset.csv\")\n\n# 👇 Customize how B-Vista starts and displays\nbvista.show(\n    df,                   # Required: your pandas DataFrame\n    name=\"my_dataset\",       # Optional: session name\n    open_browser=True,       # Optional: open in browser outside notebooks\n    silent=False             # Optional: print connection messages\n)\n```\n\n---\n\n### 🔁 Reconnect to a Previous Session\n\n```python\nbvista.show(session_id=\"your_previous_session_id\")\n```\n\nUse this to revisit an earlier session or re-use a shared session.\n\n---\n\n## 🐳 Environment \u0026 Compatibility\n\n| Tool      | Version         |\n|-----------|-----------------|\n| Python    | ≥ 3.7 (tested on 3.10) |\n| Node.js   | ^18.x           |\n| npm       | ^9.x            |\n\n---\n\n\n## 📘 Documentation\n\nfor full usage details and architecture?\n\n👉 See [**DOCUMENTATION.md**](./DOCUMENTATION.md) for complete docs.\n\n---\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## 🖥️ UI\n\nB-Vista features a modern, interactive, and highly customizable interface built with React and AG Grid Enterprise. It’s designed to handle large datasets with performance and clarity — right from your notebook and browser.\n\n---\n\n### 🔢 Interactive Data Grid\n\nAt the heart of B-Vista is the **Data Table view** — a real-time, Excel-like experience for your DataFrame.\n\n#### Key Features:\n\n- **🧭 Column-wise Data Types**  \n  Each column displays its **data type** (`int`, `float`, `bool`, `datetime`, etc.) along its name. These types are detected on upload and can be modified from the UI my using the convert data type feature on the **Formatting** dropdown.\n\n- **🔁 Live Editing + Sync**  \n  Click any cell to edit it directly. Changes are **WebSocket-synced** across tabs and sessions — only the changed cell is transmitted.\n\n- **🔍 Smart Filters \u0026 Search**  \n  Use quick column filters or open the **adjustable right-hand panel** to:\n  - Build complex filters\n  - Filter by range, category, substring, null presence, etc.\n\n- **🧱 Column Grouping \u0026 Aggregation**  \n  - Drag columns to group by their values  \n  - Aggregate via **Sum**, **Avg**, **Min/Max**, **Count**, or **Custom**  \n  - View live totals per group or globally\n\n- **🪟 Adjustable Layout Panel**  \n  Expand/collapse the sidebar for:\n  - Column manager (reorder, hide, freeze)\n  - Pivot setup\n  - Filter manager\n  - Aggregation panel\n\n- **📐 Dataset Shape + Schema Summary**  \n  Always visible at the top:\n  - Dataset shape: `rows × columns`\n\n- **📦 Column Tools Menu**  \n  - Each column has a dropdown for filtering, sorting, etc\n  - Type conversion (e.g., to `currency`, `bool`, `date`, etc.) via Formatting dropdown\n  - Format adjustment (round decimals, datetime formats) via Formatting dropdown\n  - Replace values in-place via Formatting dropdown\n  - Detect/remove duplicates via Formatting dropdown\n\n\n\n\n---\n\n### 📂 Session Management\n\nB-Vista supports **session-based dataset isolation**, letting you work across multiple datasets seamlessly.\n\n#### Features:\n\n- **🧾 Session Selector**  \n  At the top-left, select your active dataset (e.g. `df`, `sales_data`, `test_set`). You can switch sessions without re-uploading.\n\n- **🕒 Session Expiry**  \n  - Sessions expire **after 60 minutes of inactivity**\n  - Expiration is automatic to prevent memory buildup\n\n- **📜 Session History**  \n  - See all available sessions\n  - Session IDs are generated automatically but customizable on upload\n\n---\n\n### 📂 No-Code Cleaning \u0026 Transformation\n\nAll transformations can be performed from the UI with no code:\n\n- Impute missing values (mean, median, mode, etc.)\n- Remove duplicates (first, last, all)\n- Cast column data types\n- Normalize or standardize\n- Rename columns or reorder\n\n---\n\n### 📊 Performance \u0026 Usability\n\n- **⚡ Fast rendering** with virtualized rows/columns for large datasets\n- **📋 Copy/paste** supported for multiple cells (just like Excel)\n- **🧾 Export to CSV/Excel/image(charts)** with formatting preserved\n- **📱 Responsive** UI — works across notebooks and modern desktop browsers\n\n---\n![new1](https://github.com/user-attachments/assets/47ca953a-a84c-4d27-b1ff-cf72f5cdefd3)\n\n\n\n---\n\n\n\n## 💡 In the News \u0026 Inspiration\n\n\u003e “**B-Vista** solves the frustration of static DataFrames — making EDA easy and accessible with no codes: **interactive**, **shareable**, and **explorable**.”  \n\u003e — *Beta User \u0026 Data Science Educator*\n\n---\n\n\nWe built B-Vista to bridge the gap between:\n- 💻 **command line**  \n- 💻 **The Notebook**  \n- 🌐 **The Browser**  \n- 🔄 **Real-time collaboration and computation**\n\n---\n\nIt’s designed to serve:\n\n- **Data scientists** who want speed, clarity, data preparation for modeling, etc\n- **Analysts** who need to clean and shape data efficiently\n- **Teams** who need to explore shared datasets interactively\n\n---\n\n## 🔗 Related Tools \u0026 Inspiration\n\nB-Vista builds upon and complements other amazing open-source projects:\n\n| Tool              | Purpose                                      |\n|-------------------|----------------------------------------------|\n| [pandas](https://pandas.pydata.org/)         | Core DataFrame engine                      |\n| [Lux](https://github.com/lux-org/lux)        | EDA assistant for pandas                   |\n| [pandas-profiling](https://github.com/ydataai/pandas-profiling) | Automated summary reports                 |\n| [Plotly](https://plotly.com/python/)         | Rich interactive visualizations            |\n| [Flask-SocketIO](https://flask-socketio.readthedocs.io/) | WebSocket backbone for real-time sync     |\n| [Vite](https://vitejs.dev/)                  | Lightning-fast frontend dev server         |\n\n\n\n\n\n---\n\n## 📂 Project Structure\n\nThe B-Vista project is organized as a **modular full-stack application**. Below is an overview of the core directories and files.\n\n```\nb-vista/\n├── bvista/                     ← Main Python package\n│   ├── __init__.py             ← Auto-start backend in notebooks\n│   ├── notebook_integration.py← Jupyter + Colab + terminal helper\n│   ├── server_manager.py       ← Launch logic for backend server\n│   ├── frontend/               ← React-based UI (AG Grid, Vite, Plotly)\n│   ├── backend/                ← Flask + WebSocket backend API\n│   │   ├── app.py              ← Backend entry point\n│   │   ├── config.py           ← Server config \u0026 constants\n│   │   ├── models/             ← Data processing logic (stats, EDA)\n│   │   ├── routes/             ← Flask API routes (upload, clean, stats)\n│   │   ├── websocket/          ← Real-time updates via Socket.IO\n│   │   ├── static/             ← Temp storage, file handling utils\n│   │   └── utils/              ← Logging, helpers\n│   └── datasets/               ← Example datasets\n│\n├── tests/                      ← Pytest-based backend test suite\n├── docs/                       ← Extended documentation \u0026 wiki stubs\n├── requirements.txt            ← Production dependencies\n├── pyproject.toml              ← Packaging metadata (PEP 621)\n├── Dockerfile                  ← Builds self-contained container\n├── DOCUMENTATION.md            ← Full technical documentation\n├── CONTRIBUTING.md             ← Developer guide \u0026 contribution rules\n├── CODE_OF_CONDUCT.md          ← Community standards\n├── README.md                   ← You’re reading this\n```\n\n---\n\n### 🧭 Key Architecture Highlights\n\n- **Modular Backend:** Each core task (e.g. correlation, distribution, missing data) has its own logic module under `backend/models`.\n\n- **Stateless API Routes:** `backend/routes/data_routes.py` handles all DataFrame operations through REST endpoints.\n\n- **WebSocket Sync:** Bi-directional session sync, live cell edits, and notifications are handled by `websocket/socket_manager.py`.\n\n- **Frontend SPA (Single Page App):** The UI lives in `frontend/` and is powered by React + Vite for fast loading and a responsive user experience.\n\n- **Notebook-Aware:** `notebook_integration.py` detects Jupyter/Colab environments and renders inline IFrames automatically.\n\n\n---\n\n\n\n## 📂 Dataset\n\nB-Vista ships with a growing collection of **built-in datasets** and **live data connectors**, making it easy to start exploring.\n\n### 🎒 Built-in Datasets\n\nThese datasets are included with the package and require no setup or internet connection:\n\n| Dataset        | Description                                      |\n|----------------|--------------------------------------------------|\n| `ames_housing` | 🏠 Real estate dataset with 80+ features on home sales in Ames, Iowa. |\n| `titanic`      | 🚢 Titanic survival dataset — classic classification use case. |\n| `testing_data` | 🧪 Lightweight sample DataFrame used for test automation. |\n\nUsage:\n\n```python\nfrom bvista.datasets import ames_housing, titanic\n\ndf = ames_housing.load()\ndf2 = titanic.load()\n```\n![Untitled design (7)](https://github.com/user-attachments/assets/ea753a23-f7dc-4680-b19f-63c5983bf010)\n\n---\n\n### 🔌 Live Data Connectors\n\nB-Vista also includes **plug-and-play connectors** for real-world, real-time data APIs. These are great for dynamic dashboards, teaching demos, or financial/data journalism.\n\n#### 🦠 `covid19_live` — COVID-19 Tracker\n- Powered by: [API Ninjas](https://api-ninjas.com/api/covid19)\n- Fetch confirmed + new cases per region and day\n- Requires an **API key** via env variable or argument\n\n```python\nfrom bvista.datasets import covid19_live\n\ndf = covid19_live.load(country=\"Canada\", API_KEY=\"your_key\")\n```\n\n📄 Full doc: [covid19_live.md](./docs/Datasets/covid19_live.md)\n\n---\n\n#### 📈 `stock_prices` — Live Stock Market Data\n- Powered by: [Alpha Vantage](https://www.alphavantage.co/)\n- Supports daily, weekly, or monthly prices\n- Filter by year or date range\n- Single or multiple tickers supported\n\n```python\nfrom bvista.datasets import stock_prices\n\ndf = stock_prices.load(\n    symbol=[\"AAPL\", \"TSLA\"],\n    interval=\"daily\",\n    date=\"2023\",\n    API_KEY=\"your_key\"\n)\n```\n\n📄 Full doc: [stock_prices.md](./docs/Datasets/stock_prices.md)\n\n---\n\n### 🔑 API Key Configuration\n\nSome datasets require an API key. You can provide it in two ways:\n\n✅ **Inline** (for quick testing):\n\n```python\ndf = covid19_live.load(country=\"Nigeria\", API_KEY=\"your_key\")\n```\n\n✅ **Environment variable** (recommended for reuse):\n\n```bash\nexport API_NINJAS_API_KEY=\"your_key\"\nexport ALPHAVANTAGE_API_KEY=\"your_key\"\n```\n\n---\n\n### 🧪 Testing Dataset for Devs\n\n```python\nfrom bvista.datasets import testing_data\n\ndf = testing_data.load()\n```\n\nUse this for:\n- UI stress testing\n- Column type detection\n- Testing WebSocket edits \u0026 missing data tools\n\n---\n\n\n## 🔖 Versioning\n\nFollows [Semantic Versioning](https://semver.org)\n\n```\nCurrent: v0.1.0 (pre-release)\n```\n\nExpect fast iteration and breaking changes until 1.0.0\n\n---\n\n\n\n\n\n\n\n\n\n## 🧑‍💻 Developer Setup \u0026 Contributing\n\nWhether you're fixing a bug, improving the UI, or adding new data science modules — you're welcome to contribute to B-Vista!\n\n---\n\n### 🧰 1. Clone the Repository\n\n```bash\ngit clone https://github.com/Baci-Ak/b-vista.git\ncd b-vista\n```\n\n---\n\n### 🧪 2. Local Development (Recommended)\n\nSet up a virtual environment and install dependencies:\n\n```bash\npython -m venv venv\nsource venv/bin/activate  # or venv\\Scripts\\activate on Windows\npip install -r requirements.txt\n\npip install --upgrade pip\npip install -e \".[dev]\"\npython bvista/backend/app.py\n```\n\n---\n\n\n### 🐳 3. Docker Dev Environment\n\nPrefer isolation? Use Docker to build and run the entire app:\n\n```bash\n# Build the image\ndocker buildx build --platform linux/amd64 -t baciak/bvista:test .\n\n# Run the container\ndocker run --platform linux/amd64 -p 8501:5050 baciak/bvista:test\n```\n\nYour app will be available at:\n\n```\nhttp://localhost:8501\n```\n\n---\n\n### 🔧 4. Live Dev with Volume Mounting\n\nFor live updates as you edit:\n\n```bash\ndocker run --platform linux/amd64 \\\n  -p 8501:5050 \\\n  -v $(pwd):/app \\\n  -w /app \\\n  --entrypoint bash \\\n  baciak/bvista:test\n```\n\nInside the container, launch the backend manually:\n\n```bash\npython bvista/backend/app.py\n```\n\n---\n\n### 🧼 5. Frontend Setup (Optional)\n\nThe frontend lives in `bvista/frontend`. To run it independently:\n\n```bash\ncd bvista/frontend\nnpm install\n\n`npm start`\n\n```\nRuns the app in the development mode.\\\nOpen [http://localhost:3000](http://localhost:3000) to view it in your browser\n\n```bash\nnpm run dev`\nor\nnpm run build\n\n```\nBuilds the app for production to the `dev` folder.\\ or build.\\ \nrefer to [ Frontend Setup](./bvista/frontend/README.md) for more details\n\n\n\n---\n\n### 🤝 6. Want to Contribute?\n\nAll contributions are welcome — from UI polish and bug reports to backend features.\n\nCheck out [CONTRIBUTING.md](./CONTRIBUTING.md) to learn how to:\n\n- Open a pull request (PR)\n- Follow code style and linting\n- Suggest new ideas\n- Join our community discussions\n\n---\n\n🔒 By contributing, you agree to follow our [Code of Conduct](./CODE_OF_CONDUCT.md).\n\n\n\n\n\n## 🧑‍💻 Security\n\nB-Vista is designed with session safety, memory isolation, and zero-disk write defaults.\n\n👉 For full details, see our [**SECURITY.md**](./SECURITY.md)\n\n\n\n## 📄 License\n\nB-Vista is released under the **[BSD 3-Clause License](./LICENSE)** \n\n---\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaci-ak%2Fb-vista","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaci-ak%2Fb-vista","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaci-ak%2Fb-vista/lists"}