Skip to content

Economius | SSAFY 9기 2학기 특화 프로젝트 - 삼성 청년 SW 아카데미 최우수 프로젝트 🏆

Notifications You must be signed in to change notification settings

yoon-dh/economius

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation



Economius

게임 속에서 만들어나가는 나만의 경제 포트폴리오
삼성 청년 SW 아카데미 최우수상 수상 🏆

2023.08.21 ~ 2023.10.06

Notion | UCC


🖥 프로젝트 개요

팀원 소개



👑 이다영
(Back-End)



🎀 권민정
(Back-End)



🐟 김준섭
(Front-End)



🐲 신승헌
(Front-End)



🐰 안규보
(Back-End)



🐯 윤동훈
(Front-End)


서비스 배경

  • 경제 교육이 부족하고 개념이 어려워 관심이 많지만 경제를 잘 모르는 사람들이 많습니다.
  • '이코노미어스'는 과거 실제 경제적 이슈들을 통해, 어려운 경제를 쉽고 즐겁게 배울 수 있도록 하는 것에 목적을 두고 있습니다.

서비스 이름 및 설명

  • Econo (경제) + mius (사람) : 경제적인 사람
  • Econo (경제) + mius (천재) : 경제적 천재
  • Economy (경제) + us (함께) : 함께 경제를 배우자!

🔎 프로젝트 설계

시스템 구성도




ERD




Redis

{
  "roomId": 0,
  "bankruptcyPlayers": [
    0
  ],
  "players": [
    0
  ],
  "characters": {},
  "nicknames": {},
  "playerSequence": [
    0
  ],
  "currentPlayerToRoll": 0,
  "gameTurn": 0,
  "maxGameTurn": 0,
  "portfolios": {},
  "tax": {},
  "locations": {},
  "gold": {
    "price": 0,
    "rate": 0,
    "priceHistory": [
      0
    ],
    "rateHistory": [
      0
    ]
  },
  "buildings": {},
  "insurances": {},
  "stocks": {},
  "savings": {},
  "interestRate": {
    "rate": 0.00,
    "rateHistory": [
      0.00
    ]
  },
  "issueIdx": 0,
  "issues": [
    {
      "issueId": 0,
      "name": "",
      "type": "DEPRESSION",
      "country": "",
      "year": "",
      "description": "",
      "url": "",
      "currentAssetChanges": [
        {
          "issueStockId": 0,
          "issueId": 0,
          "issueName": "",
          "type": "DEPRESSION",
          "assetType": "",
          "assetId": 0,
          "stockType": "",
          "changeRate": "LOWER",
          "changeReason": ""
        }
      ]
    }
  ],
  "currentIssue": {
    "issueId": 0,
    "name": "",
    "type": "DEPRESSION",
    "country": "",
    "year": "",
    "description": "",
    "url": "",
    "currentAssetChanges": [
      {
        "issueStockId": 0,
        "issueId": 0,
        "issueName": "",
        "type": "DEPRESSION",
        "assetType": "",
        "assetId": 0,
        "stockType": "",
        "changeRate": "LOWER",
        "changeReason": ""
      }
    ]
  },
  "currentPrevIssues": [
    {
      "prevIssueId": 0,
      "issueId": 0,
      "foretoken": ""
    }
  ],
  "event": {
    "eventMoney": [
      {
        "eventMoneyId": 0,
        "insuranceTypeId": 0,
        "typeCode": "",
        "typeName": "",
        "name": "",
        "description": "",
        "money": 0,
        "url": ""
      }
    ],
    "eventStock": [
      {
        "eventStockId": 0,
        "stockIndustryId": 0,
        "industry": "",
        "name": "",
        "description": "",
        "rate": 0,
        "url": ""
      }
    ]
  }
}

🔨 개발 환경 및 기술 스택

