Skip to content

spring-team14/simple-sns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

151 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“° simple-sns


πŸ“š Project Overview

Spring Boot와 JPAλ₯Ό ν™œμš©ν•˜μ—¬ κ°„λ‹¨ν•œ SNS κΈ°λŠ₯을 κ΅¬ν˜„ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.

  • λͺ©μ :
    • λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ 섀계λ₯Ό 톡해 전체 ꡬ쑰λ₯Ό μ§„ν–‰ν•  수 μžˆλ‹€.
    • JPAλ₯Ό μ΄μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ—°λ™ν•˜κ³ , CRUD μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.
    • μ‚¬μš©μž 인증과 μΈκ°€μ˜ κΈ°λ³Έ 원리와 차이점을 μ΄ν•΄ν•˜κ³  μ§„ν–‰ν•  수 μžˆλ‹€.
    • κΈ°λŠ₯에 λ§žλŠ” REST API 섀계λ₯Ό ν•˜κ³ , Spring Bootλ₯Ό μ΄μš©ν•˜μ—¬ REST APIλ₯Ό κ΅¬ν˜„ν•  수 μžˆλ‹€.
    • Git을 μ‚¬μš©ν•˜μ—¬ μ†ŒμŠ€ μ½”λ“œ 버전 관리λ₯Ό ν•˜κ³ , Git branchλ₯Ό μ΄μš©ν•˜μ—¬ 브랜치 관리 및 μ›ν™”ν•œ ν˜‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.
    • Pull Request와 μ½”λ“œ 리뷰 과정에 λŒ€ν•΄ μ΄ν•΄ν•˜κ³  μ μš©ν•  수 μžˆλ‹€.

πŸ“ Table of Contents

  1. Project Structure
  2. ERD
  3. API Documentation
  4. Wireframe
  5. Features
  6. Tech Stack
  7. Contact

πŸ›  Project Structure

src
└── main
    β”œβ”€β”€ java
    β”‚   └── com
    β”‚       └── example
    β”‚           └── simplens
    β”‚               β”œβ”€β”€ common
    β”‚               β”‚   β”œβ”€β”€ config
    β”‚               β”‚   β”œβ”€β”€ consts
    β”‚               β”‚   β”œβ”€β”€ dto
    β”‚               β”‚   └── filter
    β”‚               β”œβ”€β”€ domain
    β”‚               β”‚   β”œβ”€β”€ comment
    β”‚               β”‚   β”œβ”€β”€ friend
    β”‚               β”‚   β”œβ”€β”€ post
    β”‚               β”‚   └── user
    β”‚               └── exception
    β”‚                   β”œβ”€β”€ code
    β”‚                   β”œβ”€β”€ custom
    β”‚                   β”œβ”€β”€ dto
    β”‚                   └── handler
    β”œβ”€β”€ resources
    β”‚   └── application.properties
    └── SimpleSnsApplication.java

build.gradle  
README.md

πŸ–‡οΈ ERD

Image


πŸ“ API Documentation

πŸ”— API λͺ…μ„Έμ„œ λ°”λ‘œκ°€κΈ°


πŸ–ΌοΈ Wireframe

Image

Image

Image

Image

Image

Image

Image

Image


✨ Features

1. ν”„λ‘œν•„ 관리

  • ν”„λ‘œν•„ 쑰회 κΈ°λŠ₯
    • λ‹€λ₯Έ μ‚¬μš©μžμ˜ ν”„λ‘œν•„μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 쑰회 μ‹œ λ―Όκ°ν•œ 정보(password)λŠ” ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    • νšŒμ› λͺ©λ‘μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. (Pagination)
  • ν”„λ‘œν•„ μˆ˜μ • κΈ°λŠ₯
    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μžκ°€ 본인의 ν”„λ‘œν•„μ„ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΉ„λ°€λ²ˆν˜Έ μˆ˜μ • κΈ°λŠ₯
    • λ‘œκ·ΈμΈν•œ μ‚¬μš©μž 본인의 λΉ„λ°€λ²ˆν˜Έλ§Œ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • λΉ„λ°€λ²ˆν˜Έ μˆ˜μ • μ‹œ, 본인 확인을 μœ„ν•΄ ν˜„μž¬ λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜μ—¬ μ˜¬λ°”λ₯Έ κ²½μš°μ—λ§Œ μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • ν˜„μž¬ λΉ„λ°€λ²ˆν˜Έμ™€ λ™μΌν•œ λΉ„λ°€λ²ˆν˜Έλ‘œλŠ” λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

2. λ‰΄μŠ€ν”Όλ“œ κ²Œμ‹œλ¬Ό 관리

  • κ²Œμ‹œλ¬Ό μž‘μ„±, 쑰회, μˆ˜μ •, μ‚­μ œ κΈ°λŠ₯
    • κ²Œμ‹œλ¬Ό μˆ˜μ •, μ‚­μ œλŠ” μž‘μ„±μž 본인만 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ‰΄μŠ€ν”Όλ“œ λͺ©λ‘ 쑰회 κΈ°λŠ₯
    • κΈ°λ³Έ 정렬은 μƒμ„±μΌμž κΈ°μ€€μœΌλ‘œ λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬ν•©λ‹ˆλ‹€.
    • 10κ°œμ”© νŽ˜μ΄μ§€λ„€μ΄μ…˜ν•˜μ—¬, 각 νŽ˜μ΄μ§€ λ‹Ή λ‰΄μŠ€ν”Όλ“œ 데이터가 10κ°œμ”© λ‚˜μ˜€κ²Œ ν•©λ‹ˆλ‹€.

