Skip to content
 
 

Latest commit

 

History

154 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

AUCTION

자유롭게 경매로 물건을 거래할 수 있는 플랫폼입니다. 당근마켓과 크림이 하지 못하는 것을 저희는 합니다.


https://htmltest1.s3.ap-northeast-2.amazonaws.com/KakaoTalk_20240725_201234739.png

프로젝트 소개

몰입캠프 우수작 선정 프로젝트


> 개발 기간: 1주
> 개발 인원: 2명

Member

안지형 정우성
@ahnji0520 @NOEL-code

Stack

  • Programming Language: JavaScript
  • Frontend : HTML CSS React
  • Backend : Node.js MongoDB Express
  • Infra : AWS

프로젝트 시작하기

Version

Node.js v22.4.0
npm v10.8.1

Installation

$ git clone https://github.com/NOEL-code/madcamp_4
$ cd madcamp_4

frontend

$ cd frontend
$ npm install
$ npm run start

backend

$ cd backend
$ npm install
$ npm run start

서비스 소개


HOME

KakaoTalk_20240725_194754423.png

  • 슬라이더: 롤렉스를 돌려보세요! 광고 클릭 시 세부페이지로 이동
  • 실시간 랭킹: 최다 관심순, 높은 응찰가순
  • 알람 기능: 낙찰 성공/실패 알람, 응찰 현황 알람, 게임 입장 알람

SHOP

KakaoTalk_20240725_194754423_07.png

  • 검색 / 카테고리 / 인기순 정렬

ADD

KakaoTalk_20240725_194754423_08.png

  • 상품 등록 페이지

MY

KakaoTalk_20240725_194754423_10.png

  • 잔고, 관심상품, 판매내역, 구매내역 확인 가능

LOGIN/REGISTER

KakaoTalk_20240725_201234739.png

  • 로그인 및 회원가입

DETAIL

  • 현황 및 상세 정보 확인 가능, 사진 클릭 시 전체비율로 확인 가능

KakaoTalk_20240725_194754423_11.png

  • 판매자: 낙찰하기 버튼
  • 그 외: 응찰하기 버튼

KakaoTalk_20240725_194754423_17.png

KakaoTalk_20240725_194754423_18.png

게임 페이지

  • 동점자 O: 게임 페이지로 이동

    • 판매자와 동점자들만 게임 페이지 열람 가능
    • 동점자들이 모두 게임을 완료하면 판매자가 낙찰하기를 누르고, 가장 높은 점수를 획득한 사람에게 낙찰됨
  • 동점자 X: 바로 낙찰

  • 낙찰에 실패한 사람들에게는 환불되고, 판매자의 계좌는 낙찰 금액만큼 늘어나며 낙찰자의 경우 낙찰 금액만큼 줄어듦.

KakaoTalk_20240725_194754423_23.png

KakaoTalk_20240725_194754423_22.png

API 명세서 📄

API Method URL Description Request Header Request Body Response Error
Users API POST /api/users/register 사용자 회원가입 - {"userEmail": "string", "userPassword": "string", "name": "string", "phoneNumber": "string"}

