팀 협업 [노션 링크: https://www.notion.so/c53f7e74366d4e99b092d8a63e62d73f?v=ed50033a7c7e4b6b9dc37608e88a0318&pvs=4]
탁우현 [개인 Github 링크: https://github.com/WooHyunTak]
박상훈 [개인 Github 링크: https://github.com/dieuaimer]
임송이 [개인 Github 링크: https://github.com/Im-amberim]
스타트업 정보 확인 및 모의 투자 서비스
최근에는 벤처 캐피탈에 비해 개인 투자자들의 스타트업에 대한 관심이 증가하고 있습니다. 하지만 스타트업에 관한 정보 접근성에는 여전히 큰 격차가 존재합니다. 이러한 상황을 개선하기 위해, 개인 투자자들이 스타트업을 선택하여 그들의 누적 투자 금액, 매출액 등을 확인하고 비교할 수 있는 모의 투자 서비스를 제작합니다.
기업 비교 기능
POST api/comparison
{"comparisonIds": ["id1", "id2", "id3"]}
와 같은 형태로 기업들의 ID를 전달합니다.sortBy
)과 정렬 순서(order
)를 지정할 수 있습니다. 기본적으로 매출(revenue
)을 기준으로 오름차순으로 정렬하지만, 투자금(actualInvestment
)이나 직원 수(totalEmployees
)를 기준으로 변경할 수 있습니다.404 Not Found
오류를 반환합니다.특정 기업의 순위 조회 기능
GET api/comparison/rank/:id
sortBy
) 과 정렬 순서(order
)를 선택할 수 있습니다. 기본적으로 매출을 기준으로 오름차순으로 정렬하지만, 투자금 또는 직원 수를 기준으로도 조회할 수 있습니다.기업 비교 카운팅 기능
PATCH api/comparisons/comparison-counts
{"myCompanyId": "id1", "comparisonIds: ["id2", "id3"]}
형태로 전달됩니다.204 No Content
응답을 반환하며, 해당 기업 정보를 차지 못한 경우에는 404 Not Found
오류를 반환합니다.가상 투자자 생성 기능
POST api/investment
{"name": "Investor Name", "amount": "100000000", "commnet": "Great potential!", "password": "password999", "companyId": "00e7a018-a94b-4d6b-8c79-6b9cd2c2cfc1"}
와 같은 형태로 데이터를 전달합니다.201 Created
입니다.가상 투자자 수정 기능
PATCH api/investments/:id
{"amount": "200000000", "comment": "Updated potential!", "password": "password999"}
와 같은 데이터를 전달합니다.200 OK
: 수정된 가상 투자자의 정보가 반환됩니다. 수정된 정보에는 투자자 ID, 이름, 금액, 코멘트, 비밀번호, 기업 ID, 생성 및 수정 시간이 포함됩니다.403 Forbidden
: 비밀번호가 일치하지 않을 경우 수정이 거부됩니다.404 Not Found
: 해당 ID의 가상 투자자를 찾을 수 없는 경우 반환됩니다.가상 투자자 삭제 기능
DELETE api/investments/:id
{"password": "password999"}
와 같은 데이터를 전달합니다.200 OK
: 삭제가 성공적으로 이루어진 경우 성공 메시지가 반환됩니다.403 Forbidden
: 비밀전호가 일치하지 않아 삭제가 거부된 경우 반환됩니다.404 Not Found
: 해당 ID의 가상 투자자를 찾을 수 없는 경우 반환됩니다.전체 기업 투자 현황 조회 기능
GET api/companies/investments-status
sortBy
: 정렬 기준 필드명 (virtualInvestment
, actualInvestment
). 기본값은 virtualInvestment
입니다.order
: 정렬 순서 (asc
또는 desc
). 기본값은 desc
입니다.page
: 페이지 번호. 기본값은 1
입니다.limit
: 페이지당 항목 수. 기본값은 10
입니다.sortBy
)에 따라 기업 목록을 정렬합니다. 예를 들어, sortBy
가 virtualInvestment
이면 가상 투자 금액을 기준으로 정렬합니다. 정렬 순서는 order
값에 따라 결정되며, 동일한 값을 가진 항목은 기업 이름(name
)에 따라 오름차순으로 추가 정렬됩니다.hasNextPage
)를 확인합니다.전체 기업 조회 기능
GET api/companies
sortBy
: 정렬 기준 필드명 (revenue
, actualInvestment
, totalEmployees
). 기본값은 revenue
입니다.order
: 정렬 순서(asc
또는 desc
). 기본값은 desc
입니다.keyword
: 기업명 또는 기업 소개에 대한 키워드를 검색합니다.limit
: 가져올 데이터의 개수. 기본값은 10
입니다.page
: 페이지 번호, 기본값은 1
입니다.400 Bad Request
를 반환합니다.특정 기업 조회
GET api/companies/id
404 Not Found
오류를 반환합니다.특정 기업에 대한 가상 투자자 조회 기능
GET api/companies/:id
investments
)을 투자 금액(amount
) 기준으로 내림차순 정렬하여 함께 가져옵니다. 또한, 기업의 카테고리 (categories
) 정보도 함께 포함시킵니다.rank
필드로 추가합니다.rank
) 등이 포함됩니다.기업 비교 현황 조회 기능
GET api/comparisons/comparison-status
sortBy
), 정렬 순서(order
), 한 페이지에 표시할 기업의 수(limit
), 페이지 번호(page
)를 쿼리 파라미터로 설정할 수 있습니다. 기본적으로 비교 선택 횟수(selectedCount
)에 대해 내림차순으로 정렬하고, 한 페이지당 10개의 결과를 표시하며 첫 번째 페이지를 반환합니다.totalCount
)와 함께 각 기업의 비교 횟수와 관련된 정보 리스트를 반환합니다. 만약 기업의 정보를 찾을 수 없을 경우 404 Not Found
오류를 반환합니다.
├── controllers
│ ├── companyController.js
│ ├── comparisonController.js
│ └── investmentController.js
├── https
│ ├── company.http
│ └── investment.http
├── node_modules
├── prisma
│ ├── migrations
│ ├── mock.js
│ ├── schema.prisma
│ └── seed.js
├── routes
│ ├── companyRoute.js
│ ├── comparisonRoute.js
│ └── investmentRoute.js
├── structs
├── utils
├── .env
├── .gitignore
├── app.js
├── env.js
├── package-lock.json
└── package.json