Skip to content

Commit e697a8e

Browse files
authored
Update README.md with mermaid chart (#144)
1 parent e425065 commit e697a8e

1 file changed

Lines changed: 64 additions & 34 deletions

File tree

‎README.md‎

Lines changed: 64 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<p align="center">
44
<img src="./docs/images/oer-finder-plugin-logo.png" width=250 />
55
</p>
6-
An Open Educational Resources (OER) discovery system built on Nostr and built on [AMB](https://dini-ag-kim.github.io/amb/latest/), providing:
6+
An Open Educational Resources (OER) discovery system built on Nostr and built on https://dini-ag-kim.github.io/amb/latest , providing:
77

88
1. **Proxy Service**: Forwards search queries to configurable source adapters and returns unified OER results via a public API. Supports searching an AMB Nostr relay, Openverse, ARASAAC, RPI-Virtuell, and more through an **extendable adapter system** - add your own adapters to integrate any external API.
99
2. **Source Adapters**: Pluggable adapters for OER sources (e.g., AMB relay, ARASAAC, Openverse) that integrate seamlessly with search results. The adapter plugin system makes it easy to add new sources.
@@ -17,40 +17,70 @@ An Open Educational Resources (OER) discovery system built on Nostr and built on
1717
The screenshot shows an example of using Openverse as a OER source for the keyword "car".
1818

1919
## Overview
20-
21-
```
22-
┌───────────────────────────────────────────────────────────────────┐
23-
│ Your Application │
24-
│ ┌────────────────────────┐ ┌────────────────────────────────┐ │
25-
│ │ oer-finder-plugin │ │ oer-finder-api-client │ │
26-
│ │ (Web Components) │ │ (TypeScript Client) │ │
27-
│ └───────────┬────────────┘ └────────────────┬───────────────┘ │
28-
└──────────────┼──────────────────────────────────┼─────────────────┘
29-
│ │
30-
└────────────────┬─────────────────┘
31-
│ HTTP API
32-
▼
33-
┌───────────────────────────────────────────────────┐
34-
│ Proxy Server (formerly aggregator) │
35-
│ (NestJS) │
36-
└───────────────┬───────────────────────────────────┘
37-
│
38-
┌────────────────────────┼────────────────────────┐
39-
│ │ │
40-
▼ ▼ ▼
41-
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
42-
│ AMB Relay │ │ Source Adapters │ │ imgproxy │
43-
│ (Nostr OER) │ │ (External APIs) │ │ (Image Proxy) │
44-
└─────────────────┘ └──────────────────┘ └─────────────────────┘
45-
│
46-
┌───────────────┼───────────────┬───────────────┐
47-
│ │ │ │
48-
▼ ▼ ▼ ▼
49-
┌────────┐ ┌──────────┐ ┌──────────────┐ ┌──────────┐
50-
│ARASAAC │ │ Openverse│ │ RPI-Virtuell │ │Wikimedia │
51-
└────────┘ └──────────┘ └──────────────┘ └──────────┘
20+
```mermaid
21+
flowchart LR
22+
subgraph App1["Application 1"]
23+
P1["🔌 Oer Finder Plugin"]
24+
end
25+
26+
subgraph App2["Application 2"]
27+
P2["🔌 Oer Finder Plugin"]
28+
end
29+
30+
subgraph App3["Application 3"]
31+
P3["🔌 Oer Finder Plugin"]
32+
end
33+
34+
subgraph App4["Application 4"]
35+
P4["🔌 Oer Finder Plugin"]
36+
end
37+
38+
subgraph ProxyGroup["Oer Proxy ×1…n"]
39+
PROXY["🖥️ Oer Proxy"]
40+
IMGPROXY["🖼️ Imgproxy"]
41+
PROXY2["..."]
42+
end
43+
44+
subgraph Sources["Sources"]
45+
S1["🖼️ ARASAAC"]
46+
S2["🎨 Openverse"]
47+
S3["📚 Wikimedia"]
48+
S5["🔍 Oersi"]
49+
S6["🙏 RPI-Virtuell"]
50+
end
51+
52+
subgraph Relay["Edufeed Network"]
53+
R1["📡 Nostr AMB Relay"]
54+
R2["..."]
55+
R3["📡 Oersi AMB Relay"]
56+
end
57+
58+
P1 --> PROXY
59+
P2 --> PROXY
60+
P3 --> PROXY
61+
P4 --> PROXY
62+
63+
PROXY --> S1
64+
PROXY --> S2
65+
PROXY --> S3
66+
PROXY --> S6
67+
68+
PROXY --> R1
69+
PROXY --> R3
70+
71+
S1 -.-> R1
72+
S2 -.-> R1
73+
S3 -.-> R1
74+
S6 -.-> R1
75+
76+
S5 --> R3
77+
78+
style PROXY stroke-dasharray: 5 5
79+
style IMGPROXY stroke-dasharray: 5 5
80+
style PROXY2 stroke-dasharray: 5 5
81+
style R2 stroke-dasharray: 5 5
82+
style ProxyGroup stroke-dasharray: 5 5
5283
```
53-
5484
## Quick Start
5585

5686
### Development Server Setup

0 commit comments

Comments
 (0)