Kontact (Collaboration & Networking) — sub‑module under Kreative.
Implements five core services with stable code‑names and module ownership under the /connect and /profile/[user] routes.
Code‑names are canonical; each maps 1:1 to a Django service module consumed by DRF views and Celery tasks.
| Display name | Code name / service | Purpose / behavior | Likely file or module |
|---|---|---|---|
| Professional Profiles | professional_profile | Rich public profiles for creators/diffusers: bio, skills, portfolio links; integrates artwork and tags for discovery. | kreative/services/professional_profile.py |
| Intelligent Matching | intelligent_matching | Recommends people to follow/contact or invite into collaborations based on skills, tags, and activity signals (Ekoh context optional). | kreative/services/intelligent_matching.py |
| Collaboration Workspaces | collaboration_workspace | Lightweight networking‑context rooms (chat/notes/canvas) to meet, plan, and co‑create; reuses real‑time infra. | kreative/services/collaboration_workspace.py |
| Opportunities Board | opportunity_announcement | Post/browse residencies, exhibitions, calls, jobs; searchable by tags, region, dates. | kreative/services/opportunity_announcement.py |
| Reviews & Endorsements | partner_recommendation | Post‑engagement endorsements/ratings to establish trust and reputation between collaborators/hosts. | kreative/services/partner_recommendation.py |
Profiles & portfolios. Exposes read/write APIs for creator profiles, linking to existing creative assets (artworks, tags) for rich portfolios and searchability.
People matching. intelligent_matching ranks suggested contacts via skills/tags overlap and activity; tunable top‑N, and optional Ekoh/Smart‑Vote signals when relevant.
Real‑time meetups. collaboration_workspace provisions ephemeral rooms (DM/group), built on the same Channels/Redis stack used elsewhere; participant cap enforced at runtime.
Opportunity lifecycle. opportunity_announcement provides CRUD for postings (type, location, dates, attachments), listing/search, and status (open/closed/filled).
Trust signals. partner_recommendation lets collaborators leave structured endorsements after a workspace or engagement concludes; surfaced on profile pages.
Routes & ownership. UI/API bound to /connect (People, Opportunities, Workspace) and /profile/[user] (public profile), per navigation invariants.
The database reference explicitly lists the CollabSession table under Kreative/kontact. Profiles, opportunities, and endorsements use existing/core objects and Kontact app models not enumerated in that reference.
| Table / Model | Purpose | Key fields (excerpt) |
|---|---|---|
CollabSession | Real‑time collaborative session (networking/co‑creation room). | id, name, host (FK User), session_type (ENUM), started_at, ended_at, final_artwork (FK KreativeArtwork, nullable) |
(Reused) KreativeArtwork | Portfolio items surfaced on profiles (read‑only in Kontact). | id, artist (FK), title, media_file, media_type, style |
(Reused) Tag / ArtworkTag | Skills/genre tags used for discovery/matching. | Tag.name (unique); ArtworkTag (artwork, tag) |
Note: Only CollabSession is listed under Kontact in the v14 schema reference; other Kontact records (profiles, opportunities, recommendations) are implemented at the app level and/or reuse core tables.
Fixed parameters and route invariants that affect Kontact behavior.
COLLAB_CANVAS_MAX_USERS: 6 simultaneous editors in a real‑time room.
MEDIA_ROOT: /app/media/ for attachments (shared across modules).
Routes reserved: /connect, /profile/[user] owned by Kreative/kontact; additional nested tabs do not create new top‑level routes.
Kontact delivers networking‑centric capabilities via five services — professional_profile, intelligent_matching, collaboration_workspace, opportunity_announcement, partner_recommendation — integrated with the Kreative domain and routed under /connect and /profile/[user]. Data persists primarily through CollabSession and reused creative/Tag tables; real‑time rooms and matching leverage the platform’s DRF + Channels + Redis stack and frozen configuration.