This project powers a Big Ten Academic Alliance geospatial catalog. If you're a librarian or non-technical user, the goal here is simple:
- Start the project on your computer
- Open the website in your browser
- Search and view records
You do not need to know Python, databases, or Docker internals to use it.
- The website (frontend): where you browse and search (runs at
http://localhost:3000) - The API (backend): the "data service" the website talks to (runs at
http://localhost:8000)
This is the easiest way to run the project. All dependencies are handled automatically.
- Install Docker Desktop for your operating system and make sure it's running.
- Make a local settings file:
cp .env.example .envIf you already have a .env, you can keep using it.
This starts the full stack (API + website + database services):
docker compose up -dThen open:
- Website:
http://localhost:3000 - API docs (for technical staff):
http://localhost:8000/api/docs
To stop everything later:
docker compose downIf you are actively changing the website code, use frontend-dev. It updates instantly as files change.
Important: frontend-dev uses the same port (3000) as the normal website container, so you can run one or the other.
# Start backend services
docker compose up -d api paradedb elasticsearch redis celery_worker flower
# Stop the normal website container (port 3000)
docker compose stop frontend
# Start the dev website (profile "dev")
docker compose --profile dev up -d frontend-devIf you're developing the code locally (not using Docker), you'll need to install prerequisites and set up dependencies manually.
- Node.js 20 or later
- Python 3.11 or later
- UV (Python package manager) - install from https://github.com/astral-sh/uv
- Make a local settings file:
cp .env.example .env- Install backend dependencies:
cd backend
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
uv pip install -e '.[dev]'This installs the package in editable mode with development dependencies.
- Install frontend dependencies:
cd ../frontend
npm install- Set up services:
You'll need to set up the database, Elasticsearch, Redis, and other services. You can use Docker Compose for just the services:
docker compose up -d paradedb elasticsearch redis celery_worker flowerOr consult the documentation in docs/ for manual setup details.
- The website won't load: wait ~30–60 seconds after
docker compose up -d(databases need time to start) - Port 3000 is busy: stop whichever frontend container is running:
docker compose stop frontend frontend-dev - Start fresh (wipes local containers; keeps your project files):
docker compose down
docker compose up -dAll documentation is now in the top-level docs/ folder:
- Caching:
docs/backend/caching.md - Search:
docs/backend/search.md - Service tiers / API keys / rate limiting:
docs/backend/service_tiers_runbook.md - Scripts (Python utilities):
docs/backend/scripts.md - Frontend docs:
docs/frontend/ - Developer Make tasks:
docs/make_tasks.md