| {"accessToken": "string", "refreshToken": "string"} | 400 Bad Request, 500 Internal Server Error | | Users API | POST | /api/users/login | 사용자 로그인 | - | {"userEmail": "string", "userPassword": "string"} | {"accessToken": "string", "refreshToken": "string", "resUser": {"id": "string", "phoneNumber": "string", "name": "string", "balance": "number", "favorites": "array"}} | 401 Unauthorized, 403 Forbidden, 500 Internal Server Error | | Users API | POST | /api/users/logout | 사용자 로그아웃 | Authorization: Bearer | - | {"message": "Logged out successfully"} | 500 Internal Server Error | | Users API | POST | /api/users/refresh-token | 리프레시 토큰으로 새로운 엑세스 토큰 반환 | - | {"refreshToken": "string"} | {"accessToken": "string"} | 401 Unauthorized, 403 Forbidden | | Users API | GET | /api/users/accountBalance/:userId | 사용자의 계좌 잔고 조회 | Authorization: Bearer | - | {"balance": "number"} | 500 Internal Server Error | | Users API | GET | /api/users/:userId | 사용자 정보 조회 | - | - | {"id": "string", "userName": "string"} | 500 Internal Server Error | | Products API | GET | /api/products | 모든 상품 조회 | - | - | [{"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]}] | 500 Internal Server Error | | Products API | GET | /api/products/:productId | 특정 상품 조회 | - | - | {"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]} | 500 Internal Server Error | | Products API | GET | /api/products/user/:userId | 유저가 올린 상품 리스트 조회 | - | - | [{"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]}] | 500 Internal Server Error | | Products API | GET | /api/products/likedProductList/:userId | 유저가 좋아요를 누른 상품 리스트 조회 | - | - | [{"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]}] | 500 Internal Server Error | | Products API | POST | /api/products | 상품 저장 | Authorization: Bearer | {"productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]} | {"message": "Product saved successfully"} | 500 Internal Server Error | | Products API | PUT | /api/products/:productId | 상품 수정 | Authorization: Bearer | {"productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]} | {"message": "Product updated successfully"} | 500 Internal Server Error | | Products API | DELETE | /api/products/:productId | 상품 삭제 | Authorization: Bearer | - | {"message": "Product deleted successfully"} | 500 Internal Server Error | | Products API | GET | /api/products/successBid/user/:userId | 유저가 낙찰받은 상품 리스트 조회 | - | - | [{"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]}] | 500 Internal Server Error | | Bids API | POST | /api/bid/:productId | 입찰하기 | Authorization: Bearer | {"bidderId": "string", "bidAmount": "number"} | {"message": "Bid placed successfully"} | 500 Internal Server Error | | Bids API | POST | /api/bid/close/:productId | 낙찰하기 | Authorization: Bearer | {"userId": "string"} | {"message": "Bid closed successfully"} | 500 Internal Server Error | | Bids API | PUT | /api/bid/sameScore/:productId | 같은 가격으로 낙찰 | Authorization: Bearer | - | {"message": "Bid updated successfully"} | 500 Internal Server Error | | Bids API | GET | /api/bid/game/:productId | 게임 정보 가져오기 | Authorization: Bearer | - | {"game": {...}} | 500 Internal Server Error | | Bids API | POST | /api/bid/create/game | 게임 만들기 | Authorization: Bearer | {"productId": "string", "users": [{"userId": "string", "score": "number", "isComplete": "boolean"}]} | {"message": "Game created successfully"} | 500 Internal Server Error | | Bids API | PUT | /api/bid/update/score | 게임 점수 업데이트 하기 | Authorization: Bearer | {"productId": "string", "userId": "string", "score": "number"} | {"message": "Score updated successfully"} | 500 Internal Server Error | | Bids API | POST | /api/bid/game/close | 게임 종료 | Authorization: Bearer | {"productId": "string", "winnerId": "string", "loserIds": ["string"], "bidAmount": "number"} | {"message": "Game closed successfully"} | 500 Internal Server Error | | Likes API | POST | /api/likes/:productId | 좋아요 누르기 | Authorization: Bearer | - | {"message": "Like added successfully"} | 500 Internal Server Error | | Likes API | DELETE | /api/likes/:productId | 좋아요 취소하기 | Authorization: Bearer | - | {"message": "Like removed successfully"} | 500 Internal Server Error | | Likes API | GET | /api/likes | 좋아요 목록 조회 | Authorization: Bearer | - | [{"productId": "string", "productName": "string", "price": "number", "description": "string", "dueDate": "date", "userId": "string", "category": "string", "productPhotos": ["string"]}] | 500 Internal Server Error | | Alarms API | POST | /api/alarms | 알람 저장 | - | {"userId": "string", "title": "string", "content": "string"} | {"message": "Alarm saved successfully"} | 500 Internal Server Error | | Alarms API | DELETE | /api/alarms/:alarmId | 알람 삭제 | - | - | {"message": "Alarm deleted successfully"} | 500 Internal Server Error | | Alarms API | GET | /api/alarms/user/:userId | 알람 목록 조회 | - | - | [{"_id": "string", "userId": "string", "title": "string", "content": "string", "createdAt": "date"}] | 500 Internal Server Error |

마무리

이렇듯 AUCTION은, 자유로운 경매 거래를 통해 사용자들이 더 나은 거래 경험을 할 수 있도록 도와주는 어플리케이션입니다. 다양한 기능을 통해 경매를 쉽게 관리하고 추적할 수 있어, 사용자에게 더욱 편리한 거래 환경을 제공합니다. 경매의 재미와 긴장감을 느끼며 새로운 거래 방식을 경험해보세요!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages