Skip to content

Getting Started

This guide assumes a Windows development workstation using PowerShell from the Jeni repository root.

Prerequisites

Requirement Purpose
Python 3.10+ Runtime for the Streamlit application and documentation tooling.
Git Clone and manage the repository.
PowerShell Run the Windows setup and build commands.
Gemini API key Required for Gemini-backed workflows.
Google Cloud settings Required only for cloud bucket workflows.
MkDocs dependencies Required to build and publish this documentation site.

Clone the Repository

git clone https://github.com/is-leeroy-jenkins/Jeni.git
cd Jeni

Create and Activate a Virtual Environment

python -m venv .venv
.\.venv\Scripts\Activate.ps1

If PowerShell blocks activation, run this once for the current user and then activate the environment again:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\.venv\Scripts\Activate.ps1

Install Application Dependencies

python -m pip install --upgrade pip
pip install -r requirements.txt

Install Documentation Dependencies

pip install -r requirements-docs.txt

Configure API Keys

For local development, set the required keys through the Streamlit sidebar or through PowerShell environment variables.

setx GEMINI_API_KEY "your-gemini-api-key"
setx GOOGLE_API_KEY "your-google-api-key"
setx GOOGLE_CSE_ID "your-google-custom-search-id"
setx GOOGLEMAPS_API_KEY "your-google-maps-api-key"
setx GOOGLE_CLOUD_PROJECT_ID "your-google-cloud-project-id"
setx GOOGLE_CLOUD_LOCATION "us-central1"

Close and reopen PowerShell after using setx, then reactivate the virtual environment.

Run the Streamlit Application

streamlit run app.py

The application should open at:

http://localhost:8501

Serve the Documentation Locally

mkdocs serve

The documentation preview should open at:

http://127.0.0.1:8000/Jeni/

Build the Documentation Locally

mkdocs build --strict

A successful build creates a local site/ folder containing static HTML, CSS, JavaScript, search assets, and sitemap files.

Publish the Documentation to GitHub Pages

mkdocs build --strict
mkdocs gh-deploy --force

Then configure GitHub Pages:

Source: Deploy from a branch
Branch: gh-pages
Folder: / (root)

The published site should resolve to:

https://is-leeroy-jenkins.github.io/Jeni/

Troubleshooting

Symptom Likely Cause Correction
mkdocs is not recognized Documentation dependencies are not installed in the active environment. Run pip install -r requirements-docs.txt and confirm mkdocs --version.
API reference does not render mkdocstrings cannot import the module. Install application dependencies first with pip install -r requirements.txt.
app.py API page fails if converted to ::: app app.py performs Streamlit session-state work during import. Keep the app page narrative-only until runtime code is moved behind main() and if __name__ == "__main__".
GitHub Pages opens the README Pages is pointed to the source branch or gh-pages does not contain generated files. Run mkdocs gh-deploy --force and set Pages to gh-pages branch / root.
custom_dir error mkdocs.yml points to a missing docs/overrides directory. Do not use custom_dir unless override templates actually exist.