Skip to content

Latest commit

ย 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 

Repository files navigation

Tinder Clone Backend

๐Ÿš€ Node.js + Express ๊ธฐ๋ฐ˜ ๋ฐ์ดํŒ… ์•ฑ ๋ฐฑ์—”๋“œ


๐Ÿ“– ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Tinder ์Šคํƒ€์ผ์˜ ๋งค์นญยท์ฑ„ํŒ…ยท์œ„์น˜ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๊ธฐ๋Šฅ
    • ์‚ฌ์šฉ์ž ์ธ์ฆ (ํšŒ์›๊ฐ€์ž…ยท๋กœ๊ทธ์ธยท์ด๋ฉ”์ผ ์ธ์ฆยทํ† ํฐ ๊ฐฑ์‹ ยท๋กœ๊ทธ์•„์›ƒ)
    • ํ”„๋กœํ•„ ๊ด€๋ฆฌ
    • ๋งค์นญ ๋งค์ปค๋‹ˆ์ฆ˜ - ๋ฏธ๊ตฌํ˜„
    • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… (Socket.io) - ๋ฏธ๊ตฌํ˜„
    • ์œ„์น˜ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ํƒ์ƒ‰ - ๋ฏธ๊ตฌํ˜„

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

  • ๋Ÿฐํƒ€์ž„: Node.js
  • ์›น ํ”„๋ ˆ์ž„์›Œํฌ: Express
  • DB: MongoDB (Mongoose)
  • ์ธ์ฆ: JWT (JSON Web Token)
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ: dotenv

๐Ÿš€ ์„ค์น˜ ๋ฐ ์‹คํ–‰

  1. ์†Œ์Šค ์ฝ”๋“œ ํด๋ก 
   git clone https://github.com/itcksgud/tinder_back.git
   cd tinder_back
  1. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ๊ฐ’์„ ์ฑ„์›Œ์ฃผ์„ธ์š”.
PORT=7078
MONGODB_URI=mongodb://<user>:<pass>@<host>:27017/tinder?authSource=admin
JWT_SECRET=your_jwt_secret
EMAIL_SERVICE_API_KEY=your_email_service_key   # (์ด๋ฉ”์ผ ์ธ์ฆ์šฉ)
  1. ์˜์กด์„ฑ ์„ค์น˜
npm install
  1. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰
npm run dev
  1. ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ & ์‹คํ–‰
npm run build
npm start

โš™๏ธ ์•ฑ ์ดˆ๊ธฐํ™” (Express ์„ค์ • ์˜ˆ์‹œ)

// server.js
require('dotenv').config();
const express = require('express');
const mongoose = require('mongoose');
const authRouter = require('./auth/auth.routes');
const app = express();

// ๋ฏธ๋“ค์›จ์–ด
app.use(express.json());

// ๋ชฝ๊ณ DB ์—ฐ๊ฒฐ
mongoose.connect(process.env.MONGODB_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

// ๋ผ์šฐํŠธ ๋“ฑ๋ก
app.use('/api/auth', authRouter);

// ๊ทธ ์™ธ ๋ผ์šฐํ„ฐ (users, matches, chats ๋“ฑ)
// app.use('/api/users', usersRouter);
// ...

// ์„œ๋ฒ„ ์‹œ์ž‘
const PORT = process.env.PORT || 7078;
app.listen(PORT, () => {
  console.log(`๐Ÿš€ Server running on http://localhost:${PORT}`);
});

๐Ÿ“‘ API ๋ช…์„ธ

1. ์ธ์ฆ(Auth)

Method Endpoint ์„ค๋ช… Auth
POST /api/auth/signup ํšŒ์›๊ฐ€์ž… ๐Ÿšซ
POST /api/auth/verify-code ์ด๋ฉ”์ผ ์ธ์ฆ ์ฝ”๋“œ ํ™•์ธ ๐Ÿšซ
POST /api/auth/resend-verification ์ธ์ฆ ์ฝ”๋“œ ์žฌ์ „์†ก (๋กœ๊ทธ์ธ ํ•„์š”) โœ…
POST /api/auth/login ๋กœ๊ทธ์ธ (์•ก์„ธ์Šค ํ† ํฐยท๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋ฐœ๊ธ‰) ๐Ÿšซ
POST /api/auth/refresh-token ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์œผ๋กœ ์•ก์„ธ์Šค ํ† ํฐ ์žฌ๋ฐœ๊ธ‰ ๐Ÿšซ
POST /api/auth/logout ๋กœ๊ทธ์•„์›ƒ (๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ ๋ฌดํšจํ™”) ๐Ÿšซ
GET /api/auth/me ๋‚ด ์ •๋ณด ์กฐํšŒ โœ…

Auth: ๐Ÿšซ = ๊ณต๊ฐœ, โœ… = ์•ก์„ธ์Šค ํ† ํฐ(required)


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages