Skip to content

Latest commit

 

History

322 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Here’s an updated project structure that reflects everything we’ve built so far: a hybrid FastAPI backend (robust logging, DB, health checks) + desktop GUI serving (static files, templates) + Electron wrapper for distribution. This structure is designed for scaling, testing, and packaging into installers.


📂 Updated Project Structure

project-root/ │ ├── app/ │ ├── core/ # Core utilities │ │ ├── logging.py │ │ ├── security.py │ │ └── config.py │ │ │ ├── db/ # Database lifecycle │ │ ├── session.py │ │ └── models.py │ │ │ ├── routes/ # API routers │ │ ├── items_router.py │ │ ├── users_router.py │ │ └── auth_router.py │ │ │ ├── api/ # Feature APIs │ │ ├── search.py │ │ └── stats.py │ │ │ ├── static/ # GUI assets │ │ ├── index.html │ │ ├── style.css │ │ └── app.js │ │ │ ├── templates/ # Jinja2 templates │ │ └── base.html │ │ │ ├── main.py # Hybrid FastAPI app (API + GUI) │ └── lifespan.py # DB init/shutdown hooks │ ├── electron-app/ # Electron wrapper │ ├── main.js # Electron entry point │ ├── preload.js # Optional preload scripts │ ├── package.json # Electron dependencies │ └── renderer/ # Extra frontend assets (optional) │ ├── tests/ # Unit + integration tests │ ├── test_items.py │ ├── test_users.py │ ├── test_search.py │ └── test_gui.py │ ├── run_desktop.py # Local launcher (FastAPI via uvicorn) ├── fastapi_app.spec # PyInstaller spec file ├── electron-builder.yml # Electron build config ├── requirements.txt # Python dependencies ├── package.json # Root Node/Electron config (optional) ├── Dockerfile # Containerization (optional) └── README.md # Documentation


🔑 Best Practice Highlights

  • Hybrid main.py → Combines API routers, GUI serving, middleware, health checks.
  • rundesktop.py → Simple launcher for local desktop mode.
  • Electron wrapper → main.js spawns FastAPI backend and opens native window.
  • PyInstaller spec → Bundles backend into .exe or .app.
  • Electron-builder config → Generates installers for Windows, macOS, Linux.
  • Tests → Separate unit tests for API + GUI routes.

🚀 Scaling Path

  1. Local dev → python run_desktop.py + npm start (Electron).
  2. Packaging → pyinstaller fastapi_app.spec for backend, electron-builder for installers.
  3. Distribution → Ship .exe, .dmg, .AppImage with auto‑updates.
  4. Scaling DB → SQLite for local, Postgres for multi‑user.
  5. Workers → Uvicorn --workers 4 for concurrency.

Would you like me to now draft the electron-builder.yml config so you can generate installers (.exe, .dmg, .AppImage) with one command?

Releases

Packages

Used by

Contributors

Languages