Skip to content

[v0.3] Repo Restructure: Split into core/, local/, and web/ layout #31

@Codex-Crusader

Description

@Codex-Crusader

Overview

This is a tracking issue for the v0.3 repo restructure described in ROADMAP.md.

The current flat layout (app/, dashboard/, config/, src/, storage/) needs to be reorganised into a clean split that separates the shared engine from the two deployment surfaces (local app and web demo).

Target Directory Layout

pulseengine/
  core/         ← shared engine (analysis, config, storage, backtest)
  local/        ← full-featured Streamlit dashboard
  web/          ← restricted demo build
Docs/
tests/

Why This Matters

Everything in v0.4 (PyInstaller EXE, launcher, tray icon) and v0.5 (FinBERT, offline mode, export) depends on local/ existing as a distinct surface. The web demo must stay lightweight and stateless — it cannot share modules that perform file I/O or run local model inference. This split enforces that boundary at the file system level.

Sub-Issues

This work is tracked across three focused sub-issues:

Acceptance Criteria

  • pulseengine/core/ contains app.py (engine), config.py, storage.py, backtest.py
  • pulseengine/local/ contains the full-feature Streamlit dashboard
  • pulseengine/web/ contains the restricted demo (no file I/O, no local model inference, no persistent state)
  • All existing tests pass against the new layout
  • README.md quick-start instructions updated to reflect new entry points
  • No import cycle between core/, local/, and web/

References

  • ROADMAP.md v0.3 — Foundation Split + Arbitrary Tickers
  • Architecture note: "The core/ directory is the shared foundation. Changes there affect both the local app and the web demo."

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions