Skip to content

ECRIN Technical Documentation

Technical documentation for developers working on the ECRIN project.

Are you a researcher? Please refer to the ECRIN Researcher Guide instead.

Applications

The ECRIN project includes two SvelteKit applications:

ApplicationVersionDescription
Find an Expert0.5.1Researcher expertise discovery and analysis via OpenAlex and GitHub
ECRIN2.0.0Collaboration platform with REDCap surveys and graph visualization

Development Status

Authentication

FeatureFind an ExpertECRIN
Magic Link (email)OperationalOperational
Session managementOperationalOperational
Protected routesOperationalOperational
Account deletion-Operational

API Integrations

SourceStatusDetails
OpenAlexPartialInstitution search operational, researcher profiles to be developed
GitHubPartialURL parsing and local git stats, GitHub API not connected
REDCapOperationalSurvey export, link generation, record deletion
AppwriteOperationalAuth, consent-events and current-consents collections

Business Features

FeatureStatusApplication
Institution searchOperationalFind an Expert
Consent managementOperationalFind an Expert
Health monitoringOperationalFind an Expert
Survey link generationOperationalECRIN
Survey export (JSON)OperationalECRIN
Graph visualizationOperationalECRIN
Collaboration graphsOperationalECRIN

Functional Cards

The ECRIN application is organized into 6 sections with 15 cards in total.

SectionCardsOperationalIn Progress
Introduce303
Collaborate413
Explore211
Ask202
Publish202
Administrate220
Total15411

Detail by Section

Introduce Section

CardStatusComponent
MeUI implementedIntroduce.svelte
My scientific questionUI implementedIntroduce.svelte
My referencesUI implementedIntroduce.svelte

Collaborate Section

CardStatusComponent
Create my projectOperationalCollaborate.svelte
Build my teamUI implementedCollaborate.svelte
Find my expertUI implementedCollaborate.svelte
Fund my projectUI implementedCollaborate.svelte

Explore Section

CardStatusComponent
My graphOperationalExplore.svelte
Community graphActions disabledExplore.svelte

Ask Section

CardStatusComponent
DataUI implementedAsk.svelte
An expertActions disabledAsk.svelte

Publish Section

CardStatusComponent
My dataUI implementedPublish.svelte
My newsUI implementedPublish.svelte

Administrate Section

CardStatusComponent
My accountOperationalAdministrate.svelte
My surveyOperationalAdministrate.svelte

API Endpoints

Operational Endpoints

POST /api/v1/auth/login           # Authentication
POST /api/v1/auth/logout          # Logout
GET  /api/v1/health               # Health check
GET  /api/v1/institutions/search  # Institution search

Unimplemented Endpoints (stubs)

GET /api/v1/repositories/[id]/analysis      # Pending
GET /api/v1/repositories/[id]/contributors  # Not implemented
GET /api/v1/repositories/[id]/issues        # Not implemented
GET /api/v1/repositories/[id]/pulls         # Not implemented
GET /api/v1/repositories/[id]/stats         # Not implemented

Technical Stack

DomainTechnologies
FrontendSvelteKit 2, Svelte 5 (runes), Tailwind CSS
BackendAppwrite, REDCap
GraphsGraphology, Sigma.js
TestsVitest (13 files Find an Expert, 6 files ECRIN)
BuildVite, TypeScript strict

UI Components

Find an Expert (70+ components)

CategoryComponents
LayoutSection, Grid, PageLayout, Hero, CenteredLayout
NavigationNavbar, Footer, Drawer, Dropdown, LanguageSelector
Data DisplayCard, DataTable, StatCard, InfoCard, KeyValue
FeedbackAlert, Badge, LoadingSpinner, ErrorState
DomainResearchOrganizationSearch, ArticlesCountCard, ConsentStatusCard

ECRIN (18 specialized components)

CategoryComponents
Business CardsIntroduce, Ask, Collaborate, Explore, Publish, Administrate
GraphsGraphSelector, Sigma visualization components
UICardItem, Button, SectionTile, HorizontalScroller

Technical Documentation

Find an Expert

Audits and References