# joshithapriya/recallcode architecture

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

- Interactive diagram: https://gitdiagram.com/joshithapriya/recallcode
- Repository: https://github.com/joshithapriya/recallcode

## Overview

RecallCode is a coding-practice learning platform: users record problem attempts, receive AI-assisted problem/concept analysis, build per-concept mastery, and get recommendations and revision scheduling. The map highlights those runtime stages and the persistence layer. The source excerpts establish several service and controller calls; other listed capabilities are represented where their paths are evident, but their internal connections are omitted when unsampled.

Main entry points: [`recallcode/src/main/java/com/recallcode/repository`](https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/repository) (Data repositories), [`recallcode/src/main/java/com/recallcode/controller/AttemptController.java`](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/AttemptController.java) (Attempt API), [`recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java`](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java) (Problem analysis), [`recallcode/src/main/java/com/recallcode/service/RecommendationService.java`](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/RecommendationService.java) (Recommendation engine)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User workflows"]
  node_attempt_api["Attempt API"]
  node_recommend_api["Recommendation API"]
  node_problem_intel_api["Intelligence API"]
  node_user_api["User API"]
  node_user_service["Account service<br/>[UserService.java]"]
end

subgraph group_intelligence["Problem intelligence"]
  node_problem_intel["Problem analysis"]
  node_concept_catalog["DSA concept catalog<br/>[DsaConcept.java]"]
  node_metadata["Platform metadata"]
end

subgraph group_learning["Learning and revision"]
  node_attempt_record["Attempt records<br/>[Attempt.java]"]
  node_mastery["Concept mastery"]
  node_recommendations["Recommendation engine"]
  node_revision["Revision scheduling"]
  node_assessment["AI assessment"]
end

subgraph group_storage["Persistence"]
  node_entities["Learning entities"]
  node_repositories["Data repositories"]
  node_database[("Application database")]
end

node_learner(("Learner"))
node_ai_model{{"AI model service"}}

node_learner -->|"records attempt"| node_attempt_api
node_attempt_api -->|"loads and saves"| node_repositories
node_attempt_api -->|"resolves account"| node_user_service
node_attempt_api -->|"queues analysis"| node_assessment
node_learner -.->|"requests guidance"| node_recommend_api
node_recommend_api -->|"requests recommendations"| node_recommendations
node_recommendations -->|"reads learning history"| node_repositories
node_recommendations -->|"delegates priorities"| node_revision
node_learner -.->|"requests analysis"| node_problem_intel_api
node_problem_intel_api -->|"requests analysis"| node_problem_intel
node_problem_intel -->|"loads and stores analysis"| node_repositories
node_problem_intel -->|"requests analysis"| node_ai_model
node_problem_intel -->|"matches concepts"| node_concept_catalog
node_learner -.->|"manages account"| node_user_api
node_user_api -->|"registers or resolves"| node_user_service
node_user_service -->|"reads and saves users"| node_repositories
node_metadata -.->|"updates problem data"| node_repositories
node_assessment -->|"loads attempts"| node_repositories
node_mastery -->|"updates mastery"| node_repositories
node_repositories -.->|"persists entities"| node_database
node_repositories -.->|"maps records"| node_entities
node_attempt_record -.->|"models attempt data"| node_entities

