How rumeni/sciconnect works
SciConnect is a bilingual catalogue for discovering institution capabilities—analyses, instruments, researchers and target microorganisms—and for maintaining those records as an admin. The main flow is browser search/filter or entity lookup, API routing into catalog query/detail logic, and PostgreSQL-backed results; users can then open connected record details or, as admins, create, connect, disconnect and delete records. The UI also offers nearby/map views, public landing/partner/contact pages, and session-based admin access. Backend connections are supported by excerpts or the README; unsampled UI capabilities are represented without speculative internal links.
Main entry points: api.ts API client · Workspace.tsx Workspace · router.py Catalog routes · App.tsx Screen routing
Components 25
Web application
- Screen routing
frontend/src/App.tsx - Workspace
frontend/src/Workspace.tsx - Capability search
frontend/src/SearchView.tsx - Entity lookup
frontend/src/EntitySearch.tsx - Nearby map
frontend/src/NearbyView.tsx - Record details
frontend/src/DetailPanel.tsx - Catalog management
frontend/src/ManageView.tsx - Record removal
frontend/src/Removal.tsx - Admin sign-in
frontend/src/SignIn.tsx - Browser session
frontend/src/session.ts - Public pages
frontend/src/Landing.tsx - API client
frontend/src/api.ts
API and access
- FastAPI application
backend/app/main.py - Catalog routes
backend/app/modules/catalog/router.py - Access controls
backend/app/core/security.py - Rate limiting
backend/app/core/ratelimit.py
Catalog domain
- Capability queries
backend/app/modules/catalog/lookup.py - Entity details
backend/app/modules/catalog/details.py - Catalog operations
backend/app/modules/catalog/service.py - API data contracts
backend/app/modules/catalog/schemas.py - Catalog entities
backend/app/modules/catalog/models.py
Persistence and location
- PostgreSQL
backend/app/core/database.py - Address geocoding
backend/app/modules/catalog/geocoding.py
Other components
- Visitor
- Geocoding service
Connections 35
- Visitor → Screen routing: opens
frontend/src/App.tsx - Screen routing → Workspace: routes to
frontend/src/App.tsx - Screen routing → Admin sign-in: routes to
frontend/src/App.tsx - Screen routing → Public pages: routes to
frontend/src/App.tsx - Workspace → Capability search: renders
frontend/src/Workspace.tsx - Workspace → Entity lookup: renders
frontend/src/Workspace.tsx - Workspace → Nearby map: renders
frontend/src/Workspace.tsx - Workspace → Record details: renders
frontend/src/Workspace.tsx - Workspace → Catalog management: renders
frontend/src/Workspace.tsx - Catalog management → Record removal: renders
frontend/src/ManageView.tsx - Admin sign-in → Browser session: updates
frontend/src/App.tsx - Screen routing → Browser session: reads
frontend/src/App.tsx - Capability search → API client: requests
- Entity lookup → API client: requests
frontend/src/EntitySearch.tsx - Record details → API client: loads details
frontend/src/DetailPanel.tsx - Catalog management → API client: writes records
frontend/src/ManageView.tsx - Record removal → API client: deletes records
frontend/src/Removal.tsx - API client → Browser session: reads admin key
frontend/src/api.ts - API client → FastAPI application: HTTP requests
frontend/src/api.ts - FastAPI application → Catalog routes: mounts routes
backend/app/main.py - FastAPI application → Access controls: installs middleware
backend/app/main.py - FastAPI application → Rate limiting: installs middleware
backend/app/main.py - Catalog routes → Capability queries: calls search
backend/app/modules/catalog/router.py - Catalog routes → Entity details: calls details
backend/app/modules/catalog/router.py - Catalog routes → Catalog operations: calls mutations
backend/app/modules/catalog/router.py - Catalog routes → PostgreSQL: opens sessions
backend/app/modules/catalog/router.py - Capability queries → Catalog entities: queries
backend/app/modules/catalog/lookup.py - Entity details → Catalog entities: reads records
backend/app/modules/catalog/details.py - Catalog operations → Catalog entities: mutates records
backend/app/modules/catalog/service.py - Catalog operations → Address geocoding: geocodes addresses
backend/app/modules/catalog/service.py - Address geocoding → Geocoding service: looks up addresses
- Catalog entities → PostgreSQL: declares mappings
backend/app/modules/catalog/models.py - Catalog routes → API data contracts: uses contracts
backend/app/modules/catalog/router.py - Catalog operations → API data contracts: accepts payloads
backend/app/modules/catalog/service.py - Entity details → API data contracts: builds views
backend/app/modules/catalog/details.py