A powerful and flexible project template for data analytics and machine learning workflows.
Omni-Grid provides a well-structured, git-integrated environment that accelerates data science projects from exploration to production. Built for Visual Studio Code but compatible with any IDE, it combines industry best practices with modern tooling to streamline your analytics workflow.
- π Quick Start: Get from zero to analysis in minutes with pre-configured templates
- π Organized Structure: Clean, scalable project organization that grows with your needs
- π Modular Design: Easy-to-use module generator for creating isolated analysis environments
- π€ AI-Ready: Built-in support for AI-powered analysis and insights
- π§ Developer Friendly: Integrated with VSCode tasks, git workflows, and best practices
- π Full Stack: Includes all essential data science libraries pre-configured
- Jupyter Notebook Integration - Rich, interactive data analysis environment
- Essential Libraries Pre-configured
pandas- Data manipulation and analysismatplotlib&seaborn- Visualizationnumpy- Numerical computing
- Smart Data Management - Automatic
.gitignorefor data directories - Module Finder System - Seamless code sharing across analysis modules
- Template Generation - One-command module scaffolding via VSCode tasks
- Utility Functions - Pre-built helpers for common operations
- AI Analysis Integration - Framework for incorporating AI insights (see AI_ANALYSIS_GUIDE.md)
- Clean Git Workflow - Pre-configured
.gitignorefor Python projects
- Prerequisites
- Quick Start
- Project Structure
- Creating New Analysis Modules
- Usage Examples
- Documentation
- Contributing
- License
- Acknowledgments
Before you begin, ensure you have the following installed:
- Python 3.9+ - Download here
- Conda (recommended) - Installation instructions
- Visual Studio Code (optional, but recommended) - Download here
- Git - Download here
-
Clone the repository
git clone https://github.com/GizzZmo/Omni-Grid.git cd Omni-Grid -
Set up your Python environment
Option A: Using Conda (Recommended)
conda create -n omni-grid python=3.9 conda activate omni-grid
Option B: Using venv
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install required packages
pip install jupyter pandas numpy matplotlib seaborn
-
Launch Jupyter Notebook
jupyter notebook
-
Try the example
- Navigate to
src/example/ - Unzip
data/archive.zipif you want to use the sample dataset - Open and run
main.ipynb
- Navigate to
-
Start your analysis! π
- Create a new module (see below)
- Add your data to the module's
data/directory - Begin analyzing!
π‘ Tip: For the best experience, open this project in Visual Studio Code to access integrated tasks and features.
Omni-Grid/
βββ .git/ # Git repository
βββ .gitignore # Git ignore rules (includes data directories)
βββ .templates/ # Module templates
β βββ module/ # Default analysis module template
β βββ __module_finder__.py
β βββ data/ # Template data directory (git-ignored)
β βββ main.ipynb # Template notebook
βββ .vscode/ # VSCode configuration
β βββ settings.json # Editor settings
β βββ tasks.json # Custom tasks (module generation)
βββ src/ # Source code and analysis modules
β βββ example/ # Example analysis module
β β βββ .gitignore # Module-specific git rules
β β βββ __module_finder__.py # Module path configuration
β β βββ data/ # Example datasets (git-ignored)
β β β βββ Churn_Modelling.csv
β β β βββ archive.zip
β β βββ main.ipynb # Main analysis notebook
β β βββ ai_analysis_demo.ipynb # AI analysis demonstration
β βββ utils/ # Shared utility functions
β βββ __init__.py
β βββ display.py # Display helper functions
βββ AI_ANALYSIS_GUIDE.md # Guide for AI-powered analysis
βββ LICENSE # Apache 2.0 License
βββ README.md # This file
.templates/: Contains reusable templates for generating new analysis modulessrc/: Your workspace for all analysis code- Each subdirectory (except
utils/) represents an independent analysis module - Modules are isolated but can share utilities
- Each subdirectory (except
src/utils/: Shared utilities accessible to all modules via__module_finder__.pydata/: Every module has its owndata/directory that's automatically git-ignored
Omni-Grid makes it incredibly easy to create new, isolated analysis environments.
- Open the Command Palette (
Cmd+Shift+Pon Mac,Ctrl+Shift+Pon Windows/Linux) - Type and select:
Tasks: Run Task - Select:
Template: Generate Analysis Module - Enter your module name (e.g.,
sales_analysis) - A new module is created at
src/your_module_name/
cp -r .templates/module src/your_module_name
cd src/your_module_name
# Add your data to the data/ directory
# Open main.ipynb and start analyzingEach new module includes:
- π
main.ipynb: Pre-configured Jupyter notebook with imports and settings - π
data/: Directory for your datasets (automatically git-ignored) - π
__module_finder__.py: Enables importing fromsrc/utils/
import pandas as pd
import __module_finder__ # Import this first to enable utils access
from utils.display import printdf
import matplotlib.pyplot as plt
import numpy as np
# Load your data
data = pd.read_csv('data/your_dataset.csv')
# Display with enhanced formatting
printdf(data.head())
# Create visualizations
plt.figure(figsize=(10, 6))
data['column_name'].hist()
plt.title('Distribution Analysis')
plt.show()The utils/display.py module provides convenient display functions:
from utils.display import printdf, printsf
# Display DataFrame with nice HTML formatting
printdf(dataframe)
# Display Series as a formatted DataFrame
printsf(series)- Add new functions to
src/utils/ - Import them in any module using
__module_finder__:import __module_finder__ from utils.your_module import your_function
For more detailed information, check out these guides:
- AI Analysis Integration Guide - Learn how to integrate AI-powered insights
- Installation Guide - Detailed setup instructions
- Usage Guide - In-depth usage examples
- Architecture Guide - Technical architecture details
- API Reference - Utility functions reference
We welcome contributions! Whether it's:
- π Bug reports
- β¨ Feature requests
- π Documentation improvements
- π§ Code contributions
Please feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For detailed contribution guidelines, see CONTRIBUTING.md.
Issue: Module not found errors
ModuleNotFoundError: No module named 'utils'Solution: Make sure you import __module_finder__ before importing from utils:
import __module_finder__ # This must come first
from utils.display import printdfIssue: Jupyter kernel not found
Kernel Error: No kernel found
Solution: Install ipykernel in your environment:
conda activate omni-grid
conda install ipykernel
python -m ipykernel install --user --name omni-gridIssue: Data directory not ignored by git
git status shows files in data/
Solution: The .gitignore is configured to ignore **/data/*. Make sure your data is in a data/ subdirectory.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Copyright (C) 2022 JANISHAR ALI ANWAR
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
- Original template created by Janishar Ali Anwar
- Maintained by the GizzZmo team
- Built with β€οΈ for the data science community
Find this project useful? β Star it on GitHub!
- π¬ Open an Issue for questions or suggestions
- π Report a Bug
- π‘ Request a Feature
Happy Analyzing! ππ