FrontEnd BackEnd DB CI/CD 협업툴
Node 18.16.1 Java SE Development Kit 11.0.19 MySQL 5.7.35 AWS EC2(Ubuntu 20.04 LTS) GitLab
React 18.2.0 Spring Boot 2.7.15 Redis 7.0.12 Nginx 1.18.0 Jira
React-Router-Dom 6.16.0 Gradle 8.0 Docker 24.0.5 Notion
Recoil 0.7.7 Apache Tomcat 9.0.78 figma
Axios 1.5.0 modelmapper 3.1.1 Postman
sockjs-client 1.6.1 logstash-logback-encoder 4.1.1 Logstash
stompjs 2.3.5 jjwt-api 0.11.5
three 0.156.1 jjwt-impl 0.11.5
react-three/fiber 8.14.1 jjwt-jackson 0.11.5

📚 프로젝트 기능

1. 소셜 로그인





  • 홈 화면에서 카카오 로그인이 가능합니다.
  • 로그인이 완료되면 게임 방 생성 및 입장이 가능합니다.

2. 게임 방 생성 및 입장



  • 방 생성 및 입장 버튼을 눌러 게임 진행을 위한 대기 화면으로 진입합니다.
  • 방 입장 시, 방 코드를 입력합니다.
  • 4명의 인원이 모두 모이면, 방장이 게임을 시작할 수 있습니다.
  • 게임이 준비되는 동안 플레이어들은 로딩 화면에서 대기합니다.

3. 게임 화면



  • 게임 화면 상단에서 주식 등락 정보를 확인합니다.
  • 맵 화면에서 플레이어들의 자산 순위와 플레이 상태를 알 수 있습니다.
  • 게임 화면 우측에서 각 플레이어의 포트폴리오, 경제 지표를 확인합니다.

4. 경제 이슈 발생



  • 과거에 실제로 일어났던 경제적 이슈들이 게임 진행 과정에서 주기적으로 발생하며 게임 내 플레이어의 자산과 게임 전략에 영향을 미칩니다.
  • 과거의 경제적 사건들을 통해 여러 요소들이 경제에 미치는 영향을 파악하여 경제 관념을 정립할 수 있도록 도와 줍니다.

5. 자산 포트폴리오 관리 및 경제 뉴스 확인





  • 보유한 자산의 비율을 원형 그래프의 형태로 쉽게 파악할수 있습니다.
  • 금, 주식, 적금, 보험 자산에 수익률, 변동률 등 자세한 정보를 파악할 수 있습니다.
  • 포트폴리오를 통해 자산의 종류를 파악하고 투자 전략을 세워 전략적인 자산 관리를 할 수 있습니다.

6. 보험 및 적금 가입



  • 보험이나 적금 칸에 도착하면 해당 상품을 가입할 수 있습니다.
  • 보험에 가입할 시, 찬스 카드를 밟았을 때 발생하는 손실을 일부 보장받을 수 있습니다.
  • 적금에 가입할 시, 변동금리 + 고정금리의 가격만큼 이자가 붙은 금액을 정해진 턴을 만기할 시 수익을 얻을 수 있습니다.

7. 주식





  • 도착한 기업 주식의 등락율을 확인할 수 있고, 이를 바탕으로 수익률을 높이는 방향으로 주식을 매수 또는 매도합니다.
  • 기업 칸에서는 해당 기업의 아이템을 소비하게 되며, 이후 주주들이 주식 보유 비율에 비례하여 배당금을 받습니다.

7. 금



  • 경제 불황 이슈가 발생하고 있는 상황에서도 안정적으로 유지되는 자산입니다.

8. 부동산



  • 초기 구매 비용이 높지만, 수익률 또한 높은 자산입니다.
  • 부동산 소유자의 땅에 다른 플레이어가 방문 시 방문료를 차감하여 소유자에게 돌아갑니다.

About

Economius | SSAFY 9기 2학기 특화 프로젝트 - 삼성 청년 SW 아카데미 최우수 프로젝트 🏆

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 52.6%
  • Java 36.5%
  • JavaScript 9.4%
  • Other 1.5%