# reddysreekar/expressinease architecture

> Architecture diagram of the GitHub repository reddysreekar/expressinease, 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/reddysreekar/expressinease
- Repository: https://github.com/reddysreekar/expressinease

## Overview

ExpressInEase is an anonymous expression-sharing platform with referral-gated accounts and admin moderation. Visitors browse, search, and filter posts; signed-in users can publish, react, or report, while authors and admins can delete. Admins review reports, inspect posts and reaction details, and view the referral tree. The frontend API module communicates with Express, which uses authentication utilities and SQLite for account and content operations. The README documents these capabilities; some feature components and backend routes were not sampled, so uncertain internal wiring is omitted.

Main entry points: [`frontend/src/App.jsx`](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/App.jsx) (App Orchestrator), [`frontend/src/api.js`](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/api.js) (Frontend API), [`backend/server.js`](https://github.com/reddysreekar/expressinease/blob/main/backend/server.js) (Express API), [`frontend/src/components/PostFeed.jsx`](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/PostFeed.jsx) (Post Feed)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Public Experience"]
  node_app["App Orchestrator<br/>[App.jsx]"]
  node_feed["Post Feed<br/>[PostFeed.jsx]"]
  node_category["Category Filter<br/>[CategoryFilter.jsx]"]
  node_header["Header and Stats<br/>[Header.jsx]"]
end

subgraph group_identity["Identity"]
  node_authmodal["Login and Register<br/>[AuthModal.jsx]"]
  node_authcontext["Auth Context<br/>[AuthContext.jsx]"]
  node_auth["Auth Utilities<br/>[auth.js]"]
end

subgraph group_engagement["Post Engagement"]
  node_postcard["Post Card<br/>[PostCard.jsx]"]
  node_compose["Compose Modal<br/>[ComposeModal.jsx]"]
  node_reportmodal["Report Modal<br/>[ReportModal.jsx]"]
end

subgraph group_moderation["Admin Moderation"]
  node_adminpanel["Admin Panel<br/>[AdminPanel.jsx]"]
end

subgraph group_backend["API and Persistence"]
  node_api["Frontend API<br/>[api.js]"]
  node_server["Express API<br/>[server.js]"]
  node_database[("SQLite Database<br/>[db.js]")]
end

node_visitor(("Visitor"))

node_visitor -->|"uses"| node_app
node_app -->|"renders"| node_feed
node_app -->|"renders"| node_category
node_app -->|"renders"| node_header
node_app -->|"opens"| node_authmodal
node_app -->|"opens"| node_compose
node_app -->|"opens"| node_reportmodal
node_app -->|"opens"| node_adminpanel
node_app -->|"fetches posts and stats"| node_api
node_app -->|"deletes posts"| node_api
node_authmodal -->|"calls login or register"| node_authcontext
node_authcontext -->|"authenticates"| node_api
node_feed -->|"renders"| node_postcard
node_postcard -->|"submits reactions"| node_api
node_adminpanel -->|"requests admin data"| node_api
node_compose -->|"creates posts"| node_api
node_reportmodal -->|"submits reports"| node_api
node_api -->|"sends API requests"| node_server
node_server -->|"reads and writes"| node_database
node_server -->|"uses token and password utilities"| node_auth

click node_app "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/App.jsx"
click node_feed "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/PostFeed.jsx"
click node_postcard "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/PostCard.jsx"
click node_category "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/CategoryFilter.jsx"
click node_header "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/Header.jsx"
click node_authmodal "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/AuthModal.jsx"
click node_authcontext "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/contexts/AuthContext.jsx"
click node_compose "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/ComposeModal.jsx"
click node_reportmodal "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/ReportModal.jsx"
click node_adminpanel "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/AdminPanel.jsx"
click node_api "https://github.com/reddysreekar/expressinease/blob/main/frontend/src/api.js"
click node_server "https://github.com/reddysreekar/expressinease/blob/main/backend/server.js"
click node_auth "https://github.com/reddysreekar/expressinease/blob/main/backend/auth.js"
click node_database "https://github.com/reddysreekar/expressinease/blob/main/backend/db.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_app,node_feed,node_category,node_header toneBlue
class node_authmodal,node_authcontext,node_auth toneAmber
class node_postcard,node_compose,node_reportmodal toneMint
class node_adminpanel toneRose
class node_api,node_server,node_database,node_visitor toneIndigo
```

## Components

### Public Experience

- [App Orchestrator](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Post Feed](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/PostFeed.jsx): `frontend/src/components/PostFeed.jsx`
- [Category Filter](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/CategoryFilter.jsx): `frontend/src/components/CategoryFilter.jsx`
- [Header and Stats](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/Header.jsx): `frontend/src/components/Header.jsx`

### Identity

- [Login and Register](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/AuthModal.jsx): `frontend/src/components/AuthModal.jsx`
- [Auth Context](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/contexts/AuthContext.jsx): `frontend/src/contexts/AuthContext.jsx`
- [Auth Utilities](https://github.com/reddysreekar/expressinease/blob/main/backend/auth.js): `backend/auth.js`

### Post Engagement

- [Post Card](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/PostCard.jsx): `frontend/src/components/PostCard.jsx`
- [Compose Modal](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/ComposeModal.jsx): `frontend/src/components/ComposeModal.jsx`
- [Report Modal](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/ReportModal.jsx): `frontend/src/components/ReportModal.jsx`

### Admin Moderation

- [Admin Panel](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/components/AdminPanel.jsx): `frontend/src/components/AdminPanel.jsx`

### API and Persistence

- [Frontend API](https://github.com/reddysreekar/expressinease/blob/main/frontend/src/api.js): `frontend/src/api.js`
- [Express API](https://github.com/reddysreekar/expressinease/blob/main/backend/server.js): `backend/server.js`
- [SQLite Database](https://github.com/reddysreekar/expressinease/blob/main/backend/db.js): `backend/db.js`

### Other components

- **Visitor**

## Connections

- Visitor → App Orchestrator: uses
- App Orchestrator → Post Feed: renders
- App Orchestrator → Category Filter: renders
- App Orchestrator → Header and Stats: renders
- App Orchestrator → Login and Register: opens
- App Orchestrator → Compose Modal: opens
- App Orchestrator → Report Modal: opens
- App Orchestrator → Admin Panel: opens
- App Orchestrator → Frontend API: fetches posts and stats
- App Orchestrator → Frontend API: deletes posts
- Login and Register → Auth Context: calls login or register
- Auth Context → Frontend API: authenticates
- Post Feed → Post Card: renders
- Post Card → Frontend API: submits reactions
- Admin Panel → Frontend API: requests admin data
- Compose Modal → Frontend API: creates posts
- Report Modal → Frontend API: submits reports
- Frontend API → Express API: sends API requests
- Express API → SQLite Database: reads and writes
- Express API → Auth Utilities: uses token and password utilities
