Skip to content

ahnji0520/auction

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.9%
  • CSS 2.7%
  • HTML 1.3%
  • Pug 0.1%