# lenny-t/reflecta_backend architecture

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

- Interactive diagram: https://gitdiagram.com/lenny-t/reflecta_backend
- Repository: https://github.com/lenny-t/reflecta_backend

## Overview

Reflecta+ is a Laravel API backend for account access, topic-based posts and feeds, conversations/chat, and personal journaling. The principal evidenced workflow is an authenticated user requesting a post feed: the posts controller delegates retrieval to its repository, which ranks posts using topic preferences and interaction history. Account, journal, and chat/conversation domains are also represented from the repository tree; their detailed wiring was not sampled, so those links are intentionally limited. The README gives little feature detail, and no AI-backed runtime call is evidenced.

Main entry points: [`app/Repositories/PostsRepository.php`](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/PostsRepository.php) (Posts repository), [`routes/api.php`](https://github.com/lenny-t/reflecta_backend/blob/main/routes/api.php) (API routes), [`app/Http/Controllers/UserController.php`](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/UserController.php) (User controller), [`app/Repositories/UserRepository.php`](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/UserRepository.php) (User repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Accounts and API"]
  node_routes["API routes<br/>[api.php]"]
  node_user_controller["User controller<br/>[UserController.php]"]
  node_user_repo["User repository<br/>[UserRepository.php]"]
  node_user_store[("User records<br/>[User.php]")]
end

subgraph group_posts["Posts and discovery"]
  node_posts_controller["Posts controller"]
  node_posts_repo["Posts repository"]
  node_posts_store[("Post records<br/>[Posts.php]")]
  node_topics_store[("Topics and links<br/>[Topics.php]")]
  node_interaction_store[("Post interactions")]
  node_preferences_store[("Topic preferences")]
  node_topic_links[("Post topic links<br/>[PostTopics.php]")]
end

subgraph group_messages["Chat and conversations"]
  node_chat_controller["Chat controller<br/>[ChatController.php]"]
  node_chat_repo["Chat repository<br/>[ChatRepository.php]"]
  node_conversation_controller["Conversation controller"]
  node_conversation_repo["Conversation repository"]
  node_conversation_store[("Conversation records<br/>[Conversation.php]")]
  node_message_store[("Message records<br/>[Message.php]")]
end

subgraph group_journals["Journaling"]
  node_journal_controller["Journal controller"]
  node_journal_repo["Journal repository"]
  node_journal_store[("Journal records<br/>[Journal.php]")]
end

node_user(("API client"))
node_database[("SQL database")]

node_user -->|"sends requests"| node_routes
node_routes -->|"dispatches"| node_user_controller
node_user_controller -->|"delegates"| node_user_repo
node_user_repo -->|"accesses users"| node_user_store
node_posts_controller -->|"delegates"| node_posts_repo
node_posts_repo -->|"queries posts"| node_posts_store
node_posts_repo -->|"queries topics"| node_topics_store
node_posts_repo -->|"tracks interactions"| node_interaction_store
node_posts_repo -->|"scores preferences"| node_preferences_store
node_posts_repo -->|"queries post topics"| node_topic_links
node_chat_controller -->|"delegates"| node_chat_repo
node_conversation_controller -->|"delegates"| node_conversation_repo
node_conversation_repo -->|"accesses conversations"| node_conversation_store
node_chat_repo -->|"accesses messages"| node_message_store
node_journal_controller -->|"delegates"| node_journal_repo
node_journal_repo -->|"accesses entries"| node_journal_store
node_posts_repo -->|"queries and writes"| node_database

click node_routes "https://github.com/lenny-t/reflecta_backend/blob/main/routes/api.php"
click node_user_controller "https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/UserController.php"
click node_user_repo "https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/UserRepository.php"
click node_user_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/User.php"
click node_posts_controller "https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/PostsController.php"
click node_posts_repo "https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/PostsRepository.php"
click node_posts_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Posts.php"
click node_topics_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Topics.php"
click node_interaction_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/PostInteraction.php"
click node_preferences_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/UserTopicPreferences.php"
click node_topic_links "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/PostTopics.php"
click node_chat_controller "https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/ChatController.php"
click node_chat_repo "https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/ChatRepository.php"
click node_conversation_controller "https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/ConversationController.php"
click node_conversation_repo "https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/ConversationRepository.php"
click node_conversation_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Conversation.php"
click node_message_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Message.php"
click node_journal_controller "https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/JournalController.php"
click node_journal_repo "https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/JournalRepository.php"
click node_journal_store "https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Journal.php"

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_routes,node_user_controller,node_user_repo,node_user_store,node_user toneBlue
class node_posts_controller,node_posts_repo,node_posts_store,node_topics_store,node_interaction_store,node_preferences_store,node_topic_links,node_database toneAmber
class node_chat_controller,node_chat_repo,node_conversation_controller,node_conversation_repo,node_conversation_store,node_message_store toneMint
class node_journal_controller,node_journal_repo,node_journal_store toneRose
```

## Components

### Accounts and API

- [API routes](https://github.com/lenny-t/reflecta_backend/blob/main/routes/api.php): `routes/api.php`
- [User controller](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/UserController.php): `app/Http/Controllers/UserController.php`
- [User repository](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/UserRepository.php): `app/Repositories/UserRepository.php`
- [User records](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/User.php): `app/Models/User.php`

### Posts and discovery

- [Posts controller](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/PostsController.php): `app/Http/Controllers/PostsController.php`
- [Posts repository](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/PostsRepository.php): `app/Repositories/PostsRepository.php`
- [Post records](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Posts.php): `app/Models/Posts.php`
- [Topics and links](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Topics.php): `app/Models/Topics.php`
- [Post interactions](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/PostInteraction.php): `app/Models/PostInteraction.php`
- [Topic preferences](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/UserTopicPreferences.php): `app/Models/UserTopicPreferences.php`
- [Post topic links](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/PostTopics.php): `app/Models/PostTopics.php`

### Chat and conversations

- [Chat controller](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/ChatController.php): `app/Http/Controllers/ChatController.php`
- [Chat repository](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/ChatRepository.php): `app/Repositories/ChatRepository.php`
- [Conversation controller](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/ConversationController.php): `app/Http/Controllers/ConversationController.php`
- [Conversation repository](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/ConversationRepository.php): `app/Repositories/ConversationRepository.php`
- [Conversation records](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Conversation.php): `app/Models/Conversation.php`
- [Message records](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Message.php): `app/Models/Message.php`

### Journaling

- [Journal controller](https://github.com/lenny-t/reflecta_backend/blob/main/app/Http/Controllers/JournalController.php): `app/Http/Controllers/JournalController.php`
- [Journal repository](https://github.com/lenny-t/reflecta_backend/blob/main/app/Repositories/JournalRepository.php): `app/Repositories/JournalRepository.php`
- [Journal records](https://github.com/lenny-t/reflecta_backend/blob/main/app/Models/Journal.php): `app/Models/Journal.php`

### Other components

- **API client**
- **SQL database**

## Connections

- API client → API routes: sends requests
- API routes → User controller: dispatches
- User controller → User repository: delegates
- User repository → User records: accesses users
- Posts controller → Posts repository: delegates
- Posts repository → Post records: queries posts
- Posts repository → Topics and links: queries topics
- Posts repository → Post interactions: tracks interactions
- Posts repository → Topic preferences: scores preferences
- Posts repository → Post topic links: queries post topics
- Chat controller → Chat repository: delegates
- Conversation controller → Conversation repository: delegates
- Conversation repository → Conversation records: accesses conversations
- Chat repository → Message records: accesses messages
- Journal controller → Journal repository: delegates
- Journal repository → Journal records: accesses entries
- Posts repository → SQL database: queries and writes
