38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
# 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.
|