Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Jan 12, 2024
1 parent 9187e52 commit 76b2431
Showing 1 changed file with 115 additions and 0 deletions.
115 changes: 115 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,118 @@
blog.bouzuya.net for Android.

<https://play.google.com/store/apps/details?id=net.bouzuya.blog>

## System Architecture Diagram

```mermaid
flowchart LR
subgraph android
frontend
end
subgraph google_cloud
subgraph cloud_run["Cloud Run"]
backend
end
scheduler["Cloud Scheduler"]
db["Firestore"]
end
subgraph users
user
bouzuya
end
bbn["blog.bouzuya.net API"]
expo["Expo Push API"]
backend --> bbn
backend --> db
backend --> expo
bouzuya .-> bbn
frontend --> backend
frontend --> bbn
frontend --> expo
scheduler --> backend
user --> frontend
expo .-> frontend
```

## UseCases

### Fetch entries

```mermaid
sequenceDiagram
participant user
participant frontend
participant bbn as "blog.bouzuya.net API"
user ->> frontend : Run
Note over frontend : Register ExpoPushToken
frontend ->> bbn : Fetch entries
bbn -->> frontend : (entries)
```

### Register ExpoPushToken

```mermaid
sequenceDiagram
participant user
participant frontend
participant backend
participant db
participant expo as "Expo Push API"
user ->> frontend : Run
frontend ->> frontend : Get permissions
frontend ->> user : Request permissions
user -->> frontend : Grant permissions
frontend ->> expo : Create ExpoPushToken (expo-notifications)
expo -->> frontend : (ExpoPushToken)
frontend ->> backend : Register ExpoPushToken
backend ->> db : Write ExpoPushToken
backend -->> frontend : OK
```

### Send push notifications

```mermaid
sequenceDiagram
participant scheduler
participant backend
participant db
participant expo as "Expo Push API"
participant bbn as "blog.bouzuya.net API"
scheduler ->> backend : Run
backend ->> bbn : Fetch entries
bbn ->> backend : (entries)
backend ->> backend : Check updates
backend ->> db : Read ExpoPushTokens
db -->> backend : (ExpoPushTokens)
backend ->> expo : Send push notifications
expo -->> backend : (ExpoPushTickets)
backend ->> db : Write ExpoPushTickets
backend -->> scheduler : OK
```

### Delete invalid ExpoPushTokens

```mermaid
sequenceDiagram
participant scheduler
participant backend
participant db
participant expo as "Expo Push API"
scheduler ->> backend : Run (after 15+ mins)
backend ->> db : Read ExpoPushTickets
db -->> backend : (ExpoPushTickets)
backend ->> expo : Get push notification receipts
expo -->> backend : (ExpoPushReceipt)
backend ->> db : Delete invalid ExpoPushTokens
backend -->> scheduler : OK
```

0 comments on commit 76b2431

Please sign in to comment.