[圖片上傳失敗...(image-9a1eff-1705383480534)]
嗨,大家好!歡迎來到C-Shopping,這是一場揭開科技面紗的電商之旅。我是C-Shopping開源作者“繼小鵬”,今天將為你介紹一款基于最新技術的開源電商平臺。讓我們一同探索吧!
點擊 這里,http://shop.huanghanlian.com/,即刻踏上C-Shopping 體驗之旅!
項目傳送門:點擊 這里,https://github.com/huanghanzhilian/c-shopping,
如果你覺得有幫助,請給我一個Star,這會給我更大的鼓勵。
項目背景
[圖片上傳失敗...(image-60e155-1705383480534)]
背景:
- 一直以來前端UI框架被固定形式占據(jù)(受限于傳統(tǒng)的UI框架),導致視覺疲勞,在開發(fā)一些高度自定義的項目時,往往力不從心;
- 多設備適配的web優(yōu)秀項目很少,學習和維護成本較高;
- 當項目復雜后,在組件需要調(diào)用多個 api 時會變得復雜起來,比如需要管理多個 loading 和 error 狀態(tài),這會導致產(chǎn)生非常多的 state 聲明,還有請求取消、請求競態(tài)等可能存在的問題也容易被忽略;
- 隨著項目復雜,樣式的開發(fā)與維護變得龐大且臃腫;
意圖:
改進背景中提到的問題。
目的:
打造一個完整的,適合web端的良好生態(tài)。
首先,讓我們了解一下C-Shopping的技術背后。我采用了一系列最前沿的技術,包括Next.js、Tailwind CSS、Headless UI、Redux-Toolkit-RTK Query、JWT和Docker等。這確保了此項目不僅高效,而且具備強大的可擴展性。我們致力于解決傳統(tǒng)電商平臺的一些痛點:不美觀、不適配不同設備、界面單一,等等。C-Shopping通過采用最新的技術和設計理念,為用戶打造了一場全響應式技術開發(fā)體驗。
C-Shopping關注用戶體驗。我們的界面不僅僅美觀,更是響應式設計,讓用戶可以在任何設備上輕松愉悅地購物。個人中心和訂單管理功能也讓你的購物更加個性化和方便。
項目亮點
C-Shopping的亮點之一是我們采用了一系列先進的技術,包括Next.js、Tailwind CSS、Headless UI、Redux-Toolkit-RTK Query等,為用戶提供了極致的性能和體驗。不僅注重美觀,更追求技術上的卓越。
Next.js 驅(qū)動的極速體驗
C-Shopping采用了 Next.js,這不僅意味著網(wǎng)頁加載速度飛快,而且還支持服務端渲染,讓你體驗到前所未有的流暢度。
?? Tailwind CSS 的時尚設計
采用 Tailwind CSS,為 C-Shopping 注入了時尚感。每一次的界面都如同藝術品般精致,讓購物成為一場視覺的盛宴。
?? Headless UI 自由而靈活
C-Shopping 選擇了 Headless UI 風格,讓用戶可以在購物過程中擁有更多自由。不再受限于傳統(tǒng)的UI框架,為你打開了更多定制的大門。
?? JWT 安全無憂
安全至上!采用 JWT 進行用戶身份驗證,為你的購物行為提供了最強有力的保障,讓你可以放心盡情購物。
?? Docker 容器化的完美部署
C-Shopping 擁抱 Docker,使得項目的部署變得前所未有的簡單。容器化技術讓整個項目在不同環(huán)境中都能如魚得水地運行。
?? Redux Toolkit 和 RTK Query 的狀態(tài)管理藝術
C-Shopping 使用 Redux Toolkit 和 RTK Query,讓狀態(tài)管理變得更加輕松愉快。你可以更好地追蹤應用中的數(shù)據(jù)流,確保購物體驗的穩(wěn)定性。
功能演示
現(xiàn)在,讓我們來看看C-Shopping的一些基本功能。從清晰的導航和商品展示,到方便的搜索和購物車功能,每一個細節(jié)都經(jīng)過精心設計,為用戶提供愉悅的購物體驗。
用戶端

管理端