3. μ‚¬μš©μž 인증

  • νšŒμ›κ°€μž… κΈ°λŠ₯
    • μ‚¬μš©μž 아이디
      • μ‚¬μš©μž μ•„μ΄λ””λŠ” 이메일 ν˜•μ‹μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.
      • 이메일이 μ€‘λ³΅λ˜λ©΄ κ°€μž…ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
    • λΉ„λ°€λ²ˆν˜Έ
      • Bcrypt둜 μΈμ½”λ”©ν•©λ‹ˆλ‹€.
      • λΉ„λ°€λ²ˆν˜ΈλŠ” μ΅œμ†Œ 5κΈ€μž 이상, 15κΈ€μž μ΄ν•˜μž…λ‹ˆλ‹€.
  • νšŒμ›νƒˆν‡΄ κΈ°λŠ₯
    • νƒˆν‡΄ 처리 μ‹œ λΉ„λ°€λ²ˆν˜Έλ₯Ό ν™•μΈν•œ ν›„ μΌμΉ˜ν•  λ•Œ νƒˆν‡΄ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
    • νƒˆν‡΄ν•œ μ‚¬μš©μžμ˜ μ•„μ΄λ””λŠ” μž¬μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
    • νšŒμ› νƒˆν‡΄μ‹œ μœ μ € λ°μ΄ν„°λŠ” λ…Όλ¦¬μ‚­μ œ(Soft Delete)λ₯Ό μ μš©ν•©λ‹ˆλ‹€.
  • 둜그인/λ‘œκ·Έμ•„μ›ƒ κΈ°λŠ₯
    • μ‚¬μš©μž 이메일과 λΉ„λ°€λ²ˆν˜Έλ‘œ λ‘œκ·ΈμΈν•©λ‹ˆλ‹€.

4. 친ꡬ 관리

  • 친ꡬ μš”μ²­/μ‚­μ œ κΈ°λŠ₯
    • νŠΉμ • μ‚¬μš©μžλ₯Ό 친ꡬ둜 μš”μ²­/μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 친ꡬ λͺ©λ‘ 쑰회 κΈ°λŠ₯
    • 친ꡬ μš”μ²­μ„ 받은 μ‚¬μš©μžκ°€ 친ꡬ μš”μ²­ λͺ©λ‘μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 친ꡬ μš”μ²­μ„ μˆ˜λ½ν•˜λ©΄, 친ꡬ λͺ©λ‘ μ‘°νšŒμ— μΉœκ΅¬κ°€ 된 μ‚¬μš©μžλ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 친ꡬ λ‰΄μŠ€ν”Όλ“œ κ²Œμ‹œλ¬Ό 쑰회 κΈ°λŠ₯
    • 친ꡬ의 μ΅œμ‹  κ²Œμ‹œλ¬Όλ“€μ„ μ΅œμ‹ μˆœμœΌλ‘œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. (Pagination)

5. λŒ“κΈ€

  • λŒ“κΈ€ μž‘μ„±, 쑰회, μˆ˜μ •, μ‚­μ œ κΈ°λŠ₯
    • μ‚¬μš©μžλŠ” κ²Œμ‹œλ¬Όμ— λŒ“κΈ€μ„ μž‘μ„±ν•  수 있고, 본인의 λŒ“κΈ€μ€ μˆ˜μ • 및 μ‚­μ œλ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λŒ“κΈ€ λͺ©λ‘ 쑰회 κΈ°λŠ₯
    • νŠΉμ • κ²Œμ‹œλ¬Όμ— 달린 λŒ“κΈ€ λͺ©λ‘μ„ μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. (Pagination)

6. μ’‹μ•„μš”

  • κ²Œμ‹œλ¬Ό 및 λŒ“κΈ€ μ’‹μ•„μš” / μ’‹μ•„μš” μ·¨μ†Œ κΈ°λŠ₯
    • μ‚¬μš©μžκ°€ κ²Œμ‹œλ¬Όμ΄λ‚˜ λŒ“κΈ€μ— μ’‹μ•„μš”λ₯Ό λ‚¨κΈ°κ±°λ‚˜ μ·¨μ†Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • 본인이 μž‘μ„±ν•œ κ²Œμ‹œλ¬Όκ³Ό λŒ“κΈ€μ— μ’‹μ•„μš”λ₯Ό 남길 수 μ—†μŠ΅λ‹ˆλ‹€.
    • 같은 κ²Œμ‹œλ¬Όμ—λŠ” μ‚¬μš©μžλ‹Ή ν•œ 번만 μ’‹μ•„μš”κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.

πŸ§‘β€πŸ’» Tech Stack

  • Language: Java
  • Framework: Spring Boot
  • Database: MySQL
  • ORM: JPA
  • Version Control: GitHub

πŸ“ž Contact

Created by
@daylikezero
@mannaKim
@2024122601
@Park-EJ
@wjdgus2319

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages