Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
72b03d4
refactor: restructure backend into layered app/ package
chetanr25 May 30, 2026
f4ee6fe
Updated the change of code structure layer in docker, makefile and wo…
chetanr25 May 30, 2026
f6f7180
Merge #520: restructure backend into layered app/ package
abhishek-8081 Jun 2, 2026
e260df9
fix: lint target src/ -> app/ and remove stale electron release workflow
chetanr25 Jun 2, 2026
fa7188f
fix: explicit re-export of templates and forms in routes __init__. Fi…
chetanr25 Jun 2, 2026
93a5b3a
chore: remove frontend directory, as it's migrated to fireform-fronte…
chetanr25 Jun 2, 2026
e26a0ff
chore: move scripts to scripts/ directory, fixes #517
chetanr25 Jun 2, 2026
ddd9aaf
Merge pull request #525 from chetanr25/script_migrate
abhishek-8081 Jun 3, 2026
b6527b7
chore: created docker file and compose for development envirnment
chetanr25 Jun 3, 2026
79a1ce0
chore: docker file and docker compose for prod envirnment
chetanr25 Jun 3, 2026
0bc991a
Updated Makefile: added make init command to run a project initilizat…
chetanr25 Jun 4, 2026
7c40e5f
Merge pull request #528 from chetanr25/mkFile_scripts
abhishek-8081 Jun 5, 2026
e2e0662
remove unwanted html files under docs/ which is already migrated to f…
chetanr25 Jun 5, 2026
6d9d088
Merge pull request #529 from chetanr25/delete_docs
marcvergees Jun 6, 2026
53cd5eb
Merge pull request #524 from chetanr25/rm_frontend
marcvergees Jun 6, 2026
63d176f
Merge pull request #526 from chetanr25/docker_dev
marcvergees Jun 6, 2026
8d9bbc8
Merge pull request #527 from chetanr25/docker_prod
marcvergees Jun 6, 2026
9323606
Merge pull request #523 from chetanr25/ci_cleanup
marcvergees Jun 6, 2026
a318ff9
added entrypoint, readme and updated docker file and compose
chetanr25 Jun 7, 2026
eb20a95
fixed tests, replaced api -> app.api following our current code struc…
chetanr25 Jun 7, 2026
d745498
Merge pull request #531 from chetanr25/docker_endpoint_docs
marcvergees Jun 8, 2026
21a5f08
Merge pull request #533 from chetanr25/test_fail_fix
marcvergees Jun 8, 2026
b4f6c70
added API contracts
chetanr25 Jun 8, 2026
3825322
renamed incident-contract
chetanr25 Jun 9, 2026
7b354ea
updated incident-contracts in all references
chetanr25 Jun 9, 2026
0529cfd
added setup docs, updated contributing.md
chetanr25 Jun 11, 2026
c131ee1
added project structure
chetanr25 Jun 11, 2026
6ea0039
Updated renamed file name
chetanr25 Jun 12, 2026
24e14d9
Merge pull request #536 from chetanr25/setup_docs
marcvergees Jun 14, 2026
c87ab2e
Merge pull request #535 from chetanr25/openapi_contracts
marcvergees Jun 16, 2026
b590069
Fixed whisper and ollama URL in .env.example. Fix #537
chetanr25 Jun 17, 2026
c80717e
Merge pull request #538 from chetanr25/transcribe_fix
marcvergees Jun 17, 2026
86d232f
updated dev-docker compose to pull posgres docker image and updated .…
chetanr25 Jun 18, 2026
3d20567
removed sqlite db path from getting created through entrypoint script
chetanr25 Jun 18, 2026
bd64543
removed unwanted variables in config.py, Updated fallback of database…
chetanr25 Jun 18, 2026
271e4ba
added a seperate docker compose for isolated postgres db instance. Re…
chetanr25 Jun 18, 2026
89239c8
Removed unwanted dockerfile and compose.
chetanr25 Jun 18, 2026
25f426d
Merge pull request #559 from chetanr25/migrate_posgresql
marcvergees Jun 18, 2026
0c94a1a
Merge pull request #560 from chetanr25/prod_posgres_migration
vharkins1 Jun 18, 2026
721833d
Merge pull request #561 from chetanr25/rm_root_doc
marcvergees Jun 18, 2026
d60ce42
feat: :sparkles: first simple approach introducing fetching data
marcvergees Jun 19, 2026
4994cfb
feat: :sparkles: multiple weather fields can be fetched, fetched data…
marcvergees Jun 19, 2026
83cdddd
feat: :sparkles: start and end date
marcvergees Jun 20, 2026
97d98a0
feat: :sparkles: zipcode resolver
marcvergees Jun 20, 2026
7230338
docs: :memo: openapi contracts of the new created endpoints
marcvergees Jun 20, 2026
c6e3a10
Add /api/v1/health and system schema endpoints (#542)
abhishek-8081 Jun 20, 2026
da5da4f
Merge pull request #573 from abhishek-8081/issue-542-fix
marcvergees Jun 20, 2026
61586cd
feat: :sparkles: Coordinate format documented, date format specified,…
marcvergees Jun 20, 2026
6bf87d0
refactor: :recycle: changing outdated prints to logger
marcvergees Jun 20, 2026
1d47b7a
Add common contract schemas and standardized error handling (#543)
abhishek-8081 Jun 21, 2026
83e0ec1
feat: add celery and redis to docker compose to pull celery & redis d…
chetanr25 Jun 20, 2026
2bdc700
configured celery to FireForm
chetanr25 Jun 20, 2026
53f36d9
added required schemas for asuncformfill and to track celery jobs
chetanr25 Jun 20, 2026
436b15c
feat: add universal job tracking with UUID, progress, and structured …
chetanr25 Jun 21, 2026
838b85a
added make command to see logs for workers
chetanr25 Jun 21, 2026
77661fc
added init.py for tasks
chetanr25 Jun 21, 2026
60e1ce5
added tests for celery workers
chetanr25 Jun 21, 2026
c9d8b46
Merge remote-tracking branch 'origin/development' into 564-feat-enric…
marcvergees Jun 21, 2026
9b23056
Merge pull request #572 from fireform-core/564-feat-enrich-ai-input-w…
marcvergees Jun 21, 2026
ae8d8a1
Move retry-after constant to config.py (#543 review)
abhishek-8081 Jun 22, 2026
0e361a2
Merge pull request #575 from abhishek-8081/issue-543-fix
marcvergees Jun 22, 2026
eba3a8f
Merge branch 'development' into celery_redis_setup
marcvergees Jun 23, 2026
42b141f
Merge pull request #574 from chetanr25/celery_redis_setup
marcvergees Jun 23, 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
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ jobs:

- name: Run linter
run: |
ruff check src/ --output-format=github
ruff check app/ --output-format=github
59 changes: 0 additions & 59 deletions .github/workflows/release.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,7 @@ src/inputs/*.pdf
frontend/release/

# Local Claude Code instructions
CLAUDE.md
CLAUDE.md

*temp/
*.env*
23 changes: 6 additions & 17 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,14 @@ If you have a great idea for FireForm, we'd love to hear it! Please open an issu
4. Make sure your code lints.
5. Issue that pull request!

## 🛠️ Local Development Setup

FireForm uses Docker and Docker Compose for the backend to ensure a consistent environment.
**Issues are not formally assigned.** You are free to pick any open issue, work on it, and raise a PR directly. If multiple PRs address the same issue, the first one that actually fixes it generally gets preference. To avoid duplicating someone else's work, coordinate with other contributors on our [Discord](https://discord.gg/nBv5b6kF68) before starting.

### Prerequisites
## 💬 Community

- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
- `make` (optional, but recommended)
- [Node.js](https://nodejs.org/) 20+ (only needed for the desktop app)
Join our Discord server to ask questions, discuss issues, and coordinate work with other contributors: https://discord.gg/nBv5b6kF68

### Desktop App Development

The frontend is a vanilla HTML/CSS/JS app wrapped in Electron. To run it locally:
## 🛠️ Local Development Setup

```bash
cd frontend
npm install # one-time setup
npm start # launches the Electron desktop window
```
See the [Setup Guide](docs/1.%20SETUP.md) for the full walkthrough: prerequisites, running the backend with Docker, testing endpoints via Swagger UI, day-to-day commands, and troubleshooting.

The backend (API + Ollama) must be running separately via Docker — see `make fireform`.
Before writing code, read the [Project Structure](docs/2.%20PROJECT_STRUCTURE.md) guide — it explains how the codebase is organized and where new code should go.
28 changes: 0 additions & 28 deletions Dockerfile

This file was deleted.

106 changes: 61 additions & 45 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
.PHONY: help build up down logs shell exec pull-model test clean fireform logs-app logs-ollama logs-frontend super-clean
.PHONY: help init fireform build up down logs logs-app logs-ollama shell pull-model test clean super-clean

# The extraction model pulled into Ollama and used by src/llm.py. Override with
# `make pull-model OLLAMA_MODEL=...`. A 1.5B model keeps per-field fills fast.
OLLAMA_MODEL ?= qwen2.5:1.5b
COMPOSE = docker compose -f docker/dev/compose.yml --env-file docker/.env.dev
ENV_DEV = docker/.env.dev

# Read OLLAMA_MODEL from .env.dev at runtime; fall back to default if file absent.
OLLAMA_MODEL = $(shell grep -E '^OLLAMA_MODEL=' $(ENV_DEV) 2>/dev/null | cut -d= -f2 | tr -d '[:space:]' || echo qwen2.5:1.5b)

help:
@printf '%s\n' \
Expand All @@ -13,74 +15,88 @@ help:
'/_/ /_//_/ \___/ /_/ \____/_/ /_/ /_/ /_/ ' \
''
@echo ""
@echo "Fireform Development Commands"
@echo "FireForm Development Commands"
@echo "=============================="
@echo "make fireform - Build and start containers, then open a shell"
@echo "make init - First-time setup: check deps, create .env.dev, pick model"
@echo "make fireform - Build images, start containers, pull Ollama model"
@echo "make build - Build Docker images"
@echo "make up - Start all containers"
@echo "make up - Start all containers (detached)"
@echo "make down - Stop all containers"
@echo "make logs - View container logs"
@echo "make logs-app - View API container logs"
@echo "make logs-frontend - View frontend container logs"
@echo "make logs-ollama - View Ollama container logs"
@echo "make shell - Open Python shell in app container"
@echo "make exec - Execute Python script in container"
@echo "make pull-model - Pull the extraction model ($(OLLAMA_MODEL)) into Ollama"
@echo "make test - Run tests"
@echo "make clean - Remove containers"
@echo "make super-clean - [CAUTION] Use carefully. Cleans up ALL stopped containers, networks, build cache..."

# Fix #382 — pull-model is now part of the main setup flow
# The extraction model is pulled automatically before you need it
fireform: build up pull-model
@echo "make logs - Stream all container logs"
@echo "make logs-app - Stream app container logs"
@echo "make logs-ollama - Stream Ollama container logs"
@echo "make logs-worker - Stream Celery worker logs"
@echo "make shell - Open shell in running app container"
@echo "make pull-model - Pull Ollama model from .env.dev ($(OLLAMA_MODEL))"
@echo "make test - Run test suite"
@echo "make clean - Stop containers (preserves volumes)"
@echo "make super-clean - [CAUTION] Stop containers, delete volumes, prune Docker"

init:
@chmod +x scripts/check-deps.sh scripts/init-env.sh scripts/select-model.sh
@sh scripts/check-deps.sh
@sh scripts/init-env.sh
@sh scripts/select-model.sh
@printf "Build containers and pull model now? [y/N] "; \
read answer; \
case "$$answer" in \
[yY]*) $(MAKE) fireform ;; \
*) echo "Run 'make fireform' when ready." ;; \
esac

fireform: build up
@printf "Waiting for Ollama to be ready..."
@until $(COMPOSE) exec -T ollama ollama list > /dev/null 2>&1; do \
printf '.'; sleep 2; \
done
@echo " ready."
@if $(COMPOSE) exec -T ollama ollama list 2>/dev/null | grep -q "^$(OLLAMA_MODEL)"; then \
echo " Model $(OLLAMA_MODEL) already pulled."; \
else \
echo " Pulling $(OLLAMA_MODEL)..."; \
$(COMPOSE) exec -T ollama ollama pull $(OLLAMA_MODEL); \
fi
@echo ""
@echo "✅ FireForm is ready!"
@echo " Frontend: http://localhost:5173"
@echo "FireForm is ready!"
@echo " API: http://localhost:8000"
@echo " API Docs: http://localhost:8000/docs"
@echo ""
@echo "Run 'make logs' to view live logs, 'make down' to stop."

build:
docker compose build
@$(COMPOSE) build

up:
docker compose up -d
@$(COMPOSE) up -d

down:
docker compose down
@$(COMPOSE) down --remove-orphans

logs:
docker compose logs -f
@$(COMPOSE) logs -f

logs-app:
docker compose logs -f app
@$(COMPOSE) logs -f app

logs-ollama:
docker compose logs -f ollama
@$(COMPOSE) logs -f ollama

logs-frontend:
docker compose logs -f frontend
logs-worker:
@$(COMPOSE) logs -f celery-worker

shell:
docker compose exec app /bin/bash

# Start the FastAPI server inside the running container
run:
docker compose exec app uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload

exec:
docker compose exec app python3 src/main.py
@$(COMPOSE) exec app /bin/sh

pull-model:
docker compose exec ollama ollama pull $(OLLAMA_MODEL)
@$(COMPOSE) exec -T ollama ollama pull $(OLLAMA_MODEL)

# Fix — correct test directory (was src/test/ which doesn't exist)
test:
docker compose exec app python3 -m pytest tests/ -v
@$(COMPOSE) exec -T app python3 -m pytest tests/ -v

clean:
docker compose down -v
@$(COMPOSE) down

super-clean:
docker compose down -v
docker system prune
@echo "WARNING: this will delete all volumes (database, uploads, model weights)."
@$(COMPOSE) down -v
@docker system prune -f
20 changes: 0 additions & 20 deletions api/db/database.py

This file was deleted.

19 changes: 0 additions & 19 deletions api/db/models.py

This file was deleted.

24 changes: 0 additions & 24 deletions api/db/repositories.py

This file was deleted.

4 changes: 0 additions & 4 deletions api/errors/base.py

This file was deleted.

11 changes: 0 additions & 11 deletions api/errors/handlers.py

This file was deleted.

Loading
Loading