# roydhirj19/blog_app architecture

> Architecture diagram of the GitHub repository roydhirj19/blog_app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/roydhirj19/blog_app
- Repository: https://github.com/roydhirj19/blog_app

## Overview

ThoughtNest is a React blog platform backed by Appwrite. Readers browse and view posts; authenticated writers create, edit, and delete posts, including featured images. The route setup and session initialization are visible in the sampled entry and app shell; README capabilities such as search/filter and protected routes are represented where source excerpts are incomplete. Appwrite post-service wiring and page implementations were not sampled, so those connections are limited to documented product behavior and visible calls.

Main entry points: [`src/pages`](https://github.com/roydhirj19/blog_app/tree/main/src/pages) (Route Pages), [`src/appwrite/config.js`](https://github.com/roydhirj19/blog_app/blob/main/src/appwrite/config.js) (Post Service), [`src/main.jsx`](https://github.com/roydhirj19/blog_app/blob/main/src/main.jsx) (React Entry), [`src/App.jsx`](https://github.com/roydhirj19/blog_app/blob/main/src/App.jsx) (App Shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["App Shell &amp; Routes"]
  node_entry["React Entry<br/>[main.jsx]"]
  node_app["App Shell<br/>[App.jsx]"]
  node_routes["Route Pages"]
end

subgraph group_identity["Identity &amp; Session"]
  node_authlayout["Route Guard<br/>[AuthLayout.jsx]"]
  node_authviews["Login &amp; Signup<br/>[Login.jsx]"]
  node_authservice["Auth Service<br/>[auth.js]"]
  node_authstate["Auth State<br/>[authSlice.js]"]
  node_store["Redux Store<br/>[store.js]"]
end

subgraph group_publishing["Post Publishing"]
  node_postform["Post Editor<br/>[PostForm.jsx]"]
  node_rte["Rich Text Editor<br/>[RTE.jsx]"]
  node_postcard["Post Card<br/>[PostCard.jsx]"]
end

subgraph group_backend["Appwrite Services"]
  node_appwriteconfig["Post Service<br/>[config.js]"]
  node_configuration["Backend Config<br/>[conf.js]"]
end

node_reader(("Reader / Writer"))
node_appwriteauth{{"Appwrite Auth"}}
node_appwritedb[("Appwrite Database")]
node_appwritestorage[("Appwrite Storage")]
node_tinymce{{"TinyMCE"}}

node_reader -->|"uses"| node_entry
node_entry -->|"renders"| node_app
node_entry -->|"routes"| node_routes
node_app -->|"checks session"| node_authservice
node_app -->|"dispatches auth"| node_store
node_store -->|"holds state"| node_authstate
node_routes -->|"protects routes"| node_authlayout
node_routes -->|"renders auth"| node_authviews
node_authlayout -->|"reads auth"| node_store
node_authviews -->|"authenticates"| node_authservice
node_authservice -->|"manages sessions"| node_appwriteauth
node_routes -->|"edits posts"| node_postform
node_postform -->|"edits content"| node_rte
node_postform -->|"saves posts"| node_appwriteconfig
node_routes -->|"loads posts"| node_appwriteconfig
node_routes -->|"displays posts"| node_postcard
node_appwriteconfig -->|"reads settings"| node_configuration
node_appwriteconfig -->|"reads and writes"| node_appwritedb
node_appwriteconfig -->|"uploads images"| node_appwritestorage
node_rte -.->|"embeds editor"| node_tinymce

click node_entry "https://github.com/roydhirj19/blog_app/blob/main/src/main.jsx"
click node_app "https://github.com/roydhirj19/blog_app/blob/main/src/App.jsx"
click node_routes "https://github.com/roydhirj19/blog_app/tree/main/src/pages"
click node_authlayout "https://github.com/roydhirj19/blog_app/blob/main/src/components/AuthLayout.jsx"
click node_authviews "https://github.com/roydhirj19/blog_app/blob/main/src/components/Login.jsx"
click node_authservice "https://github.com/roydhirj19/blog_app/blob/main/src/appwrite/auth.js"
click node_authstate "https://github.com/roydhirj19/blog_app/blob/main/src/store/authSlice.js"
click node_store "https://github.com/roydhirj19/blog_app/blob/main/src/store/store.js"
click node_postform "https://github.com/roydhirj19/blog_app/blob/main/src/components/post-form/PostForm.jsx"
click node_rte "https://github.com/roydhirj19/blog_app/blob/main/src/components/RTE.jsx"
click node_postcard "https://github.com/roydhirj19/blog_app/blob/main/src/components/PostCard.jsx"
click node_appwriteconfig "https://github.com/roydhirj19/blog_app/blob/main/src/appwrite/config.js"
click node_configuration "https://github.com/roydhirj19/blog_app/blob/main/src/conf/conf.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_app,node_routes toneBlue
class node_authlayout,node_authviews,node_authservice,node_authstate,node_store,node_appwritedb,node_appwritestorage toneAmber
class node_postform,node_rte,node_postcard toneMint
class node_appwriteconfig,node_configuration toneRose
class node_reader,node_appwriteauth,node_tinymce toneIndigo
```

## Components

### App Shell & Routes

- [React Entry](https://github.com/roydhirj19/blog_app/blob/main/src/main.jsx): `src/main.jsx`
- [App Shell](https://github.com/roydhirj19/blog_app/blob/main/src/App.jsx): `src/App.jsx`
- [Route Pages](https://github.com/roydhirj19/blog_app/tree/main/src/pages): `src/pages`

### Identity & Session

- [Route Guard](https://github.com/roydhirj19/blog_app/blob/main/src/components/AuthLayout.jsx): `src/components/AuthLayout.jsx`
- [Login & Signup](https://github.com/roydhirj19/blog_app/blob/main/src/components/Login.jsx): `src/components/Login.jsx`
- [Auth Service](https://github.com/roydhirj19/blog_app/blob/main/src/appwrite/auth.js): `src/appwrite/auth.js`
- [Auth State](https://github.com/roydhirj19/blog_app/blob/main/src/store/authSlice.js): `src/store/authSlice.js`
- [Redux Store](https://github.com/roydhirj19/blog_app/blob/main/src/store/store.js): `src/store/store.js`

### Post Publishing

- [Post Editor](https://github.com/roydhirj19/blog_app/blob/main/src/components/post-form/PostForm.jsx): `src/components/post-form/PostForm.jsx`
- [Rich Text Editor](https://github.com/roydhirj19/blog_app/blob/main/src/components/RTE.jsx): `src/components/RTE.jsx`
- [Post Card](https://github.com/roydhirj19/blog_app/blob/main/src/components/PostCard.jsx): `src/components/PostCard.jsx`

### Appwrite Services

- [Post Service](https://github.com/roydhirj19/blog_app/blob/main/src/appwrite/config.js): `src/appwrite/config.js`
- [Backend Config](https://github.com/roydhirj19/blog_app/blob/main/src/conf/conf.js): `src/conf/conf.js`

### Other components

- **Reader / Writer**
- **Appwrite Auth**
- **Appwrite Database**
- **Appwrite Storage**
- **TinyMCE**

## Connections

- Reader / Writer → React Entry: uses
- React Entry → App Shell: renders
- React Entry → Route Pages: routes
- App Shell → Auth Service: checks session
- App Shell → Redux Store: dispatches auth
- Redux Store → Auth State: holds state
- Route Pages → Route Guard: protects routes
- Route Pages → Login & Signup: renders auth
- Route Guard → Redux Store: reads auth
- Login & Signup → Auth Service: authenticates
- Auth Service → Appwrite Auth: manages sessions
- Route Pages → Post Editor: edits posts
- Post Editor → Rich Text Editor: edits content
- Post Editor → Post Service: saves posts
- Route Pages → Post Service: loads posts
- Route Pages → Post Card: displays posts
- Post Service → Backend Config: reads settings
- Post Service → Appwrite Database: reads and writes
- Post Service → Appwrite Storage: uploads images
- Rich Text Editor → TinyMCE: embeds editor
