Skip to content

hyogshin/homiedummy-server

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ ๋ฐฑ์—”๋“œ ๐Ÿš€

์ด ์ €์žฅ์†Œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์˜ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ๋ฐ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Node.js์™€ MariaDB๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ๋Šฅ โœจ

  • ๐Ÿ“ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๋Œ“๊ธ€์— ๋Œ€ํ•œ CRUD ์ž‘์—…์„ ์œ„ํ•œ RESTful API
  • ๐Ÿ”’ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ
  • ๐Ÿ“ค ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ํฌํ•จํ•œ ํ”„๋กœํ•„ ๊ด€๋ฆฌ
  • โš™๏ธ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ์œ„ํ•œ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ
  • ๐Ÿ” ๋ณด์•ˆ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

๊ธฐ์ˆ  ์Šคํƒ ๐Ÿ› ๏ธ

  • Node.js Node.js: ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋Ÿฐํƒ€์ž„
  • Express Express: ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • MariaDB MariaDB: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • bcrypt bcrypt: ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ
  • Multer Multer: ํŒŒ์ผ ์—…๋กœ๋“œ

์„ค์น˜ ๋ฐฉ๋ฒ• ๐Ÿ–ฅ๏ธ

  1. ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค:

    git clone https://github.com/100-hours-a-week/2-hayden-shin-community-be.git
    cd backend
  2. ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

    npm install
  3. ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

    DB_HOST=localhost
    DB_USER=root
    DB_PASSWORD=yourpassword
    DB_DATABASE=community
    SESSION_SECRET=yoursecret
    
  4. ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

    npm start

ํŒŒ์ผ ๊ตฌ์กฐ ๐Ÿ“‚

โ”œโ”€โ”€ controller/
โ”‚   โ”œโ”€โ”€ post.js
โ”‚   โ”œโ”€โ”€ comment.js
โ”‚   โ”œโ”€โ”€ auth.js
โ”œโ”€โ”€ model/
โ”‚   โ”œโ”€โ”€ post.js
โ”‚   โ”œโ”€โ”€ comment.js
โ”‚   โ”œโ”€โ”€ auth.js
โ”œโ”€โ”€ router/
โ”‚   โ”œโ”€โ”€ post.js
โ”‚   โ”œโ”€โ”€ comment.js
โ”‚   โ”œโ”€โ”€ auth.js
โ”œโ”€โ”€ db/
โ”‚   โ””โ”€โ”€ database.js

API ์—”๋“œํฌ์ธํŠธ ๐ŸŒ

์ธ์ฆ(Authentication) ๐Ÿ”‘

  • POST /auth/signup: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž ์ƒ์„ฑ
  • POST /auth/login: ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ
  • POST /auth/logout: ํ˜„์žฌ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์•„์›ƒ

๊ฒŒ์‹œ๋ฌผ(Posts) ๐Ÿ“

  • GET /posts: ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ
  • GET /posts/:post_id: ํŠน์ • ๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ
  • POST /posts: ์ƒˆ ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑ
  • PATCH /posts/:post_id: ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ •
  • DELETE /posts/:post_id: ๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ

๋Œ“๊ธ€(Comments) ๐Ÿ’ฌ

  • GET /posts/:post_id/comments: ํŠน์ • ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชจ๋“  ๋Œ“๊ธ€ ์กฐํšŒ
  • POST /posts/:post_id/comments: ํŠน์ • ๊ฒŒ์‹œ๋ฌผ์— ๋Œ“๊ธ€ ์ถ”๊ฐ€
  • PATCH /comments/:comment_id: ๋Œ“๊ธ€ ์ˆ˜์ •
  • DELETE /comments/:comment_id: ๋Œ“๊ธ€ ์‚ญ์ œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๐Ÿ—„๏ธ

์‚ฌ์šฉ์ž(Users) ๐Ÿ‘ค

  • id, username, email, password, profileImage, createdAt

๊ฒŒ์‹œ๋ฌผ(Posts) ๐Ÿ“

  • id, title, content, image, userId, likeCount, viewCount, commentCount, createdAt, updatedAt

๋Œ“๊ธ€(Comments) ๐Ÿ’ฌ

  • id, postId, content, userId, createdAt, updatedAt

์ข‹์•„์š”(Likes) โค๏ธ

  • id, postId, userId, createdAt

๊ธฐ์—ฌ ๋ฐฉ๋ฒ• ๐Ÿค

  1. ์ €์žฅ์†Œ๋ฅผ ํฌํฌํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

    git checkout -b feature-name
  3. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค:

    git commit -m "feat: add feature"
  4. ๋ธŒ๋žœ์น˜๋ฅผ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค:

    git push origin feature-name
  5. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.


๋ผ์ด์„ ์Šค ๐Ÿ“œ

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

About

๐Ÿง‘โ€๐Ÿ’ป The backend API for the HomieDummy community app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Dockerfile 0.5%