2.9 KiB
photofetch
Pick a Napta Project and see a grid of its Members — each shown with their Slack Avatar, name, and Role. The shared vocabulary below is the ubiquitous language: it must appear verbatim in conversation, code, tests, commits, and docs.
Language
Project: A Napta project that people are staffed on; the unit you select to see its team. Avoid: mission, engagement.
Person:
An employee in Napta (a Napta user), carrying an email, first/last name, and Position.
Avoid: collaborator, resource, user (ambiguous — there are no app accounts).
Staffing Assignment:
A Napta user_project row linking one Person to one Project; may be real or simulated.
Avoid: allocation, booking.
Member:
A Person with a real (non-simulated) Staffing Assignment on the selected Project who is still an active employee — one cell in the grid.
Avoid: teammate, staff.
Role:
A Member's Napta job Position (user_position), shown under their name.
Avoid: title, grade, seniority.
Match: The link from a Member to their Slack profile, made by equal email. A Member is matched or unmatched. Avoid: lookup, mapping.
Avatar: A matched Member's Slack profile picture. Unmatched Members fall back to an initials Avatar. Avoid: photo, picture, image.
Selection: The set of one or more Projects currently chosen, whose teams are shown together. Avoid: filter.
Project Group: One selected Project plus its Members — a section in the grid and a folder in an Export. Avoid: section, bucket.
Export: A downloadable zip of Member Avatars, organized as one folder per Project Group (folder named after the Project). Avoid: download, dump.
Relationships
- A Project has many Staffing Assignments; each Assignment links one Person.
- A Member is a Person with a qualifying Staffing Assignment on a selected Project.
- A Member has exactly one Role and at most one Avatar (via an email Match).
- A Selection contains one or more Projects; each renders as a Project Group.
- A Person staffed on several selected Projects appears in each of those Project Groups.
- An Export writes one folder per Project Group, holding its Members' Avatar files.
Example dialogue
Dev: "When I pick a Project, do I show every Person who has a Staffing Assignment on it?" Domain expert: "Only real ones — drop the
simulatedassignments, and drop people who've left." Dev: "And if a Member's email has no Match in Slack?" Domain expert: "Still show them — initials Avatar, real name and Role. A missing photo isn't a missing person."
Flagged ambiguities
- "user" is avoided: Napta calls a Person a
user, but photofetch has no login/accounts, so the word would mislead. A Person on the selected Project is a Member.