Skip to content

Team-DearAI/DearAI-Back

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DearAI-Back

메일 검수 프로그램 백

classDiagram
%% ================== Clients / Gateway ==================
class ChromeExtension {
  <<React.js>>
  +requestData()
  +displayData()
}

%% ================== Backend Core ==================
class WebApplicationServer {
  <<FastAPI>>
  +authWithGoogle()
  +getContacts()
  +createContact()
  +createInput()
  +getResult(inputId)
  +enqueueForAI(inputData)
}

class OAuthServer {
  <<Google OAuth2.0>>
  +authorize()
  +issueTokens()
}

%% ================== Infra / Workers ==================
class MessageQueue {
  <<RabbitMQ>>
  +publish(inputData)
  +consume()
}

class AIAPIWorker {
  <<Worker>>
  +consumeFromQueue()
  +callGPTAPI()
  +storeGeneratedData()
}

%% ================== Persistence Layer ==================
class Database {
  <<MySQL>>
}

%% ---- Domain tables inside Database (from code) ----
class User {
  +id: str
  +email: str
  +refresh_token: str
  +filter_keyword: str?
  +time_created: datetime
  +time_modified: datetime
}

class Recipient_lists {
  +id: str
  +user_id: str
  +email: str
  +recipient_name: str
  +recipient_group: str?
}

class Inputs {
  +id: str
  +recipient_id: str
  +data: dict
}

class Results {
  +id: str
  +input_id: str
}

%% ================== Relationships (Data/Control flow) ==================
%% Client <-> Server
ChromeExtension <--> WebApplicationServer : HTTP/JSON\n데이터 요청/반환

%% Auth
WebApplicationServer --> OAuthServer : 인증 요청
OAuthServer --> WebApplicationServer : 인증 정보 반환\n(토큰/프로필)

%% DB I/O
WebApplicationServer --> Database : 데이터 저장/조회
Database ..> WebApplicationServer : 데이터 반환

%% MQ & Worker
WebApplicationServer --> MessageQueue : 메일 수정/생성 위한 정보 전달
MessageQueue --> AIAPIWorker : 적재 데이터 전달(consume)
AIAPIWorker --> Database : 생성한 데이터 저장
AIAPIWorker ..> WebApplicationServer : (선택) 상태콜백/웹훅

%% Database composition
Database o-- User
Database o-- Recipient_lists
Database o-- Inputs
Database o-- Results

%% Domain relations
User "1" --> "many" Recipient_lists : user_id(FK)
Recipient_lists "1" --> "many" Inputs : recipient_id(FK)
Inputs "1" --> "0..1" Results : input_id(FK)

%% Server uses domain models
WebApplicationServer ..> User : uses
WebApplicationServer ..> Recipient_lists : uses
WebApplicationServer ..> Inputs : uses
WebApplicationServer ..> Results : uses
Loading

About

메일 검수 프로그램 백

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published