This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Team-6-Aightnow
├─ .eslintrc.json
├─ .git
│ ├─ COMMIT_EDITMSG
│ ├─ config
│ ├─ description
│ ├─ FETCH_HEAD
│ ├─ fsmonitor--daemon
│ │ └─ cookies
│ ├─ HEAD
│ ├─ hooks
│ │ ├─ applypatch-msg.sample
│ │ ├─ commit-msg.sample
│ │ ├─ fsmonitor-watchman.sample
│ │ ├─ post-update.sample
│ │ ├─ pre-applypatch.sample
│ │ ├─ pre-commit.sample
│ │ ├─ pre-merge-commit.sample
│ │ ├─ pre-push.sample
│ │ ├─ pre-rebase.sample
│ │ ├─ pre-receive.sample
│ │ ├─ prepare-commit-msg.sample
│ │ ├─ push-to-checkout.sample
│ │ ├─ sendemail-validate.sample
│ │ └─ update.sample
│ ├─ index
│ ├─ info
│ │ └─ exclude
│ ├─ logs
│ │ ├─ HEAD
│ │ └─ refs
│ │ ├─ heads
│ │ │ ├─ feature
│ │ │ │ └─ shj_login
│ │ │ └─ main
│ │ └─ remotes
│ │ └─ origin
│ │ ├─ develop
│ │ ├─ feature
│ │ │ └─ shj_login
│ │ └─ HEAD
│ ├─ objects
│ │ ├─ 03
│ │ │ └─ de53d5f34b8d50bf06cdcbc1bbca465a94196b
│ │ ├─ 13
│ │ │ └─ 14fe7a28c1eb74105441c901ee653271e94845
│ │ ├─ 19
│ │ │ └─ ddd206c91d43854bdb5669bfe932016ad179e0
│ │ ├─ 1a
│ │ │ └─ 1e67e831b74fac3e455fc8387f20f15c495696
│ │ ├─ 1b
│ │ │ └─ 289f83fcdf5bd3680a9fb6f4e9c750eef0efad
│ │ ├─ 1d
│ │ │ └─ a2bfeece9913613f465ff61466817b55bba695
│ │ ├─ 23
│ │ │ └─ eb0fc2da92d6c3d03bc56dc76a76acb941267e
│ │ ├─ 24
│ │ │ └─ e80a05b3903aee6f8592d26aa60c1c0b477227
│ │ ├─ 26
│ │ │ └─ 5b7efa4b03a737c38d3ef60f847940be8e1ea8
│ │ ├─ 2a
│ │ │ └─ 1ad91e7d24c91176903c98c5398582a212e5d4
│ │ ├─ 2b
│ │ │ └─ 6c2acd46a9e442f0f27029ddd7e139a96b551d
│ │ ├─ 30
│ │ │ └─ 8a23bd82aefde13c66a78d4407988ef925715b
│ │ ├─ 33
│ │ │ └─ 8f158f8902be30017915dec97f5ed22577613c
│ │ ├─ 35
│ │ │ └─ 911dcd682d0b6dfcd92fbcc7226c43df9f410a
│ │ ├─ 37
│ │ │ └─ 5ee69a3ba8ce7572b1ef230a511fa95c154af3
│ │ ├─ 4b
│ │ │ └─ e2b4ec0fd738d810352032e63ec3478cc00a39
│ │ ├─ 5d
│ │ │ └─ d48aa637136c99de3105ab6397b04310cd70ca
│ │ ├─ 64
│ │ │ └─ 9334114ade5a5eefccea72cbf8932e4493376a
│ │ ├─ 65
│ │ │ └─ 666a21b21cbe8bc2105f328d3cba8498e64690
│ │ ├─ 68
│ │ │ ├─ 331aa14697a2daba816efa19903527e8080bad
│ │ │ └─ 7550a795b78f37d7797e1165fff2835a1fe089
│ │ ├─ 69
│ │ │ └─ 5ff46cbce57e661086e6c7024efdaeda20ee63
│ │ ├─ 6c
│ │ │ └─ 629f9cd40297a21e45ec3272358396f724d298
│ │ ├─ 75
│ │ │ └─ 8130e80f90d602ed80dc962ea84d366931f62c
│ │ ├─ 7c
│ │ │ └─ 8fb39468a3407734626d8639017c6126a83ec9
│ │ ├─ 80
│ │ │ ├─ 931ca373791b2767ddce3218a5409fb6186b20
│ │ │ └─ d55f73343a9dee0323534ae63648252c6f6d84
│ │ ├─ 84
│ │ │ └─ f548b8f196d79ea7f6f009b29b7c4088bfd20d
│ │ ├─ 88
│ │ │ └─ 90588e1875882c56ef8f6eff20d31369d1996b
│ │ ├─ 8d
│ │ │ └─ 20d2b323c25784b65cc9d260db9539919bad95
│ │ ├─ 93
│ │ │ └─ 0bdebba995268c262e12182aa62c78c540ca87
│ │ ├─ 99
│ │ │ └─ 9e2eb0e55351c77c813164623aa470b32c6ef6
│ │ ├─ ac
│ │ │ ├─ 63d7c08e4182c8e044c4c04a86401e9ef4f088
│ │ │ └─ 816a3c89b898b182becf9e7c4f13765cb03c34
│ │ ├─ b5
│ │ │ └─ c4c6a9ce54d829998367fdc361c43eb2a7a6d4
│ │ ├─ b7
│ │ │ └─ fddd383e68206a259f312e1dccc52ab781dae7
│ │ ├─ bb
│ │ │ └─ 2c9d693d469bef0dd204708bdc3a3215d5c21c
│ │ ├─ be
│ │ │ └─ c02ba77c2cb94973a5a40218e5dc6dcb3b27be
│ │ ├─ c4
│ │ │ └─ 018b289c87528db1a496b22091c1482f84cee0
│ │ ├─ c8
│ │ │ └─ 0b985491216a2437fae77a79300a07da08763d
│ │ ├─ c9
│ │ │ └─ 282c26c90e051710cf5bfb164bd9cb18028380
│ │ ├─ ca
│ │ │ └─ f3ae4ebc0ed8eb99641dbc6a405aab9e80301b
│ │ ├─ d1
│ │ │ └─ 6c7bbfd3c472c2e12eacbde8b0da59278cb2de
│ │ ├─ d8
│ │ │ └─ 0e133057b064863ad637c8f7ba9df2c7b2e134
│ │ ├─ dd
│ │ │ ├─ 4ccb4872b7549c02585e19b66a81132111e2b1
│ │ │ └─ 73b6b942a09094648ae29ba82bbb5d16804fe1
│ │ ├─ e4
│ │ │ ├─ 106691e261624a446dbd83ebe95cf6262db2c6
│ │ │ └─ 81457aab2d116436ea317993e159c2b51bb6b9
│ │ ├─ eb
│ │ │ └─ 256c9f2616c4226519ced961def9463a35bc50
│ │ ├─ f0
│ │ │ └─ 799d3ee37422fa1c875db6497159a0be6b425f
│ │ ├─ f3
│ │ │ ├─ 6333f21b2f718997638e4be611560508e0bebd
│ │ │ └─ d2ca172fefdeb01e92c977770ac21d05611579
│ │ ├─ f6
│ │ │ └─ 7ab4fbbb2c061ea36e0d839d786ea364bfd6eb
│ │ ├─ info
│ │ └─ pack
│ │ ├─ pack-24d222f091950bfe5ff46b5e4d14bd9a34fd0e3b.idx
│ │ ├─ pack-24d222f091950bfe5ff46b5e4d14bd9a34fd0e3b.pack
│ │ ├─ pack-24d222f091950bfe5ff46b5e4d14bd9a34fd0e3b.rev
│ │ ├─ pack-aa1c98d152c78a7261760e296a0dd1826218f94c.idx
│ │ ├─ pack-aa1c98d152c78a7261760e296a0dd1826218f94c.pack
│ │ └─ pack-aa1c98d152c78a7261760e296a0dd1826218f94c.rev
│ ├─ ORIG_HEAD
│ ├─ packed-refs
│ └─ refs
│ ├─ heads
│ │ ├─ feature
│ │ │ └─ shj_login
│ │ └─ main
│ ├─ remotes
│ │ └─ origin
│ │ ├─ develop
│ │ ├─ feature
│ │ │ └─ shj_login
│ │ └─ HEAD
│ └─ tags
├─ .gitignore
├─ .prettierrc
├─ .vscode
│ └─ launch.json
├─ next.config.mjs
├─ package-lock.json
├─ package.json
├─ postcss.config.mjs
├─ public
│ └─ images
│ ├─ btn_google.png
│ ├─ btn_kakao.png
│ ├─ btn_naver.png
│ ├─ logo_dark.svg
│ ├─ logo_light.svg
│ ├─ main_background.jpg
│ ├─ main_laptop.png
│ ├─ news_detail_img00.png
│ ├─ news_img00.png
│ ├─ news_img01.png
│ ├─ news_img02.png
│ ├─ news_img03.png
│ ├─ news_img04.png
│ ├─ news_img05.png
│ ├─ news_img06.png
│ ├─ news_img07.png
│ ├─ news_img08.png
│ ├─ news_img09.png
│ └─ profile_img.png
├─ README.md
├─ src
│ ├─ app
│ │ ├─ api
│ │ │ ├─ auth
│ │ │ │ ├─ error.tsx
│ │ │ │ ├─ route.ts
│ │ │ │ └─ [...nextauth]
│ │ │ │ └─ route.ts
│ │ │ ├─ news
│ │ │ │ └─ translate
│ │ │ │ └─ route.ts
│ │ │ ├─ report
│ │ │ │ └─ stockApi.ts
│ │ │ ├─ stocks
│ │ │ │ └─ route.ts
│ │ │ ├─ trendingSearch
│ │ │ │ └─ route.ts
│ │ │ └─ userStock
│ │ │ └─ [id]
│ │ │ ├─ recentSearch
│ │ │ │ └─ route.ts
│ │ │ ├─ recentViews
│ │ │ │ └─ route.ts
│ │ │ ├─ route.ts
│ │ │ └─ watchList
│ │ │ └─ route.ts
│ │ ├─ clientLayout.tsx
│ │ ├─ firebaseTest
│ │ │ └─ page.tsx
│ │ ├─ layout.tsx
│ │ ├─ not-found.tsx
│ │ └─ [locale]
│ │ ├─ (account)
│ │ │ ├─ findId
│ │ │ │ └─ page.tsx
│ │ │ ├─ findPassword
│ │ │ │ ├─ @modal
│ │ │ │ │ ├─ (.)success
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ └─ default.tsx
│ │ │ │ ├─ layout.tsx
│ │ │ │ ├─ page.tsx
│ │ │ │ └─ success
│ │ │ │ └─ page.tsx
│ │ │ ├─ layout.tsx
│ │ │ ├─ login
│ │ │ │ ├─ LoginClient.tsx
│ │ │ │ └─ page.tsx
│ │ │ └─ signUp
│ │ │ ├─ agreement
│ │ │ │ └─ page.tsx
│ │ │ ├─ completed
│ │ │ │ └─ page.tsx
│ │ │ ├─ profile
│ │ │ │ └─ page.tsx
│ │ │ ├─ register
│ │ │ │ └─ page.tsx
│ │ │ └─ verify
│ │ │ ├─ @modal
│ │ │ │ ├─ (.)success
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ default.tsx
│ │ │ ├─ layout.tsx
│ │ │ ├─ page.tsx
│ │ │ └─ success
│ │ │ └─ page.tsx
│ │ ├─ (headerLayout)
│ │ │ ├─ accountCancel
│ │ │ │ └─ page.tsx
│ │ │ ├─ layout.tsx
│ │ │ ├─ like
│ │ │ │ ├─ @modal
│ │ │ │ │ ├─ (.)addFavoriteStock
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ ├─ (.)deleteFavoriteStock
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ └─ default.tsx
│ │ │ │ ├─ addFavoriteStock
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ deleteFavoriteStock
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ layout.tsx
│ │ │ │ └─ page.tsx
│ │ │ ├─ main
│ │ │ │ └─ page.tsx
│ │ │ ├─ news
│ │ │ │ ├─ newsDetail
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ page.tsx
│ │ │ ├─ report
│ │ │ │ └─ [id]
│ │ │ │ └─ page.tsx
│ │ │ ├─ search
│ │ │ │ ├─ page.tsx
│ │ │ │ └─ searchAf
│ │ │ │ └─ page.tsx
│ │ │ └─ settings
│ │ │ ├─ @modal
│ │ │ │ ├─ (.)account
│ │ │ │ │ ├─ delete
│ │ │ │ │ │ └─ deleteAccount
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ └─ edit
│ │ │ │ │ ├─ editAccount
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ ├─ editProfile
│ │ │ │ │ │ └─ page.tsx
│ │ │ │ │ └─ verifyPassword
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ default.tsx
│ │ │ ├─ account
│ │ │ │ ├─ delete
│ │ │ │ │ └─ deleteAccount
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ edit
│ │ │ │ ├─ editAccount
│ │ │ │ │ └─ page.tsx
│ │ │ │ ├─ editProfile
│ │ │ │ │ └─ page.tsx
│ │ │ │ └─ verifyPassword
│ │ │ │ └─ page.tsx
│ │ │ ├─ layout.tsx
│ │ │ └─ page.tsx
│ │ ├─ loading.tsx
│ │ └─ page.tsx
│ ├─ components
│ │ ├─ AccountHeader.tsx
│ │ ├─ Badge.tsx
│ │ ├─ Button
│ │ │ ├─ IconButton.tsx
│ │ │ ├─ LanguageButton.tsx
│ │ │ └─ TextButton.tsx
│ │ ├─ Chart
│ │ │ ├─ AreaChart.tsx
│ │ │ └─ RadarChart.tsx
│ │ ├─ chatbot
│ │ │ ├─ Bot.tsx
│ │ │ ├─ ChatBot.tsx
│ │ │ ├─ ChatBotBtn.tsx
│ │ │ └─ User.tsx
│ │ ├─ Checkbox.tsx
│ │ ├─ Dropdown.tsx
│ │ ├─ Header.tsx
│ │ ├─ IconChecked.tsx
│ │ ├─ Input.tsx
│ │ ├─ LoadingSpinner.tsx
│ │ ├─ Popup
│ │ │ ├─ Popup.tsx
│ │ │ ├─ PopupButton.tsx
│ │ │ └─ PopupTitle.tsx
│ │ ├─ StockIcon
│ │ │ └─ StockIcon.tsx
│ │ └─ Toggle.tsx
│ ├─ containers
│ │ ├─ account
│ │ │ ├─ AccountFormBox.tsx
│ │ │ ├─ DuplicateCheckInput.tsx
│ │ │ ├─ findId
│ │ │ │ ├─ FindIdForm.tsx
│ │ │ │ └─ FindIdResult.tsx
│ │ │ ├─ findPassword
│ │ │ │ └─ FindPasswordForm.tsx
│ │ │ ├─ login
│ │ │ │ └─ LoginForm.tsx
│ │ │ └─ signUp
│ │ │ ├─ agreement
│ │ │ │ ├─ AgreementForm.tsx
│ │ │ │ └─ data.tsx
│ │ │ └─ SearchDropdown.tsx
│ │ ├─ like
│ │ │ ├─ DeletePopupBox.tsx
│ │ │ ├─ FavoriteStock.tsx
│ │ │ ├─ FavoriteStockItem.tsx
│ │ │ ├─ modal
│ │ │ │ ├─ RecentViewItem.tsx
│ │ │ │ ├─ RecentViewList.tsx
│ │ │ │ ├─ RecentViews.tsx
│ │ │ │ ├─ SearchContainer.tsx
│ │ │ │ ├─ SearchResult.tsx
│ │ │ │ ├─ SearchResultItem.tsx
│ │ │ │ ├─ TrendingSearch.tsx
│ │ │ │ ├─ TrendingSearchItem.tsx
│ │ │ │ └─ TrendingSkeleton.tsx
│ │ │ └─ PageHead.tsx
│ │ ├─ main
│ │ │ ├─ Card.tsx
│ │ │ ├─ InterestCard.tsx
│ │ │ ├─ InterestList.tsx
│ │ │ ├─ RecentNewsList.tsx
│ │ │ ├─ RecentViews.tsx
│ │ │ ├─ StockNews.tsx
│ │ │ └─ UserAIReport.tsx
│ │ ├─ mypage
│ │ │ ├─ account
│ │ │ │ ├─ delete
│ │ │ │ │ ├─ DeleteAccount.tsx
│ │ │ │ │ └─ DeleteAccountSuccess.tsx
│ │ │ │ └─ edit
│ │ │ │ ├─ EditAccountInfo.tsx
│ │ │ │ ├─ EditProfile.tsx
│ │ │ │ └─ VerifyPassword.tsx
│ │ │ └─ settings
│ │ │ ├─ EditPersonalInfo.tsx
│ │ │ ├─ LanguageSettings.tsx
│ │ │ ├─ Main.tsx
│ │ │ └─ TermsOfService.tsx
│ │ ├─ news
│ │ │ ├─ FavoriteStockNews.tsx
│ │ │ ├─ FavoriteStockNewsItem.tsx
│ │ │ ├─ LatestNews.tsx
│ │ │ ├─ LatestNewsItem.tsx
│ │ │ ├─ MainNews.tsx
│ │ │ ├─ newsDetail
│ │ │ │ ├─ Article.tsx
│ │ │ │ ├─ RelatedArticle.tsx
│ │ │ │ ├─ RelatedArticleItem.tsx
│ │ │ │ ├─ RelatedStock.tsx
│ │ │ │ └─ RelatedStockItem.tsx
│ │ │ ├─ PopularNews.tsx
│ │ │ └─ PopularNewsItem.tsx
│ │ ├─ report
│ │ │ ├─ AIAnalyst.tsx
│ │ │ ├─ AIStockList.tsx
│ │ │ ├─ News.tsx
│ │ │ ├─ ReportContainer.tsx
│ │ │ ├─ StockChart.tsx
│ │ │ └─ StockPrice.tsx
│ │ └─ search
│ │ ├─ PopSearch.tsx
│ │ ├─ PopSrcList.tsx
│ │ ├─ RcSrcList.tsx
│ │ ├─ RecentSrc.tsx
│ │ └─ searchAf
│ │ ├─ News.tsx
│ │ ├─ NewsList.tsx
│ │ ├─ SrcStockList.tsx
│ │ └─ Stock.tsx
│ ├─ firebase
│ │ ├─ fireauth.ts
│ │ ├─ firebaseAdmin.ts
│ │ ├─ firebasedb.ts
│ │ ├─ firestorage.ts
│ │ └─ firestore.ts
│ ├─ fonts
│ │ └─ PretendardVariable.woff2
│ ├─ icons
│ │ ├─ ChatBotIcon.tsx
│ │ ├─ IconAi.tsx
│ │ ├─ IconAmazon.tsx
│ │ ├─ IconApple.tsx
│ │ ├─ IconArrow.tsx
│ │ ├─ IconCalender.tsx
│ │ ├─ IconClose.tsx
│ │ ├─ IconCn.tsx
│ │ ├─ IconDown.tsx
│ │ ├─ IconEdit.tsx
│ │ ├─ IconExclam.tsx
│ │ ├─ IconEyeHide.tsx
│ │ ├─ IconEyeShow.tsx
│ │ ├─ IconFab.tsx
│ │ ├─ IconFr.tsx
│ │ ├─ IconGoogle.tsx
│ │ ├─ IconJp.tsx
│ │ ├─ IconKr.tsx
│ │ ├─ IconMs.tsx
│ │ ├─ IconNewsAi.tsx
│ │ ├─ IconNotFound.tsx
│ │ ├─ IconNvidia.tsx
│ │ ├─ IconPlus.tsx
│ │ ├─ IconRefresh.tsx
│ │ ├─ IconSearch.tsx
│ │ ├─ IconTime.tsx
│ │ ├─ IconTranslate.tsx
│ │ ├─ IconTsla.tsx
│ │ ├─ IconUnity.tsx
│ │ ├─ IconUs.tsx
│ │ └─ index.ts
│ ├─ middleware.ts
│ ├─ stores
│ │ ├─ recentSearchStore.ts
│ │ ├─ searchState.ts
│ │ ├─ stockStore.ts
│ │ ├─ useUserStore.ts
│ │ └─ watchListStore.ts
│ ├─ styles
│ │ └─ globals.css
│ ├─ types
│ │ ├─ next-auth.d.ts
│ │ ├─ stockType.ts
│ │ └─ UserInfo.ts
│ └─ utils
│ ├─ cn.ts
│ ├─ formatCurrency.ts
│ ├─ localization
│ │ ├─ client.ts
│ │ ├─ locales
│ │ │ ├─ en
│ │ │ │ ├─ common.json
│ │ │ │ └─ stock.json
│ │ │ └─ ko
│ │ │ ├─ common.json
│ │ │ └─ stock.json
│ │ ├─ server.ts
│ │ └─ settings.ts
│ ├─ rateLimit.ts
│ └─ translate.ts
├─ tailwind.config.ts
└─ tsconfig.json