Add public Cloudy profile matching sample
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Profile Matching - Public Code Sample
|
||||
|
||||
This is a small, dependency-free portfolio excerpt adapted from **Cloudy**, an
|
||||
AI-assisted profile and matching service I built for a collaboration platform.
|
||||
The production repository is private, so this project intentionally contains
|
||||
only the self-contained scoring layer and its tests. It includes no user data,
|
||||
credentials, API code, or project-specific infrastructure.
|
||||
|
||||
## What it demonstrates
|
||||
|
||||
- transparent, explainable matching across skills, interests, location, and
|
||||
shared project tags;
|
||||
- input normalisation and explicit handling of incomplete profile data;
|
||||
- optional affinity weights that personalise recommendations without changing
|
||||
existing behaviour when no preferences are set;
|
||||
- pure business logic separated from database and API concerns;
|
||||
- executable tests for normal cases, edge cases, and scoring invariants.
|
||||
|
||||
The actual application combines this score with an asynchronous PostgreSQL
|
||||
repository layer and uses it to rank potential collaboration matches.
|
||||
|
||||
## Run the tests
|
||||
|
||||
The sample uses only the Python standard library:
|
||||
|
||||
```bash
|
||||
python -m unittest -v
|
||||
```
|
||||
|
||||
## Why this is good code
|
||||
|
||||
The model is deliberately small and deterministic. Each function has one
|
||||
responsibility, is type annotated, and can be tested without a database, LLM,
|
||||
or network access. Missing location data never creates a false positive, and
|
||||
the weighted extension remains backwards-compatible with the original Jaccard
|
||||
similarity model. That keeps the recommendation logic understandable for users
|
||||
and safe to evolve in a larger product.
|
||||
Reference in New Issue
Block a user