
π GitHub νλ‘νμ λκΈ κΈ°λ₯μ μΆκ°νλ νμ μ μΈ λꡬ
π λͺ©μ°¨
π μκ°
GitHub Profile Commentsλ GitHub νλ‘νμ λμ μΈ μν΅ κΈ°λ₯μ μΆκ°νλ λꡬμ
λλ€.
μλ λ°©μ
sequenceDiagram
participant User as μ¬μ©μ
participant GitHub as GitHub OAuth
participant Service as λκΈ μλΉμ€
participant DB as λ°μ΄ν°λ² μ΄μ€
User->>GitHub: OAuth λ‘κ·ΈμΈ
GitHub->>Service: μ¬μ©μ μ 보
Service->>DB: μ¬μ©μ μ μ₯
Service->>User: λ‘κ·ΈμΈ μ±κ³΅
User->>Service: λκΈ μμ±
Service->>DB: λκΈ μ μ₯
β¨ κΈ°λ₯
ν΅μ¬ κΈ°λ₯
- π¬ μ€μκ° λκΈ
- π μ’μμ/μ«μ΄μ
- π¨ 컀μ€ν
ν
λ§
- π GitHub OAuth μΈμ¦
μ¬μ©μ κΈ°λ₯
κΈ°λ₯ |
μ€λͺ
|
κΆν |
λκΈ μμ± |
νλ‘νμ λκΈ λ¨κΈ°κΈ° |
λ‘κ·ΈμΈ νμ |
μ’μμ |
λκΈμ μ’μμ νμ |
λ‘κ·ΈμΈ νμ |
π μμνκΈ°
1. νμκ°μ
# 1. μΈμ¦ νμ΄μ§ λ°©λ¬Έ
https://github-comment.injun.dev/api/auth/login
# 2. GitHub OAuth λ‘κ·ΈμΈ μ§ν
# 3. μ±κ³΅ μλ΅ νμΈ
{"github_id":123456789,"message":"Logged in successfully"}
2. νλ‘ν μ€μ
# README.mdμ μΆκ°
[](https://github-comment.injun.dev/$κΉνλΈμμ΄λ)
μ€μΉ νμΈ
- νλ‘ν νμ΄μ§ μλ‘κ³ μΉ¨
- λκΈ μμ ― νμ νμΈ
- ν
λ§ μ μ© νμΈ
π¨ ν
λ§
μ¬μ© κ°λ₯ν ν
λ§
ν
λ§ |
μ€λͺ
|
μμ |
black |
λ€ν¬ λͺ¨λ |
 |
white |
λΌμ΄νΈ λͺ¨λ |
 |
transparent |
ν¬λͺ
λ°°κ²½ |
 |
π οΈ κΈ°μ μ€ν
νλ‘ νΈμλ
UI:
- HTML5
- CSS3
- JavaScript (ES6+)
κΈ°λ₯:
- λ°μν λμμΈ
- SVG λ λλ§
λ°±μλ
μλ²:
- Go
- Gin Framework
- GORM ORM
λ°μ΄ν°λ² μ΄μ€:
- MySQL
μΈμ¦:
- GitHub OAuth
- JWT
λ°°ν¬
μΈνλΌ:
- Docker
- injunweb (https://injunweb.com)
π μν€ν
μ²
λ°μ΄ν°λ² μ΄μ€ ꡬ쑰
erDiagram
GITHUBUSER {
uint ID PK
float64 GitHubID
string GitHubLogin
}
COMMENT {
uint ID PK
uint ReceiverID FK
uint AuthorID FK
string Content
bool IsOwnerLiked
}
LIKED {
uint ID PK
uint CommentID FK
uint UserID FK
}
DISLIKED {
uint ID PK
uint CommentID FK
uint UserID FK
}
GITHUBUSER ||--o{ COMMENT : "writes/receives"
GITHUBUSER ||--o{ LIKED : "likes"
GITHUBUSER ||--o{ DISLIKED : "dislikes"
COMMENT ||--o{ LIKED : "has"
COMMENT ||--o{ DISLIKED : "has"