Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c4bddcb
CI/CD pipeline and project scaffolding
chetan137 Mar 7, 2026
bdc310d
ready React dashboard template
chetan137 Mar 7, 2026
1087db9
add components and ui herosection
chetan137 Mar 7, 2026
16faadc
the overlays are now much lighter so the stock market video shows th…
chetan137 Mar 7, 2026
adeda7b
chore: initial repository setup with environment configs and dependen…
Sumit-1325 Mar 7, 2026
7473f75
feat: implement data ingestion process
Sumit-1325 Mar 7, 2026
a65ec0e
feat: implement data preprocessing
Sumit-1325 Mar 7, 2026
943eaec
feat: implement the Visualization and analytics
Sumit-1325 Mar 7, 2026
18d59e4
add folder bakced
chetan137 Mar 7, 2026
5de59f4
add backend code from backend-dev branch and frontend dashboard with …
chetan137 Mar 7, 2026
577940d
Create Backend
chetan137 Mar 7, 2026
2ef1994
resolve merge conflicts and add backend + frontend
chetan137 Mar 7, 2026
455d817
resolve all merge conflicts
chetan137 Mar 7, 2026
fc0e622
Add: Idea Document File
Sumit-1325 Mar 7, 2026
cb48fad
Delete backend directory
chetan137 Mar 7, 2026
37dfca5
feat: add AI-driven pattern detection and insight generation backend
ashish1git Mar 7, 2026
92d3f6c
fix: connect frontend API to backend endpoints correctly
ashish1git Mar 7, 2026
e40da1f
feat: add new visualization components for market exploration
ashish1git Mar 7, 2026
1bbaf1f
feat(dashboard): comprehensive layout with 8 metrics, 7 chart section…
ashish1git Mar 7, 2026
1028949
fix(charts): CumulativeOIChart handles backend PCR timeseries data fo…
ashish1git Mar 7, 2026
88840d9
fix(sidebar): restrict to NIFTY only, fetch real expiry dates from API
ashish1git Mar 7, 2026
c4b90fe
fix(charts): VolumeProfileChart shows side-by-side bars with empty state
ashish1git Mar 7, 2026
aa73e28
fix(dashboard): add loading state, NIFTY label, readable chart descri…
ashish1git Mar 7, 2026
f754654
Create README.md
chetan137 Mar 7, 2026
5962fa8
fixed issues
ashish1git Mar 7, 2026
20eabb7
Add comprehensive README with local setup instructions
ashish1git Mar 7, 2026
accc36b
Resolve README conflict - use updated version
ashish1git Mar 7, 2026
d61f2e2
Remove author information from README
ashish1git Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# CodeForge – CI/CD Pipeline
# Continuous Integration workflow for the Options Market Analytics platform.

name: CI – CodeForge Options Analytics

on:
push:
branches: ["main", "develop", "feature/**"]
pull_request:
branches: ["main"]

permissions:
contents: read

jobs:
build-and-validate:
name: Build & Validate
runs-on: ubuntu-latest

steps:
# ── 1. Checkout ──────────────────────────────────────────────────────
- name: Checkout repository
uses: actions/checkout@v4

# ── 2. Python setup ──────────────────────────────────────────────────
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "pip" # cache pip downloads for faster runs

# ── 3. Install dependencies ──────────────────────────────────────────
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

# ── 4. Validate Python scripts load correctly ────────────────────────
- name: Validate Python scripts (syntax & imports)
run: |
echo "🔍 Checking all .py files for syntax errors..."
python -m py_compile scripts/run_dashboard.py
python -m py_compile src/__init__.py
find . -name "*.py" -not -path "./.git/*" | while read f; do
echo " ✓ Compiling $f"
python -m py_compile "$f"
done
echo "✅ All Python files compiled successfully."

