# chonim/project-wigo-final-version architecture

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

- Interactive diagram: https://gitdiagram.com/chonim/project-wigo-final-version
- Repository: https://github.com/chonim/project-wigo-final-version

## Overview

This is a Spring MVC community application centered on debate, with member profiles, board posts, video entries, private notes, chat, and keyword-oriented discovery. Users enter through feature controllers, which delegate to services and DAOs; shared account/search endpoints and common persistence support several workflows. Debate additionally uses Mongo-related components, while chat includes a separate socket endpoint. The README is empty, so product scope is inferred from the source tree and sampled interfaces/controllers; unsampled integrations are represented cautiously.

Main entry points: [`project/src/main/java/project/common/dao/AbstractDAO.java`](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/dao/AbstractDAO.java) (SQL access layer), [`project/src/main/java/project/common/controller/CommonController.java`](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/controller/CommonController.java) (Shared endpoints), [`project/src/main/java/project/debate/DebateController.java`](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateController.java) (Debate endpoints), [`project/src/main/java/project/chat/controller/ChatServiceImpl.java`](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatServiceImpl.java) (Chat service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_community["Community features"]
  node_board["Board endpoints"]
  node_boardservice["Board service"]
  node_debate["Debate endpoints"]
  node_debateservice["Debate service"]
  node_video["Video endpoints"]
  node_videoservice["Video service"]
  node_notes["Notes endpoints"]
  node_noteservice["Note service"]
end

subgraph group_accounts["Accounts and shared services"]
  node_members["Member endpoints"]
  node_memberservice["Member service"]
  node_common["Shared endpoints"]
  node_commonservice["Shared service"]
  node_commandmap["Request map<br/>[CommandMap.java]"]
  node_files["File handling<br/>[FileUtils.java]"]
end

subgraph group_discovery["Discovery and chat"]
  node_chat["Chat endpoints"]
  node_chatservice["Chat service"]
  node_socket["Chat socket<br/>[Broadsocket.java]"]
  node_tweets["Tweet lookup<br/>[Tweets.java]"]
  node_relative["Related keywords"]
  node_ranking["Trend and media tools"]
end

subgraph group_persistence["Persistence"]
  node_boarddao["Board DAO<br/>[BoardDAO.java]"]
  node_debatedao["Debate DAO<br/>[DebateDAO.java]"]
  node_mongoreply["Debate replies<br/>[DebateReply.java]"]
  node_mongoconfig["Mongo configuration"]
  node_videodao["Video DAO<br/>[VideoDAO.java]"]
  node_membersdao["Member DAO<br/>[MembersDAO.java]"]
  node_notedao["Note DAO<br/>[NoteDAO.java]"]
  node_commondao["Shared DAO<br/>[CommonDAO.java]"]
  node_abstractdao["SQL access layer<br/>[AbstractDAO.java]"]
  node_sqldb[("SQL database")]
  node_chatdao["Chat DAO<br/>[ChatDAO.java]"]
end

node_user(("Visitor"))

node_user -->|"requests posts"| node_board
node_board -->|"delegates"| node_boardservice
node_boardservice -->|"uses"| node_boarddao
node_boarddao -->|"extends"| node_abstractdao
node_user -->|"requests debate"| node_debate
node_debate -->|"delegates"| node_debateservice
node_debateservice -->|"uses"| node_debatedao
node_debatedao -->|"extends"| node_abstractdao
node_debate -->|"uses replies"| node_mongoreply
node_debate -->|"references config"| node_mongoconfig
node_user -->|"requests videos"| node_video
node_video -->|"delegates"| node_videoservice
node_videoservice -->|"uses"| node_videodao
node_videodao -->|"extends"| node_abstractdao
node_user -->|"manages profile"| node_members
node_members -->|"delegates"| node_memberservice
node_memberservice -->|"uses"| node_membersdao
node_membersdao -->|"extends"| node_abstractdao
node_user -->|"edits notes"| node_notes
node_notes -->|"delegates"| node_noteservice
node_noteservice -->|"uses"| node_notedao
node_notedao -->|"extends"| node_abstractdao
node_user -->|"logs in or searches"| node_common
node_common -->|"delegates"| node_commonservice
node_commonservice -->|"uses"| node_commondao
node_commondao -->|"extends"| node_abstractdao
node_abstractdao -->|"executes queries"| node_sqldb
node_common -->|"fetches tweets"| node_tweets
node_common -->|"gets related terms"| node_relative
node_common -->|"handles downloads"| node_files
node_user -->|"opens chat"| node_chat
node_chat -->|"delegates"| node_chatservice
node_chatservice -->|"uses"| node_chatdao
node_chatdao -->|"extends"| node_abstractdao
node_socket -->|"uses"| node_chatservice

click node_board "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/controller/BoardController.java"
click node_boardservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/service/BoardServiceImpl.java"
click node_boarddao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/dao/BoardDAO.java"
click node_debate "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateController.java"
click node_debateservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateServiceImpl.java"
click node_debatedao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateDAO.java"
click node_mongoreply "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/mongo/DebateReply.java"
click node_mongoconfig "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/mongo/SpringMongoConfig.java"
click node_video "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/controller/VideoController.java"
click node_videoservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/service/VideoServiceImpl.java"
click node_videodao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/dao/VideoDAO.java"
click node_members "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/controller/MembersController.java"
click node_memberservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/service/MembersServiceImpl.java"
click node_membersdao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/dao/MembersDAO.java"
click node_notes "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteController.java"
click node_noteservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteServicempl.java"
click node_notedao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteDAO.java"
click node_common "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/controller/CommonController.java"
click node_commonservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/service/CommonServiceImpl.java"
click node_commondao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/dao/CommonDAO.java"
click node_commandmap "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/common/CommandMap.java"
click node_abstractdao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/dao/AbstractDAO.java"
click node_chat "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatController.java"
click node_chatservice "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatServiceImpl.java"
click node_chatdao "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatDAO.java"
click node_socket "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/Broadsocket.java"
click node_tweets "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/twitter/Tweets.java"
click node_relative "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/common/RelativeKeyword.java"
click node_ranking "https://github.com/chonim/project-wigo-final-version/tree/master/project/src/main/java/project/common/common"
click node_files "https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/util/FileUtils.java"

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_board,node_boardservice,node_debate,node_debateservice,node_video,node_videoservice,node_notes,node_noteservice toneBlue
class node_members,node_memberservice,node_common,node_commonservice,node_commandmap,node_files toneAmber
class node_chat,node_chatservice,node_socket,node_tweets,node_relative,node_ranking toneMint
class node_boarddao,node_debatedao,node_mongoreply,node_mongoconfig,node_videodao,node_membersdao,node_notedao,node_commondao,node_abstractdao,node_sqldb,node_chatdao toneRose
class node_user toneIndigo
```

## Components

### Community features

- [Board endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/controller/BoardController.java): `project/src/main/java/project/board/controller/BoardController.java`
- [Board service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/service/BoardServiceImpl.java): `project/src/main/java/project/board/service/BoardServiceImpl.java`
- [Debate endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateController.java): `project/src/main/java/project/debate/DebateController.java`
- [Debate service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateServiceImpl.java): `project/src/main/java/project/debate/DebateServiceImpl.java`
- [Video endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/controller/VideoController.java): `project/src/main/java/project/video/controller/VideoController.java`
- [Video service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/service/VideoServiceImpl.java): `project/src/main/java/project/video/service/VideoServiceImpl.java`
- [Notes endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteController.java): `project/src/main/java/project/note/NoteController.java`
- [Note service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteServicempl.java): `project/src/main/java/project/note/NoteServicempl.java`

### Accounts and shared services

- [Member endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/controller/MembersController.java): `project/src/main/java/project/members/controller/MembersController.java`
- [Member service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/service/MembersServiceImpl.java): `project/src/main/java/project/members/service/MembersServiceImpl.java`
- [Shared endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/controller/CommonController.java): `project/src/main/java/project/common/controller/CommonController.java`
- [Shared service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/service/CommonServiceImpl.java): `project/src/main/java/project/common/service/CommonServiceImpl.java`
- [Request map](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/common/CommandMap.java): `project/src/main/java/project/common/common/CommandMap.java`
- [File handling](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/util/FileUtils.java): `project/src/main/java/project/common/util/FileUtils.java`

### Discovery and chat

- [Chat endpoints](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatController.java): `project/src/main/java/project/chat/controller/ChatController.java`
- [Chat service](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatServiceImpl.java): `project/src/main/java/project/chat/controller/ChatServiceImpl.java`
- [Chat socket](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/Broadsocket.java): `project/src/main/java/project/chat/Broadsocket.java`
- [Tweet lookup](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/twitter/Tweets.java): `project/src/main/java/project/common/twitter/Tweets.java`
- [Related keywords](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/common/RelativeKeyword.java): `project/src/main/java/project/common/common/RelativeKeyword.java`
- [Trend and media tools](https://github.com/chonim/project-wigo-final-version/tree/master/project/src/main/java/project/common/common): `project/src/main/java/project/common/common`

### Persistence

- [Board DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/board/dao/BoardDAO.java): `project/src/main/java/project/board/dao/BoardDAO.java`
- [Debate DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/debate/DebateDAO.java): `project/src/main/java/project/debate/DebateDAO.java`
- [Debate replies](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/mongo/DebateReply.java): `project/src/main/java/project/mongo/DebateReply.java`
- [Mongo configuration](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/mongo/SpringMongoConfig.java): `project/src/main/java/project/mongo/SpringMongoConfig.java`
- [Video DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/video/dao/VideoDAO.java): `project/src/main/java/project/video/dao/VideoDAO.java`
- [Member DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/members/dao/MembersDAO.java): `project/src/main/java/project/members/dao/MembersDAO.java`
- [Note DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/note/NoteDAO.java): `project/src/main/java/project/note/NoteDAO.java`
- [Shared DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/dao/CommonDAO.java): `project/src/main/java/project/common/dao/CommonDAO.java`
- [SQL access layer](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/common/dao/AbstractDAO.java): `project/src/main/java/project/common/dao/AbstractDAO.java`
- **SQL database**
- [Chat DAO](https://github.com/chonim/project-wigo-final-version/blob/master/project/src/main/java/project/chat/controller/ChatDAO.java): `project/src/main/java/project/chat/controller/ChatDAO.java`

### Other components

- **Visitor**

## Connections

- Visitor → Board endpoints: requests posts (evidence: `project/src/main/java/project/board/controller/BoardController.java`)
- Board endpoints → Board service: delegates (evidence: `project/src/main/java/project/board/controller/BoardController.java`)
- Board service → Board DAO: uses (evidence: `project/src/main/java/project/board/service/BoardServiceImpl.java`)
- Board DAO → SQL access layer: extends (evidence: `project/src/main/java/project/board/dao/BoardDAO.java`)
- Visitor → Debate endpoints: requests debate (evidence: `project/src/main/java/project/debate/DebateController.java`)
- Debate endpoints → Debate service: delegates (evidence: `project/src/main/java/project/debate/DebateController.java`)
- Debate service → Debate DAO: uses (evidence: `project/src/main/java/project/debate/DebateServiceImpl.java`)
- Debate DAO → SQL access layer: extends (evidence: `project/src/main/java/project/debate/DebateDAO.java`)
- Debate endpoints → Debate replies: uses replies (evidence: `project/src/main/java/project/debate/DebateController.java`)
- Debate endpoints → Mongo configuration: references config (evidence: `project/src/main/java/project/debate/DebateController.java`)
- Visitor → Video endpoints: requests videos (evidence: `project/src/main/java/project/video/controller/VideoController.java`)
- Video endpoints → Video service: delegates (evidence: `project/src/main/java/project/video/controller/VideoController.java`)
- Video service → Video DAO: uses (evidence: `project/src/main/java/project/video/service/VideoServiceImpl.java`)
- Video DAO → SQL access layer: extends (evidence: `project/src/main/java/project/video/dao/VideoDAO.java`)
- Visitor → Member endpoints: manages profile (evidence: `project/src/main/java/project/members/controller/MembersController.java`)
- Member endpoints → Member service: delegates (evidence: `project/src/main/java/project/members/controller/MembersController.java`)
- Member service → Member DAO: uses (evidence: `project/src/main/java/project/members/service/MembersServiceImpl.java`)
- Member DAO → SQL access layer: extends (evidence: `project/src/main/java/project/members/dao/MembersDAO.java`)
- Visitor → Notes endpoints: edits notes (evidence: `project/src/main/java/project/note/NoteController.java`)
- Notes endpoints → Note service: delegates (evidence: `project/src/main/java/project/note/NoteController.java`)
- Note service → Note DAO: uses (evidence: `project/src/main/java/project/note/NoteServicempl.java`)
- Note DAO → SQL access layer: extends (evidence: `project/src/main/java/project/note/NoteDAO.java`)
- Visitor → Shared endpoints: logs in or searches (evidence: `project/src/main/java/project/common/controller/CommonController.java`)
- Shared endpoints → Shared service: delegates (evidence: `project/src/main/java/project/common/controller/CommonController.java`)
- Shared service → Shared DAO: uses (evidence: `project/src/main/java/project/common/service/CommonServiceImpl.java`)
- Shared DAO → SQL access layer: extends (evidence: `project/src/main/java/project/common/dao/CommonDAO.java`)
- SQL access layer → SQL database: executes queries (evidence: `project/src/main/java/project/common/dao/AbstractDAO.java`)
- Shared endpoints → Tweet lookup: fetches tweets (evidence: `project/src/main/java/project/common/controller/CommonController.java`)
- Shared endpoints → Related keywords: gets related terms (evidence: `project/src/main/java/project/common/controller/CommonController.java`)
- Shared endpoints → File handling: handles downloads (evidence: `project/src/main/java/project/common/controller/CommonController.java`)
- Visitor → Chat endpoints: opens chat (evidence: `project/src/main/java/project/chat/controller/ChatController.java`)
- Chat endpoints → Chat service: delegates (evidence: `project/src/main/java/project/chat/controller/ChatController.java`)
- Chat service → Chat DAO: uses (evidence: `project/src/main/java/project/chat/controller/ChatServiceImpl.java`)
- Chat DAO → SQL access layer: extends (evidence: `project/src/main/java/project/chat/controller/ChatDAO.java`)
- Chat socket → Chat service: uses (evidence: `project/src/main/java/project/chat/Broadsocket.java`)
