Current Status (July 2026)
Ahead of schedule on product; infrastructure still ahead
The application is feature-rich enough for a controlled University of Lethbridge pilot once production MySQL,
SMTP, backups, and accessibility/security gates pass. It is not yet production-launch ready
for open multi-institution operation.
- Implemented: researcher directory/profiles, Discovery & Research Neighborhood, partner intake (login required), deterministic matching, messaging/alerts, outreach CRM, Network Explorer, Research Engine workbench, admin/help tooling, CSRF/rate limiting, Playwright + axe automation, search-index export/Meilisearch plumbing.
- Removed / corrected: PWA was deliberately removed (July 2026). Partnership intake is no longer anonymous/public.
- Pending production: clean MySQL migration validation, live SMTP verification, durable object storage, manual WCAG/device QA, broader admin scoping, retention/privacy sign-off.
- Infrastructure gate: application server and managed MySQL provisioned by August 31, 2026.
Mission and Scope
Build and operate a regional hub that makes Southern Alberta research expertise visible and actionable for industry,
government, and community partners, starting with a controlled University of Lethbridge pilot and expanding only
when operations, data quality, and governance support it.
In scope for Year 1
- Verified researcher profiles with claim/publish workflow
- Login-required partnership intake and deterministic matchmaking with human review
- Admin outreach, import review, Network Explorer, and Research Engine workbench
- Staging/production hosting with MySQL, backups, SMTP, and health checks
- Controlled stakeholder testing and measurable pilot adoption
Out of scope / governance-gated for Year 1
- Fully automated AI scraping and unsupervised profile writes
- Broad multi-PSI public launch without written participation agreements
- External SSO/ORCID login until provider-account foundations and consent flows land
- Message attachments, full researcher document libraries, and production S3 object storage
Assumptions & Disclaimers
Participation-dependent goals
Profile counts, claimed profiles, intake volume, and approved partnerships depend on institutional participation,
researcher consent, and partner engagement. Targets below are goals, not fixed guarantees.
- Draft/imported profiles and claimed/validated profiles are tracked separately.
- Matchmaking remains human-reviewed; AI suggestions do not auto-publish.
- DigitalOcean App Platform and managed MySQL are the intended production stack; they are scheduled, not already validated as live production.
- UI mockups in mockups.html are dated synthetic planning screens and may show aspirational features.
Implemented Features (relative to original plan)
Compared with the earlier planning documents and the June 22, 2026 stakeholder request list, the following are
delivered or substantially delivered in the live Flask app.
Researcher experience
Directory & profiles
Claim / edit / publish
Profile section controls
Discovery
Research Neighborhood + embeddings
Activity / collaboration signals
Self-service photo upload
Publication editing UI
Partner experience
Login-required intake
Draft save / resume
Request attachments
Status explanations
Org member management
Partner-safe history
Workspace deliverables
Admin & operations
Match review
Outreach CRM
CSV / XLSX import review
Network Explorer + saved views
Researcher activity visibility
Help portals / Admin Wiki
CSRF + rate limits
Playwright + axe checks
Fine-grained admin levels
June 22 meeting follow-up
| Request |
Status |
| Researcher network exploration / embedding neighbourhood |
Implemented (Discovery + Research Neighborhood + semantic mode) |
| Admin researcher activity & profile visibility |
Implemented |
| Profile section visibility / custom sections |
Implemented |
| Researcher collaboration / activity dashboard |
Implemented |
| Partner request attachments & draft/resume |
Implemented |
| Shared file storage architecture |
Partial — service + partnership_files schema; workspace/S3 routes pending |
| Message attachments |
Planned |
| Keyword / research-interest history timeline |
Planned |
| External identity providers (ORCID, LinkedIn, etc.) |
Planned — design doc only |
Architecture
The live platform is a Python Flask application with Jinja templates, SQLAlchemy models, and Alembic migrations.
Public, researcher/partner workspace, and admin shells are separate. There is no active PWA.
- Application: Flask + Jinja + Bootstrap 5 (public Flowbite shell; AdminKit-style admin/workspace shells)
- Data: SQLAlchemy ORM; local SQLite for development; MySQL 8 target for staging/production
- Auth: email/password, invitations, optional TOTP 2FA, role-based dashboards; intake requires login
- Matching: deterministic scoring with explanations; admin approval creates partnerships
- Search: database-backed public search; export-search-index and Meilisearch integration tests ready; external search provider optional
- Storage: shared storage abstraction with local backend; S3/Spaces remains a planned production backend
- AI / Research Engine: admin workbench with deterministic baseline and optional OpenAI / DigitalOcean-compatible provider output attached for human review
Database & Hosting
Infrastructure milestone — end of August 2026
An application server and managed MySQL database will be provisioned by August 31, 2026
(intended stack: DigitalOcean App Platform + Managed MySQL). Until migration, backup/restore, health checks,
and SMTP validation succeed, development remains local / non-production.
Operational schema truth is the SQLAlchemy models and Alembic migration chain — not a static SQL dump.
See the web data summary for a field-oriented overview by domain.
- Clean MySQL migration + seed validation remains a launch blocker
- Deployment runbook, health endpoints, and email verification tooling already exist in project docs
- Automated daily backups and restore testing are required after the August provision
Matching & Research Engine
Year 1 matching is deterministic and explainable. The Research Engine is an admin-triggered workbench for import
review, discovery experiments, and optional provider-backed output. External discovery workers, citation/evidence
tables, cost accounting, and unsupervised canonical writes remain planned and governance-gated.
Deterministic match scores
Admin match approval
File upload candidate review
Optional provider call attachment
Research Neighborhood embeddings
Provider-backed scraping pipelines
ORCID / Scholar import
Background job queues
Year 1 SDLC Stages (July 2026 – June 2027)
Stage 1
MVP baseline (complete)
Through July 2026
Working Flask app, June 22 feature slices, automated browser/accessibility checks, deployment docs.
Stage 2
Infrastructure provision
By August 31, 2026
Provision server + managed MySQL; secrets, TLS, backups, restore test, health checks, non-public staging deploy.
Stage 3
Production validation
September – October 2026
Clean migrations/seed, SMTP, security/accessibility/device QA, retention/privacy, admin permission hardening.
Stage 4
Controlled demonstration
November 2026
RINSA / stakeholder demonstration; limited operator training; invite-only profile population.
Stage 5
Staged pilot
December 2026 – March 2027
ULethbridge-first pilot: draft profiles, claims, intake cases, reviewed matches, structured feedback.
Stage 6
Evidence-based expansion
April – June 2027
Improve ops from feedback; optional second institution only with written agreement; report Year 1 outcomes.
First-Year Timeline — July 2026 to June 2027
Quarters shown for the first operational year. Earlier six-month multi-PSI launch and “already hosted” claims are retired.
Delivery / infrastructure
Pilot operations
Data / completed baseline
Realistic Year 1 Goals
Goals are sized for a controlled single-institution pilot after the August infrastructure gate. Broader “150 claimed
profiles” and “20 facilitated partnerships” targets from earlier drafts are deferred as conditional stretch goals.
| Metric |
Year 1 target |
Notes |
| Quality draft / imported profiles |
75–100 |
Track separately from claimed profiles |
| Claimed / published profiles |
30–50 |
Requires researcher consent and outreach |
| Genuine partnership intake submissions |
10–20 |
Login-required; exclude synthetic test spam |
| Approved matches / active partnerships |
3–8 |
Human-reviewed; quality over volume |
| Trained operators |
2–4 |
Research office / platform staff |
| Structured stakeholder feedback sessions |
4 |
Including November demonstration |
| Additional PSI participation |
0–1 |
Only after written participation agreement |
Launch Gates Before Open Pilot Use
Infrastructure
- Server + managed MySQL provisioned (Aug 31)
- Clean migration + seed on MySQL
- Backups + restore test
- Health checks green
Communications
- Live SMTP / provider verification
- Invitations, resets, outreach, match notices
- Support contact paths confirmed
Quality & access
- Manual WCAG 2.2 AA / keyboard / responsive QA
- Critical browser workflows on staging
- Session / retention / privacy review
Operations
- 2–4 trained operators
- Admin handbook / launch checklist
- Capability scoping for technical surfaces
User Capabilities (current)
Researchers
- Claim, edit, and publish profiles
- Control public profile sections
- Use Discovery and Research Neighborhood
- Messages, alerts, vacation mode
Partners
- Login-required intake
- Draft save/resume and attachments
- Status explanations and safe history
- Organization member management
Administrators
- Import, outreach, match review
- Network Explorer investigations
- Research Engine workbench
- Help governance and settings
Community members
- Signed-in community dashboard
- Community-oriented intake wording
- Public directory and themes
- Further self-service still planned
Ongoing Costs and Maintenance
Year 1 hosting costs remain modest until the August provision, then rise to App Platform + Managed MySQL baseline
rates. Exact figures should be refreshed against then-current DigitalOcean pricing at provision time.
- Hosting: DigitalOcean App Platform (intended) + Managed MySQL from late August 2026
- Email: SMTP / transactional provider (configured and validated after provision)
- Optional AI: OpenAI or DigitalOcean-compatible model spend for Research Engine experiments only; not required for deterministic matching
- Operations: migration apply, backup/restore drills, dependency updates, operator support
Cost caution
Do not budget Year 1 as if full automated research pipelines and multi-PSI production load are already running.
Keep AI credits optional and review-gated.
Immediate Next Steps
- Provision application server and managed MySQL by August 31, 2026.
- Validate clean migrations, seed, backups/restore, and SMTP on staging.
- Complete manual accessibility/device QA and launch checklist.
- Train 2–4 operators and prepare November demonstration materials.
- Begin invitation-based profile population; report draft vs claimed counts separately.