# ── 5. Verify dashboard script has no import errors ──────────────────
- name: Verify Streamlit dashboard imports
run: |
echo "🔍 Verifying scripts/run_dashboard.py imports..."
python -c "
import importlib.util, sys, os
# Load the dashboard module without executing Streamlit server
spec = importlib.util.spec_from_file_location('run_dashboard', 'scripts/run_dashboard.py')
mod = importlib.util.module_from_spec(spec)
# Patch streamlit to prevent server startup during import check
import unittest.mock as mock
with mock.patch('streamlit.set_page_config'), \
mock.patch('streamlit.sidebar'), \
mock.patch('streamlit.title'), \
mock.patch('streamlit.markdown'), \
mock.patch('streamlit.header'), \
mock.patch('streamlit.columns', return_value=[mock.MagicMock()]*4), \
mock.patch('streamlit.selectbox'), \
mock.patch('streamlit.dataframe'), \
mock.patch('streamlit.plotly_chart'), \
mock.patch('streamlit.caption'), \
mock.patch('streamlit.cache_data', lambda f: f), \
mock.patch('streamlit.error'), \
mock.patch('streamlit.stop'):
spec.loader.exec_module(mod)
print('✅ Dashboard script loaded — no import errors.')
"

# ── 6. Verify data files exist ──────────────────────────────────────
- name: Verify dataset integrity
run: |
echo "🔍 Checking data/ directory..."
csv_count=$(find data/ -name "*.csv" | wc -l)
echo " Found $csv_count CSV file(s) in data/"
if [ "$csv_count" -eq 0 ]; then
echo "❌ No CSV data files found!"
exit 1
fi
echo "✅ Dataset integrity check passed."

# ── 7. Quick lint (optional, non-blocking) ──────────────────────────
- name: Lint check (advisory)
continue-on-error: true
run: |
pip install flake8
echo "🔍 Running flake8 lint (advisory — failures won't block CI)..."
flake8 scripts/ src/ --max-line-length=120 --statistics || true
echo "ℹ️ Lint check complete (advisory only)."
64 changes: 64 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# ─── Python ──────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg-info/
dist/
build/
*.egg

# ─── Virtual Environment ────────────────────────────────
venv/
env/
.venv/
ENV/

# ─── IDE / Editor ───────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
*~
.project
.settings/

# ─── Streamlit (test dashboard — frontend is React) ────
app.py

# ─── DuckDB database file ──────────────────────────────
*.duckdb
*.duckdb.wal

# ─── OS files ───────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini

# ─── Jupyter ────────────────────────────────────────────
.ipynb_checkpoints/
*.ipynb

# ─── Environment variables ──────────────────────────────
.env
.env.local

# ─── Byte-compiled / cache ──────────────────────────────
*.pyc
*.pyo
*.pyd

# ─── Distribution / packaging ───────────────────────────
*.tar.gz
*.whl

# ─── Test / Coverage ────────────────────────────────────
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/

# ─── Logs ───────────────────────────────────────────────
*.log
61 changes: 61 additions & 0 deletions Backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# ─── Python ──────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg-info/
dist/
build/
*.egg

# ─── Virtual Environment ────────────────────────────────
venv/
env/
.venv/
ENV/

# ─── IDE / Editor ───────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
*~
.project
.settings/

# ─── DuckDB database file ──────────────────────────────
*.duckdb
*.duckdb.wal

# ─── OS files ───────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini

# ─── Jupyter ────────────────────────────────────────────
.ipynb_checkpoints/
*.ipynb

# ─── Environment variables ──────────────────────────────
.env
.env.local

# ─── Byte-compiled / cache ──────────────────────────────
*.pyc
*.pyo
*.pyd

# ─── Distribution / packaging ───────────────────────────
*.tar.gz
*.whl

# ─── Test / Coverage ────────────────────────────────────
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/

# ─── Logs ───────────────────────────────────────────────
*.log
14 changes: 14 additions & 0 deletions Backend/.streamlit/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[server]
headless = true
port = 8501
enableCORS = false
enableXsrfProtection = false

[browser]
gatherUsageStats = false

[theme]
primaryColor = "#2979FF"
backgroundColor = "#0E1117"
secondaryBackgroundColor = "#1E2130"
textColor = "#FAFAFA"
Loading