/ico

알파세대를 위한 체험형 경제 교육 플랫폼, 아이코(ICO)입니다. 🏆

Primary LanguageTypeScript

👨‍👩‍👧‍👦 아이코(ICO)

  • SSAFY 8th PJT Team D103​ 🌞
  • 프로젝트 기간 : 2023.04.10 ~ 2023.05.19
  • 구성원 : 강교철, 김동주, 변윤경, 사공지은, 서재건, 오민준
  • 팀 노션 : 👉 아이코(ICO) Notion 👈

📌 ​Contents

1️⃣ Introduction
2️⃣​ Tech Stack
3️⃣​ System Architecture
4️⃣​ ERD
5️⃣​ Package Structure
6️⃣​ API Document
7️⃣​ Contributor


​:one: Introduction

1. 아이코(ICO) 시연 시나리오

2. 아이코(ICO) UCC 영상


​:two:​ Tech Stack

Tech Stack
Language Java, TypeScript
Back-end SpringBoot, JWT
Front-end Next.js, PWA, react-query, jotai, emotion
Database MySQL, MongoDB, Redis, S3
Server AWS EC2, Nginx
DevOps Git, Docker, Jenkins
Front-end Tech 상세 보기

- TypeScript: 5.0.4
- @types/node: 18.16.0
- @types/react: ^18.2.6
- next: 13.3.1
- next-pwa: ^5.6.0
- @tanstack/react-query: ^4.29.3
- jotai: ^2.0.4
- axios: ^1.3.6
- @emotion/react: ^11.10.6
Back-end Tech 상세 보기

- Java: 11
- SpringBoot: 2.7.11
- MySQL: 8.0.29
- MongoDB: 5.0.17
- Redis: 5.0.7
- Docker: 23.0.4
- Docker-compose: 1.29.2
- Jenkins: 2.387.2
- Nginx: 1.18.0

3️⃣​ System Architecture

img


4️⃣​ ERD

img


5️⃣ Package Structure

Front-end Package Structure
└─ 📂ico
    ├─ 📂public
    │  ├─ 📂assets
    │  │  ├─ 📂check
    │  │  ├─ 📂create
    │  │  ├─ 📂deposit
    │  │  ├─ 📂dock
    │  │  ├─ 📂enter
    │  │  ├─ 📂guide
    │  │  ├─ 📂home
    │  │  ├─ 📂job
    │  │  ├─ 📂login
    │  │  ├─ 📂side_menu
    │  │  └─ 📂signup
    │  └─ 📂icons
    └─ 📂src
        ├─ 📂api
        │  ├─ 📂admin
        │  ├─ 📂common
        │  │  └─ 📂shop
        │  ├─ 📂student
        │  │  ├─ 📂class
        │  │  ├─ 📂finance
        │  │  ├─ 📂gov
        │  │  ├─ 📂home
        │  │  ├─ 📂shop
        │  │  └─ 📂user
        │  └─ 📂teacher
        │      ├─ 📂class
        │      ├─ 📂finanace
        │      ├─ 📂gov
        │      ├─ 📂shop
        │      └─ 📂user
        ├─ 📂components
        │  ├─ 📂common
        │  │  ├─ 📂AnimatedRenderer
        │  │  ├─ 📂Button
        │  │  ├─ 📂Card
        │  │  ├─ 📂Carousel
        │  │  ├─ 📂Dropdown
        │  │  ├─ 📂Input
        │  │  ├─ 📂Layout
        │  │  ├─ 📂LoadImage
        │  │  ├─ 📂Modal
        │  │  ├─ 📂Portal
        │  │  ├─ 📂ShowQR
        │  │  ├─ 📂StackNotification
        │  │  ├─ 📂SwipeableGallery
        │  │  └─ 📂TableGenerator
        │  ├─ 📂student
        │  │  ├─ 📂Class
        │  │  │  ├─ 📂JobSearch
        │  │  │  └─ 📂Students
        │  │  ├─ 📂common
        │  │  │  ├─ 📂ContentWrapper
        │  │  │  └─ 📂Loading
        │  │  ├─ 📂Finance
        │  │  │  ├─ 📂Deposit
        │  │  │  │  ├─ 📂DetailPage
        │  │  │  │  ├─ 📂GuidePage
        │  │  │  │  └─ 📂Modal
        │  │  │  └─ 📂Invest
        │  │  │      ├─ 📂Chart
        │  │  │      ├─ 📂IssueList
        │  │  │      └─ 📂Modal
        │  │  ├─ 📂Gov
        │  │  │  ├─ 📂Job
        │  │  │  └─ 📂Rule
        │  │  ├─ 📂Home
        │  │  │  ├─ 📂Asset
        │  │  │  ├─ 📂AssetDetail
        │  │  │  ├─ 📂Coupon
        │  │  │  ├─ 📂GradationButton
        │  │  │  ├─ 📂JobCard
        │  │  │  ├─ 📂SideMenu
        │  │  │  └─ 📂Tip
        │  │  ├─ 📂layout
        │  │  │  ├─ 📂NavBar
        │  │  │  ├─ 📂PageHeader
        │  │  │  ├─ 📂PageLoading
        │  │  │  ├─ 📂TabMenu
        │  │  │  └─ 📂TransitionWrapper
        │  │  └─ 📂Shop
        │  │      ├─ 📂QRScanner
        │  │      └─ 📂ShopCreate
        │  └─ 📂teacher
        │      ├─ 📂Class
        │      │  ├─ 📂Coupon
        │      │  ├─ 📂JobSearch
        │      │  ├─ 📂Property
        │      │  └─ 📂Student
        │      │      ├─ 📂Detail
        │      │      └─ 📂List
        │      ├─ 📂common
        │      │  ├─ 📂CollapseMenu
        │      │  ├─ 📂CommonListElement
        │      │  ├─ 📂Form
        │      │  ├─ 📂KebabMenu
        │      │  └─ 📂Pagination
        │      ├─ 📂Finance
        │      │  ├─ 📂Deposit
        │      │  └─ 📂Invest
        │      ├─ 📂Gov
        │      │  ├─ 📂Exchequer
        │      │  ├─ 📂Job
        │      │  └─ 📂Rule
        │      ├─ 📂layout
        │      │  └─ 📂SideBar
        │      ├─ 📂Shop
        │      │  └─ 📂Create
        │      └─ 📂Signup
        │          └─ 📂SignupIcons
        ├─ 📂hooks
        ├─ 📂pages
        │  ├─ 📂admin
        │  ├─ 📂student
        │  │  ├─ 📂class
        │  │  ├─ 📂finance
        │  │  │  ├─ 📂deposit
        │  │  │  └─ 📂invest
        │  │  ├─ 📂gov
        │  │  │  ├─ 📂exchequer
        │  │  │  ├─ 📂job
        │  │  │  └─ 📂rule
        │  │  ├─ 📂home
        │  │  │  ├─ 📂asset
        │  │  │  ├─ 📂coupon
        │  │  │  └─ 📂exchequer
        │  │  └─ 📂shop
        │  │      ├─ 📂student
        │  │      └─ 📂teacher
        │  └─ 📂teacher
        │      ├─ 📂class
        │      ├─ 📂finance
        │      ├─ 📂gov
        │      │  ├─ 📂exchequer
        │      │  ├─ 📂job
        │      │  └─ 📂rule
        │      └─ 📂shop
        │          ├─ 📂my
        │          └─ 📂student
        ├─ 📂store
        ├─ 📂styles
        ├─ 📂types
        │  ├─ 📂admin
        │  ├─ 📂common
        │  ├─ 📂student
        │  └─ 📂teacher
        └─ 📂util
