Skip to content

Commit a0bf2e8

Browse files
committed
initial commit
1 parent a1c6e75 commit a0bf2e8

169 files changed

Lines changed: 18415 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# ── StackResume — Configuration ───────────────────────────────────────────
2+
# Copy this file to .env. Everything here can ALSO be edited live from the
3+
# in-app Settings → API Keys / AI Models modal (the DB overlay takes
4+
# precedence over these defaults at runtime).
5+
6+
# ── LLM provider ──────────────────────────────────────────────────────────────
7+
# One of: openai | anthropic | google | ollama | custom
8+
# Default is Google Gemini — set GOOGLE_API_KEY below.
9+
LLM_PROVIDER=google
10+
LLM_MODEL=gemini-2.5-flash
11+
LLM_TEMPERATURE=0.7
12+
13+
# ── Provider API keys ─────────────────────────────────────────────────────────
14+
# Set the one matching LLM_PROVIDER. All can also be entered in the UI.
15+
OPENAI_API_KEY=
16+
ANTHROPIC_API_KEY=
17+
GOOGLE_API_KEY=
18+
19+
# ── Custom OpenAI-compatible endpoint (optional) ─────────────────────────────
20+
# Only used when LLM_PROVIDER=custom. Point at any OpenAI-compatible API
21+
# (Azure OpenAI, vLLM, Together.ai, …). Auth still uses OPENAI_API_KEY.
22+
# OPENAI_BASE_URL=https://your-host/v1
23+
24+
# ── Ollama (optional) ─────────────────────────────────────────────────────────
25+
# Only used if LLM_PROVIDER=ollama. Point at a host-installed Ollama server.
26+
# Inside Docker, use http://host.docker.internal:11434 to reach the host.
27+
OLLAMA_BASE_URL=http://host.docker.internal:11434
28+
29+
# ── LangSmith tracing (optional) ──────────────────────────────────────────────
30+
# Set LANGSMITH_TRACING=true AND LANGSMITH_API_KEY to stream every LLM call
31+
# to LangSmith. Verify the connection from Settings → Test trace.
32+
LANGSMITH_API_KEY=
33+
LANGSMITH_PROJECT=stackresume
34+
LANGSMITH_TRACING=false
35+
36+
# ── Quality settings ──────────────────────────────────────────────────────────
37+
MAX_REVIEW_ITERATIONS=3 # How many times to refine the resume (1-5)
38+
MIN_QUALITY_SCORE=82.0 # Stop refining when this score is reached (0-100)
39+
40+
# ── Database ──────────────────────────────────────────────────────────────────
41+
# SQLAlchemy URL. The Docker compose file already sets this to the bind-mounted
42+
# /data path so you don't normally need to change it. For a local pip run:
43+
# DATABASE_URL=sqlite+aiosqlite:///./stackresume.db
44+
# DATABASE_URL=sqlite+aiosqlite:////data/resume_builder.db
45+
46+
# ── Optional admin auth (single user, session-based) ─────────────────────────
47+
# Off by default. Flip AUTH_ENABLED=true AND set AUTH_PASSWORD to require login.
48+
# Uses SHA-512 client-side hashing + 24h server-issued session tokens.
49+
# Login will return 503 if AUTH_ENABLED=true but AUTH_PASSWORD is empty.
50+
AUTH_ENABLED=false
51+
AUTH_USERNAME=admin
52+
AUTH_PASSWORD=
53+
54+
# ── CORS ──────────────────────────────────────────────────────────────────────
55+
# Comma-separated list of allowed origins, or * to allow all (dev default).
56+
# Production example: CORS_ORIGINS=https://myapp.example.com
57+
# When AUTH_ENABLED=true and CORS_ORIGINS=* the server collapses to same-origin only.
58+
CORS_ORIGINS=*
59+
60+
# ── App ───────────────────────────────────────────────────────────────────────
61+
DEBUG=false # Enables FastAPI debug + SQL echo when true

.github/pull_request_template.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## Summary
2+
3+
<!-- What does this PR do? One or two sentences. -->
4+
5+
## Type of change
6+
7+
<!-- Choose one — this drives the version bump on merge. -->
8+
9+
- [ ] `fix: ...` — bug fix → patch bump (0.0.**x**)
10+
- [ ] `feat: ...` — new feature → minor bump (0.**x**.0)
11+
- [ ] `feat!: ...` / `BREAKING CHANGE` — breaking change → major bump (**x**.0.0)
12+
- [ ] `chore:` / `docs:` / `ci:` / `refactor:` — no release created
13+
14+
## PR title format
15+
16+
Your PR title becomes the commit message on merge and determines the version bump:
17+
18+
```
19+
feat(resume): add cover letter section
20+
fix: pdf export crash on empty work history
21+
feat!: replace /generate endpoint with /build (breaking)
22+
chore: update dev dependencies
23+
```
24+
25+
Pattern: `type(optional-scope): short description in lowercase`
26+
27+
## Checklist
28+
29+
- [ ] Tests added / updated under `backend/tests/` for any changed `backend/app/` code
30+
- [ ] `pytest` passes locally (`cd backend && pytest`)
31+
- [ ] PR title follows the format above

0 commit comments

Comments
 (0)