click node_attempt_api "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/AttemptController.java"
click node_recommend_api "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/RecommendationController.java"
click node_problem_intel_api "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/ProblemIntelligenceController.java"
click node_user_api "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/UserController.java"
click node_problem_intel "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java"
click node_concept_catalog "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/model/DsaConcept.java"
click node_metadata "https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/service"
click node_attempt_record "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/model/Attempt.java"
click node_mastery "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/BayesianKnowledgeTracingService.java"
click node_recommendations "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/RecommendationService.java"
click node_revision "https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/service"
click node_assessment "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/AgentAssessmentService.java"
click node_user_service "https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/UserService.java"
click node_entities "https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/model"
click node_repositories "https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/repository"

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_attempt_api,node_recommend_api,node_problem_intel_api,node_user_api,node_user_service toneBlue
class node_problem_intel,node_concept_catalog,node_metadata toneAmber
class node_attempt_record,node_mastery,node_recommendations,node_revision,node_assessment toneMint
class node_entities,node_repositories,node_database toneRose
class node_learner,node_ai_model toneIndigo
```

## Components

### User workflows

- [Attempt API](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/AttemptController.java): `recallcode/src/main/java/com/recallcode/controller/AttemptController.java`
- [Recommendation API](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/RecommendationController.java): `recallcode/src/main/java/com/recallcode/controller/RecommendationController.java`
- [Intelligence API](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/ProblemIntelligenceController.java): `recallcode/src/main/java/com/recallcode/controller/ProblemIntelligenceController.java`
- [User API](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/controller/UserController.java): `recallcode/src/main/java/com/recallcode/controller/UserController.java`
- [Account service](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/UserService.java): `recallcode/src/main/java/com/recallcode/service/UserService.java`

### Problem intelligence

- [Problem analysis](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java): `recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java`
- [DSA concept catalog](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/model/DsaConcept.java): `recallcode/src/main/java/com/recallcode/model/DsaConcept.java`
- [Platform metadata](https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/service): `recallcode/src/main/java/com/recallcode/service`

### Learning and revision

- [Attempt records](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/model/Attempt.java): `recallcode/src/main/java/com/recallcode/model/Attempt.java`
- [Concept mastery](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/BayesianKnowledgeTracingService.java): `recallcode/src/main/java/com/recallcode/service/BayesianKnowledgeTracingService.java`
- [Recommendation engine](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/RecommendationService.java): `recallcode/src/main/java/com/recallcode/service/RecommendationService.java`
- [Revision scheduling](https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/service): `recallcode/src/main/java/com/recallcode/service`
- [AI assessment](https://github.com/joshithapriya/recallcode/blob/master/recallcode/src/main/java/com/recallcode/service/AgentAssessmentService.java): `recallcode/src/main/java/com/recallcode/service/AgentAssessmentService.java`

### Persistence

- [Learning entities](https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/model): `recallcode/src/main/java/com/recallcode/model`
- [Data repositories](https://github.com/joshithapriya/recallcode/tree/master/recallcode/src/main/java/com/recallcode/repository): `recallcode/src/main/java/com/recallcode/repository`
- **Application database**

### Other components

- **Learner**
- **AI model service**

## Connections

- Learner → Attempt API: records attempt (evidence: `recallcode/src/main/java/com/recallcode/controller/AttemptController.java`)
- Attempt API → Data repositories: loads and saves (evidence: `recallcode/src/main/java/com/recallcode/controller/AttemptController.java`)
- Attempt API → Account service: resolves account (evidence: `recallcode/src/main/java/com/recallcode/controller/AttemptController.java`)
- Attempt API → AI assessment: queues analysis (evidence: `recallcode/src/main/java/com/recallcode/controller/AttemptController.java`)
- Learner → Recommendation API: requests guidance
- Recommendation API → Recommendation engine: requests recommendations (evidence: `recallcode/src/main/java/com/recallcode/controller/RecommendationController.java`)
- Recommendation engine → Data repositories: reads learning history (evidence: `recallcode/src/main/java/com/recallcode/service/RecommendationService.java`)
- Recommendation engine → Revision scheduling: delegates priorities (evidence: `recallcode/src/main/java/com/recallcode/service/RecommendationService.java`)
- Learner → Intelligence API: requests analysis
- Intelligence API → Problem analysis: requests analysis (evidence: `recallcode/src/main/java/com/recallcode/controller/ProblemIntelligenceController.java`)
- Problem analysis → Data repositories: loads and stores analysis (evidence: `recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java`)
- Problem analysis → AI model service: requests analysis (evidence: `recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java`)
- Problem analysis → DSA concept catalog: matches concepts (evidence: `recallcode/src/main/java/com/recallcode/service/ProblemIntelligenceService.java`)
- Learner → User API: manages account
- User API → Account service: registers or resolves (evidence: `recallcode/src/main/java/com/recallcode/controller/UserController.java`)
- Account service → Data repositories: reads and saves users (evidence: `recallcode/src/main/java/com/recallcode/service/UserService.java`)
- Platform metadata → Data repositories: updates problem data (evidence: `recallcode/src/main/java/com/recallcode/service/RecommendationService.java`)
- AI assessment → Data repositories: loads attempts (evidence: `recallcode/src/main/java/com/recallcode/service/AgentAssessmentService.java`)
- Concept mastery → Data repositories: updates mastery (evidence: `recallcode/src/main/java/com/recallcode/service/BayesianKnowledgeTracingService.java`)
- Data repositories → Application database: persists entities
- Data repositories → Learning entities: maps records (evidence: `recallcode/src/main/java/com/recallcode/repository/AttemptRepository.java`)
- Attempt records → Learning entities: models attempt data (evidence: `recallcode/src/main/java/com/recallcode/model/Attempt.java`)
