You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
College Exploration Platform is a full-stack decision-support product for helping prospective and admitted students discover, compare, rank, and justify college choices with transparent data and deterministic scoring.
4
4
5
-
Status: V1.8 onboarding and local preference profile complete. Ranking logic, Redis, pgvector, and deployment are intentionally not implemented yet.
5
+
Status: V1.9 deterministic ranking engine complete. Redis, pgvector, saved schools, comparisons, and deployment are intentionally not implemented yet.
- School profile: `http://127.0.0.1:8000/schools/1`
113
114
- OpenAPI docs: `http://127.0.0.1:8000/docs`
114
115
@@ -124,10 +125,12 @@ Example profile request:
124
125
curl "http://127.0.0.1:8000/schools/1"
125
126
```
126
127
127
-
`GET /schools/{id}` composes a full profile from the core `schools` row plus academic, cost, outcome, and campus-life tables. The API keeps ranking placeholders such as `fit_score`, `category_scores`, reasons, tradeoffs, and `similar_schools` empty until those roadmap steps are implemented.
128
+
`GET /schools/{id}` composes a full profile from the core `schools` row plus academic, cost, outcome, and campus-life tables. Profile ranking placeholders such as `fit_score`, `category_scores`, reasons, tradeoffs, and `similar_schools`remain empty until the frontend profile workflow consumes ranking output.
128
129
129
130
Missing data is treated as unknown. The API returns `null` for missing values, lists those fields in `data_fields_missing`, and includes a simple `data_confidence_score` based on profile completeness. It does not convert missing numbers to zero or infer school facts that are not in the database.
130
131
132
+
`POST /rankings` ranks search-card results against a supplied preference profile using deterministic V1.0 category scoring, normalized weights, confidence scores, hard constraints, and reason-code explanations. Ranking does not use semantic search, ML models, or LLM-generated scoring.
133
+
131
134
### Frontend Setup
132
135
133
136
The V1.6 frontend lives in `apps/web` and uses the Next.js App Router with TypeScript, Tailwind CSS, and small shadcn/ui-compatible component primitives.
@@ -217,12 +220,12 @@ Expected future commands:
217
220
218
221
## Limitations
219
222
220
-
-`/health`, `/ready`, `/schools/search`, and `/schools/{id}`exist. Preference persistence, saved-school, comparison, and ranking endpoints are not implemented yet.
223
+
-`/health`, `/ready`, `/schools/search`, `/schools/{id}`, and `/rankings`exist. Preference persistence, saved-school, and comparison endpoints are not implemented yet.
221
224
- The frontend has a landing page, onboarding, search UI, route shell, UI primitives, and typed API client, but no backend preference persistence, persisted saved-school flows, comparison workflow, or profile pages yet.
222
225
- Onboarding stores a typed `PreferenceProfile` in browser `localStorage` and forwards supported filters such as state, setting, school type, and max net price to `/search`.
223
226
- Search supports structured filters, sort controls, URL state, pagination, local save/compare state, loading/empty/error states, and API-backed result cards.
224
-
- The “Best fit” sort is a UI placeholder that falls back to name sorting until deterministic ranking exists in V1.9.
225
-
- No ranking engine, Redis cache, pgvector integration, or deployment exists yet.
227
+
- The "Best fit" sort is a UI placeholder until the frontend calls `POST /rankings`.
228
+
- No Redis cache, pgvector integration, or deployment exists yet.
226
229
- No performance metrics are available.
227
230
- Seed data is synthetic and intended for deterministic local development, not factual school reporting.
228
231
- End-to-end validation will be added after the product workflows exist.
0 commit comments