Back-end Package Structure
📦Back-end
 ┣ 📂api-module
 ┃ ┣ 📂src
 ┃ ┃ ┣ 📂main
 ┃ ┃ ┃ ┣ 📂java
 ┃ ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┃ ┗ 📂ico
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂bank
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂certification
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂coupon
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂immigration
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂job
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂nation
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂resume
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂rule
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂stock
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂studentProduct
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂tax
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂teacherProduct
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂transaction
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂treasuryHistory
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂user
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂bank
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂certification
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂coupon
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂immigration
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂job
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂nation
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂resume
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂rule
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂stock
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂student
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂tax
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂teacher
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂transaction
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂treasury
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂user
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜S3UploadService.java
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂sse
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂user
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂util
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ApiModuleApplication.java
 ┃ ┃ ┃ ┗ 📂resources
 ┃ ┃ ┗ 📂test
 ┃ ┃ ┃ ┗ 📂java
 ┃ ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┃ ┗ 📂ico
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂api
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ApiModuleApplicationTests.java
 ┃ ┗ 📜Dockerfile
 ┣ 📂batch-module
 ┃ ┣ 📂src
 ┃ ┃ ┣ 📂main
 ┃ ┃ ┃ ┣ 📂java
 ┃ ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┃ ┗ 📂ico
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂batch
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂job
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂scheduler
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BatchModuleApplication.java
 ┃ ┃ ┃ ┗ 📂resources
 ┃ ┃ ┗ 📂test
 ┃ ┃ ┃ ┗ 📂java
 ┃ ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┃ ┗ 📂ico
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂batch
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BatchModuleApplicationTests.java
 ┃ ┗ 📜Dockerfile
 ┣ 📂core-module
 ┃ ┗ 📂src
 ┃ ┃ ┣ 📂main
 ┃ ┃ ┃ ┗ 📂java
 ┃ ┃ ┃ ┃ ┗ 📂com
 ┃ ┃ ┃ ┃ ┃ ┗ 📂ico
 ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂core
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂code
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂data
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂repository
 ┣ 📜build.gradle
 ┣ 📜docker-compose.yml

6️⃣ API Document

👉 API Document


7️⃣​ Contributor

👉 팀원 소개
강교철 @gyocheol
김동주 @jook1356
변윤경 @YunKyungByun
사공지은 @sagongjieun
서재건 @RUNGOAT
오민준 @gosuminjun