# katherine606/pruebafullstack architecture

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

- Interactive diagram: https://gitdiagram.com/katherine606/pruebafullstack
- Repository: https://github.com/katherine606/pruebafullstack

## Overview

PruebaFullStack is a feedback-management web app with a React frontend and an ASP.NET API. Users can log in, browse feedback, create entries, vote, and change feedback status; the API persists users, feedback, and votes through Entity Framework. The sampled code confirms the backend authentication and feedback call chains, and the frontend route mapping. Frontend API-service wiring and database configuration were not sampled, so those connections are omitted.

Main entry points: [`frontend/src/App.tsx`](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/App.tsx) (React app), [`PruebaFullStack/Models/AppDbContext.cs`](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Models/AppDbContext.cs) (EF context), [`PruebaFullStack/Services/FeedbackService.cs`](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/FeedbackService.cs) (Feedback rules), [`PruebaFullStack/Services/AuthService.cs`](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/AuthService.cs) (Credential validation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web frontend"]
  node_app["React app<br/>[App.tsx]"]
  node_loginui["Login screen<br/>[Login.tsx]"]
  node_feedbacklist["Feedback list<br/>[ListaFeedbacks.tsx]"]
  node_feedbackdetail["Feedback detail<br/>[FeedbackDetail.tsx]"]
  node_feedbackcard["Feedback card<br/>[FeedbackCard.tsx]"]
  node_createui["Create feedback"]
  node_frontendapi["API client<br/>[api.ts]"]
  node_loginservice["Login client<br/>[login.ts]"]
  node_feedbackserviceclient["Feedback client<br/>[feedback.ts]"]
end

subgraph group_auth["Authentication"]
  node_authcontroller["Auth endpoint<br/>[AuthController.cs]"]
  node_authservice["Credential validation<br/>[AuthService.cs]"]
  node_authrepo["User lookup<br/>[AuthRepository.cs]"]
end

subgraph group_feedback["Feedback workflows"]
  node_feedbackcontroller["Feedback endpoints"]
  node_feedbackservice["Feedback rules<br/>[FeedbackService.cs]"]
end

subgraph group_persistence["Persistence"]
  node_feedbackrepo["Feedback storage"]
  node_voterepo["Vote storage<br/>[VotoRepository.cs]"]
  node_dbcontext["EF context<br/>[AppDbContext.cs]"]
  node_database[("Application database")]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"routes"| node_loginui
node_app -->|"routes"| node_feedbacklist
node_app -->|"routes"| node_feedbackdetail
node_authcontroller -->|"validates credentials"| node_authservice
node_authservice -->|"looks up user"| node_authrepo
node_authrepo -->|"queries users"| node_dbcontext
node_dbcontext -->|"persists data"| node_database
node_feedbackcontroller -->|"handles requests"| node_feedbackservice
node_feedbackservice -->|"reads and updates"| node_feedbackrepo
node_feedbackservice -->|"checks vote"| node_voterepo
node_feedbackrepo -->|"reads and writes feedback"| node_dbcontext
node_voterepo -->|"reads and writes votes"| node_dbcontext

click node_app "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/App.tsx"
click node_loginui "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/Login.tsx"
click node_feedbacklist "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/ListaFeedbacks.tsx"
click node_feedbackdetail "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/FeedbackDetail.tsx"
click node_feedbackcard "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/FeedbackCard.tsx"
click node_createui "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/ModalCrearFeedback.tsx"
click node_frontendapi "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/api.ts"
click node_loginservice "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/login.ts"
click node_feedbackserviceclient "https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/feedback.ts"
click node_authcontroller "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Controllers/AuthController.cs"
click node_authservice "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/AuthService.cs"
click node_authrepo "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/AuthRepository.cs"
click node_feedbackcontroller "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Controllers/FeedbackController.cs"
click node_feedbackservice "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/FeedbackService.cs"
click node_feedbackrepo "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/FeedbackRepository.cs"
click node_voterepo "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/VotoRepository.cs"
click node_dbcontext "https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Models/AppDbContext.cs"

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_loginui,node_feedbacklist,node_feedbackdetail,node_feedbackcard,node_createui,node_frontendapi,node_loginservice,node_feedbackserviceclient,node_user toneBlue
class node_authcontroller,node_authservice,node_authrepo toneAmber
class node_feedbackcontroller,node_feedbackservice toneMint
class node_feedbackrepo,node_voterepo,node_dbcontext,node_database toneRose
```

## Components

### Web frontend

- [React app](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Login screen](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/Login.tsx): `frontend/src/components/Login.tsx`
- [Feedback list](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/ListaFeedbacks.tsx): `frontend/src/components/ListaFeedbacks.tsx`
- [Feedback detail](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/FeedbackDetail.tsx): `frontend/src/components/FeedbackDetail.tsx`
- [Feedback card](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/FeedbackCard.tsx): `frontend/src/components/FeedbackCard.tsx`
- [Create feedback](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/components/ModalCrearFeedback.tsx): `frontend/src/components/ModalCrearFeedback.tsx`
- [API client](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`
- [Login client](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/login.ts): `frontend/src/services/login.ts`
- [Feedback client](https://github.com/katherine606/pruebafullstack/blob/main/frontend/src/services/feedback.ts): `frontend/src/services/feedback.ts`

### Authentication

- [Auth endpoint](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Controllers/AuthController.cs): `PruebaFullStack/Controllers/AuthController.cs`
- [Credential validation](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/AuthService.cs): `PruebaFullStack/Services/AuthService.cs`
- [User lookup](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/AuthRepository.cs): `PruebaFullStack/Repositories/AuthRepository.cs`

### Feedback workflows

- [Feedback endpoints](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Controllers/FeedbackController.cs): `PruebaFullStack/Controllers/FeedbackController.cs`
- [Feedback rules](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Services/FeedbackService.cs): `PruebaFullStack/Services/FeedbackService.cs`

### Persistence

- [Feedback storage](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/FeedbackRepository.cs): `PruebaFullStack/Repositories/FeedbackRepository.cs`
- [Vote storage](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Repositories/VotoRepository.cs): `PruebaFullStack/Repositories/VotoRepository.cs`
- [EF context](https://github.com/katherine606/pruebafullstack/blob/main/PruebaFullStack/Models/AppDbContext.cs): `PruebaFullStack/Models/AppDbContext.cs`
- **Application database**

### Other components

- **User**

## Connections

- User → React app: uses
- React app → Login screen: routes
- React app → Feedback list: routes
- React app → Feedback detail: routes
- Auth endpoint → Credential validation: validates credentials
- Credential validation → User lookup: looks up user
- User lookup → EF context: queries users
- EF context → Application database: persists data
- Feedback endpoints → Feedback rules: handles requests
- Feedback rules → Feedback storage: reads and updates
- Feedback rules → Vote storage: checks vote
- Feedback storage → EF context: reads and writes feedback
- Vote storage → EF context: reads and writes votes