項目結(jié)構(gòu)
??? C-Shopping 項目結(jié)構(gòu):
?? c-shopping
├── ?? app
│ ├── ?? main
│ │ ├── ?? client-layout
│ │ ├── ?? empty-layout
│ │ ├── ?? admin
│ │ ├── ?? layout.js
│ │ └── ?? profile
│ ├── ?? StoreProvider.js
│ ├── ?? api
│ │ ├── ?? auth
│ │ ├── ?? banner
│ │ ├── ?? category
│ │ ├── ?? details
│ │ ├── ?? order
│ │ ├── ?? products
│ │ ├── ?? reviews
│ │ ├── ?? slider
│ │ ├── ?? upload
│ │ └── ?? user
│ ├── ?? layout.js
│ └── ?? not-found.js
├── ?? commitlint.config.js
├── ?? components
├── ?? docker-compose.yml
├── ?? helpers
│ ├── ?? api
│ ├── ?? auth.js
│ ├── ?? db-repo
│ ├── ?? db.js
│ ├── ?? getQuery.js
│ └── ?? index.js
├── ?? hooks
├── ?? jsconfig.json
├── ?? models
├── ?? next.config.js
├── ?? package-lock.json
├── ?? package.json
├── ?? postcss.config.js
├── ?? public
├── ?? store
├── ?? styles
├── ?? tailwind.config.js
└── ?? utils
主要結(jié)構(gòu)解釋:
-
?? app: 應用程序的主要代碼
- ?? main: 主要應用程序組件
- ?? client-layout: 用戶端通用布局頁面
- ?? empty-layout: 通用空白布局頁面
- ?? admin: 管理端頁面
- ?? layout.js: 主要布局配置
- ?? profile: 用戶個人資料頁面
- ?? StoreProvider.js: 全局狀態(tài)管理提供者
- ?? api: API 請求相關路由
- ?? auth: 用戶認證 API
- ?? banner: 廣告橫幅 API
- ?? category: 商品分類 API
- ...
- ?? main: 主要應用程序組件
?? components: 可復用的 React 組件
-
?? helpers: 輔助函數(shù)和工具
- ?? api: API 請求相關的輔助函數(shù)
- ?? auth.js: 用戶認證相關的輔助函數(shù)
- ...
?? hooks: 自定義 React hooks
?? models: 數(shù)據(jù)模型定義
?? public: 靜態(tài)資源,如圖片、字體等
-
?? store: Redux 狀態(tài)管理相關配置
- ?? services: RTK Query
- ?? slices: Redux Toolkit
?? styles: 樣式文件
?? utils: 通用工具
...
這個結(jié)構(gòu)旨在使項目組織有序,易于維護和擴展。每個部分都按照功能和職責進行劃分,使團隊成員更容易理解和協(xié)作。
部署與使用
開發(fā)環(huán)境
-
通過在終端運行以下命令克隆或下載存儲庫:
git clone https://github.com/huanghanzhilian/c-shopping.git -
使用npm或yarn安裝項目依賴項:
npm installor
yarn -
修改.env的文件,在項目根目錄,定義所需的環(huán)境變量。這個步驟是重要的(圖片上傳OSS):
NEXT_PUBLIC_ALI_REGION=<your ali endpoint> NEXT_PUBLIC_ALI_BUCKET_NAME=<your ali bucket name> NEXT_PUBLIC_ALI_ACCESS_KEY=<your ali access key> NEXT_PUBLIC_ALI_SECRET_KEY=<your ali secret key> NEXT_PUBLIC_ALI_ACS_RAM_NAME=<your ali acs:ram name> NEXT_PUBLIC_ALI_FILES_PATH=<your ali files pathname> 在本地機器上安裝MongoDB
-
運行項目
npm run dev -
注冊一個賬戶
http://localhost:3000/register -
創(chuàng)建帳戶后,在數(shù)據(jù)庫中找到您的帳戶,并將root字段修改為true。role字段修改為admin,這將授予您訪問所有管理儀表板功能的權限
http://localhost:3000/admin -
操作MongoDB,創(chuàng)建根分類
mongouse choiceshopdb.categories.insert({ "name" : "精選好物", "slug" : "choiceshop", "image" : "http://huanghanzhilian-test.oss-cn-beijing.aliyuncs.com/shop/upload/image//icons/zHle_bmdM_dhu2K938MMM.webp", "colors" : { "start" : "#EF394E", "end" : "#EF3F55" }, "level" : 0 })
docker 部署
項目根目錄已經(jīng)配置好docker compose,在安裝docker環(huán)境后,直接運行部署
docker compose up -d --build
許可證
MIT License
Copyright (c) 2024 Jipeng Huang
呼吁行動
C-Shopping是一個開源項目,歡迎更多的開發(fā)者加入我們的社區(qū)。你可以在我們的GitHub倉庫中找到項目源碼,提出建議或者一同參與開發(fā)。
如果你對項目感興趣,歡迎加入我們的社區(qū),一同為項目添磚加瓦。