Skip to content

jiangzhikj/zq-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ZQ Platform

่ฎธๅฏ่ฏ Python FastAPI Vue TypeScript

ไธ€ไธชๅŸบไบŽ FastAPI + Vue 3 ็š„ๅ…จๆ ˆไผไธš็บงไฝŽไปฃ็ /้›ถไปฃ็ ๅผ€ๅ‘ๅนณๅฐ

English | ็ฎ€ไฝ“ไธญๆ–‡

๐ŸŒ ็›ธๅ…ณ้“พๆŽฅ


๐Ÿ“– ้กน็›ฎ็ฎ€ไป‹

ZQ Platform ๆ˜ฏไธ€ไธชๅŠŸ่ƒฝๅฎŒๅ–„็š„ๅ…จๆ ˆไผไธš็บงๅผ€ๅ‘ๅนณๅฐ๏ผŒ้‡‡็”จๅ‰ๅŽ็ซฏๅˆ†็ฆปๆžถๆž„ใ€‚ๅŽ็ซฏๅŸบไบŽ FastAPI ๅผ‚ๆญฅๆก†ๆžถ๏ผŒๅ‰็ซฏๅŸบไบŽ Vue 3 + Element Plus + Vben Admin 5.x ๆž„ๅปบใ€‚

ๅนณๅฐ้›†ๆˆไบ† RBAC ๆƒ้™็ฎก็†ใ€็ป„็ป‡ๆžถๆž„็ฎก็†ใ€ๅœจ็บฟ่กจๅ•/้กต้ข่ฎพ่ฎก๏ผˆ้›ถไปฃ็ ๏ผ‰ใ€ๅณๆ—ถ้€š่ฎฏใ€AI ๅฏน่ฏใ€็ฌฌไธ‰ๆ–น็™ปๅฝ•ไธŽ็ป„็ป‡ๅŒๆญฅใ€็ณป็ปŸ็›‘ๆŽงใ€ๅฎšๆ—ถไปปๅŠกใ€ๆ•ฐๆฎๆบ็ฎก็†ใ€ไปฃ็ ็”Ÿๆˆ็ญ‰ไธฐๅฏŒ็š„ไผไธš็บงๅŠŸ่ƒฝๆจกๅ—๏ผŒๅฏๅคงๅน…ๅŠ ้€Ÿไผไธš็บงๅบ”็”จๅผ€ๅ‘ใ€‚

๐ŸŽฏ ้›ถไปฃ็ ่ƒฝๅŠ› โ€” ๅฎŒๅ…จๅผ€ๆบใ€ๅ…่ดนใ€ๆ— ้™ๅˆถ

ZQ Platform ็š„้›ถไปฃ็ ๏ผˆๅœจ็บฟๅผ€ๅ‘๏ผ‰ๆจกๅ—ๆ˜ฏๅ…ถๆ ธๅฟƒไบฎ็‚นไน‹ไธ€๏ผŒไธŽๅธ‚้ขไธŠไธปๆต็š„้›ถไปฃ็ /ไฝŽไปฃ็ ๅนณๅฐ็›ธๆฏ”๏ผŒๆ‹ฅๆœ‰ ๅฎŒๅ…จๅผ€ๆบใ€ๅฎŒๅ…จๅ…่ดนใ€ๅฎŒๅ…จๆ— ้™ๅˆถ ็š„ๆ˜พ่‘—ไผ˜ๅŠฟใ€‚

ไธŽๅŒ็ฑปๅนณๅฐๅฏนๆฏ”

ๅฏนๆฏ”็ปดๅบฆ ZQ Platform ้’‰้’‰ๅฎœๆญ ็™พๅบฆ็ˆฑ้€Ÿๆญ NocoBase
ๅผ€ๆบๅ่ฎฎ ๅฎŒๅ…จๅผ€ๆบ โŒ ้—ญๆบๅ•†ไธš่ฝฏไปถ โŒ ้—ญๆบๅ•†ไธš่ฝฏไปถ โš ๏ธ AGPL 3.0๏ผˆไผ ๆŸ“ๆ€งๅ่ฎฎ๏ผŒๅ•†็”จๅ—้™๏ผ‰
ๆ˜ฏๅฆๅ…่ดน โœ… ๅฎŒๅ…จๅ…่ดน๏ผŒๆ— ไปปไฝ•้š่—่ดน็”จ โŒ ๆŒ‰็”จๆˆท/่กจๅ•/ๆต็จ‹ๆ•ฐๆ”ถ่ดน โŒ ๆŒ‰็‰ˆๆœฌๆ”ถ่ดน๏ผŒๆœ‰ๅŠŸ่ƒฝ้™ๅˆถ โš ๏ธ ็คพๅŒบ็‰ˆๅŠŸ่ƒฝๅ—้™๏ผŒไผไธš็‰ˆๆ”ถ่ดน
็”จๆˆทๆ•ฐ้™ๅˆถ โœ… ๆ— ้™ๅˆถ โŒ ๆŒ‰ๅฅ—้ค้™ๅˆถ็”จๆˆทๆ•ฐ โŒ ๆŒ‰็‰ˆๆœฌ้™ๅˆถ็”จๆˆทๆ•ฐ โš ๏ธ ็คพๅŒบ็‰ˆๆœ‰็”จๆˆท้™ๅˆถ
้ƒจ็ฝฒๆ–นๅผ โœ… ็งๆœ‰ๅŒ–้ƒจ็ฝฒ๏ผŒๆ•ฐๆฎๅฎŒๅ…จ่‡ชไธปๅฏๆŽง โš ๏ธ SaaSไธบไธป๏ผŒ็งๆœ‰ๅŒ–ๆˆๆœฌๆž้ซ˜ โš ๏ธ SaaSไธบไธป๏ผŒ็งๆœ‰ๅŒ–้œ€ไผไธš็‰ˆ โœ… ๆ”ฏๆŒ็งๆœ‰ๅŒ–้ƒจ็ฝฒ
ไบŒๆฌกๅผ€ๅ‘ โœ… ๆ— ้™ๅˆถ๏ผŒๅฏไปปๆ„ไฟฎๆ”นๆบ็  โŒ ไธๆ”ฏๆŒ โŒ ๆœ‰้™ๆ”ฏๆŒ โš ๏ธ AGPLๅ่ฎฎ้™ๅˆถๅ•†ไธšไบŒๆฌกๅผ€ๅ‘
ๅ•†็”จๆŽˆๆƒ โœ… Apache 2.0 ๅ่ฎฎ + ้™„ๅŠ ๆกๆฌพ๏ผŒๅฏ่‡ช็”ฑๅ•†็”จ โŒ ้œ€่ดญไนฐๅ•†ไธš่ฎธๅฏ โŒ ้œ€่ดญไนฐๅ•†ไธš่ฎธๅฏ โš ๏ธ AGPLๅ•†็”จ้œ€่ดญไนฐๆŽˆๆƒ
ๆ•ฐๆฎๅบ“ๆ”ฏๆŒ PostgreSQL / MySQL ไป…ๆ”ฏๆŒไบ‘ๆ•ฐๆฎๅบ“ ไป…ๆ”ฏๆŒไบ‘ๆ•ฐๆฎๅบ“ PostgreSQL
ๅ‰็ซฏๆŠ€ๆœฏ Vue 3 + Element Plus๏ผˆไธปๆตๆŠ€ๆœฏๆ ˆ๏ผ‰ ๅฐ้—ญๆŠ€ๆœฏๆ ˆ๏ผŒๆ— ๆณ•่‡ชๅฎšไน‰ ๅฐ้—ญๆŠ€ๆœฏๆ ˆ React + Ant Design
ๅŽ็ซฏๆŠ€ๆœฏ Python FastAPI๏ผˆๅผ‚ๆญฅ้ซ˜ๆ€ง่ƒฝ๏ผ‰ ๅฐ้—ญ ๅฐ้—ญ Node.js + Koa

้›ถไปฃ็ ๆ ธๅฟƒๅŠŸ่ƒฝ

๐Ÿ“ ๅœจ็บฟ่กจๅ•่ฎพ่ฎกๅ™จ

  • ๆ‹–ๆ‹ฝๅผ่ฎพ่ฎก๏ผš็›ด่ง‚็š„ๆ‹–ๆ‹ฝๆ“ไฝœ๏ผŒๆ— ้œ€็ผ–ๅ†™ไปปไฝ•ไปฃ็ ๅณๅฏๆž„ๅปบๅคๆ‚่กจๅ•
  • ไธฐๅฏŒ็ป„ไปถๅบ“๏ผšๆ–‡ๆœฌ่พ“ๅ…ฅใ€ๆ•ฐๅญ—ใ€ๆ—ฅๆœŸใ€ไธ‹ๆ‹‰้€‰ๆ‹ฉใ€็บง่”้€‰ๆ‹ฉใ€ๆ–‡ไปถไธŠไผ ใ€ๅฏŒๆ–‡ๆœฌใ€ๅญ่กจๅ•็ญ‰ 30+ ็ป„ไปถ
  • ๅคๆ‚ๅธƒๅฑ€๏ผšๆ”ฏๆŒๅˆ†ๆ ใ€ๅˆ†็ป„ใ€่กจๆ ผๅธƒๅฑ€ใ€ๆ ‡็ญพ้กต็ญ‰ๅคๆ‚้กต้ขๅธƒๅฑ€
  • ๆกไปถ้€ป่พ‘๏ผšๆ”ฏๆŒๅญ—ๆฎตๆ˜พ้šๆกไปถใ€ๆ ก้ชŒ่ง„ๅˆ™ใ€่”ๅŠจ้€ป่พ‘้…็ฝฎ
  • ็งปๅŠจ็ซฏ้€‚้…๏ผš่‡ชๅŠจ้€‚้… PC ็ซฏไธŽ็งปๅŠจ็ซฏๅฑ•็คบ

๐Ÿ“„ ๅœจ็บฟ้กต้ข่ฎพ่ฎกๅ™จ

  • ๅฏ่ง†ๅŒ–้กต้ข็ผ–ๆŽ’๏ผšๅฐ†่กจๅ•ใ€ๅ›พ่กจใ€ๆ•ฐๆฎ่กจๆ ผ็ญ‰็ป„ไปถ่‡ช็”ฑ็ป„ๅˆๆˆๅฎŒๆ•ด็š„ไธšๅŠก้กต้ข
  • ๆ•ฐๆฎ็ป‘ๅฎš๏ผšๆ”ฏๆŒๆ•ฐๆฎๆบ็ป‘ๅฎšใ€API ๅฏนๆŽฅ๏ผŒๅฎž็Žฐ้กต้ขไธŽๅŽ็ซฏๆ•ฐๆฎ็š„ๅฎžๆ—ถไบคไบ’
  • ๆƒ้™้›†ๆˆ๏ผš้กต้ข็บงๅˆซ็š„่ฎฟ้—ฎๆƒ้™ๆŽงๅˆถ๏ผŒไธŽ RBAC ๆƒ้™ไฝ“็ณปๆ— ็ผ้›†ๆˆ

๐Ÿ“Š ไปช่กจ็›˜่ฎพ่ฎกๅ™จ

  • ไธฐๅฏŒๅ›พ่กจ็ป„ไปถ๏ผšๆ”ฏๆŒๆŠ˜็บฟๅ›พใ€ๆŸฑ็Šถๅ›พใ€้ฅผๅ›พใ€้›ท่พพๅ›พใ€ๆผๆ–—ๅ›พใ€็ƒญๅŠ›ๅ›พใ€ๆก‘ๅŸบๅ›พใ€K ็บฟๅ›พ็ญ‰ 20+ ๅ›พ่กจ็ฑปๅž‹
  • ไธšๅŠก็ป„ไปถ๏ผšๅ…ฌๅ‘Šๅˆ—่กจใ€ๅพ…ๅŠžไบ‹้กนใ€ๅฟซๆทๅ…ฅๅฃใ€ๆŽ’่กŒๅˆ—่กจใ€ๆœๅŠกๅ™จ็›‘ๆŽงใ€ๅคฉๆฐ”็ป„ไปถ็ญ‰ไธšๅŠก็ป„ไปถ
  • ๆ•ฐๆฎ่ฟ‡ๆปค๏ผšๆ”ฏๆŒๆ—ฅๆœŸ็ญ›้€‰ใ€่พ“ๅ…ฅ็ญ›้€‰็ญ‰ไบคไบ’ๅผๆ•ฐๆฎ่ฟ‡ๆปค
  • ่‡ช็”ฑๅธƒๅฑ€๏ผšๆ‹–ๆ‹ฝๅผ่‡ช็”ฑๅธƒๅฑ€๏ผŒๆ”ฏๆŒ่‡ชๅฎšไน‰ๅฐบๅฏธๅ’Œไฝ็ฝฎ

๐Ÿ”— ๆ•ฐๆฎ็ฎก็†

  • ๆ•ฐๆฎๆบ็ฎก็†๏ผšๆ”ฏๆŒๆŽฅๅ…ฅๅค–้ƒจๆ•ฐๆฎๅบ“๏ผˆPostgreSQL / MySQL / SQL Server๏ผ‰ไฝœไธบๆ•ฐๆฎๆบ
  • ่กจๅ•ๆ•ฐๆฎ็ฎก็†๏ผš่‡ชๅŠจ็”Ÿๆˆ่กจๅ•ๆ•ฐๆฎ็š„ๅˆ—่กจใ€่ฏฆๆƒ…ใ€็ผ–่พ‘ๅ’Œๅˆ ้™คๅŠŸ่ƒฝ
  • ๆ•ฐๆฎๅฏผๅ…ฅๅฏผๅ‡บ๏ผšๆ”ฏๆŒ Excel ๆ ผๅผ็š„ๆ•ฐๆฎๅฏผๅ…ฅไธŽๅฏผๅ‡บ

้€‚็”จๅœบๆ™ฏ

  • ไผไธšๅ†…้ƒจ็ฎก็†็ณป็ปŸ๏ผšOAใ€CRMใ€ERPใ€่ฟ›้”€ๅญ˜ใ€้กน็›ฎ็ฎก็†็ญ‰
  • ไธšๅŠกๆต็จ‹ๆ•ฐๅญ—ๅŒ–๏ผšๅฎกๆ‰นๆต็จ‹ใ€ๅทฅๅ•็ณป็ปŸใ€ๆŠฅ่กจ็ณป็ปŸ็ญ‰
  • ๅฟซ้€ŸๅŽŸๅž‹ๅผ€ๅ‘๏ผšไธšๅŠก้œ€ๆฑ‚ๅฟซ้€Ÿ้ชŒ่ฏไธŽ่ฟญไปฃ
  • SaaS ๅนณๅฐๆž„ๅปบ๏ผšๅคš็งŸๆˆทๅบ”็”จๅผ€ๅ‘
  • ๆ•ฐๆฎๆ”ถ้›†ไธŽๅˆ†ๆž๏ผš่ฐƒๆŸฅ้—ฎๅทใ€ๆ•ฐๆฎ้‡‡้›†ใ€็ปŸ่ฎกๅˆ†ๆž

๐Ÿ— ๆŠ€ๆœฏๆ ˆ

ๅŽ็ซฏ (Backend)

ๆŠ€ๆœฏ ่ฏดๆ˜Ž
FastAPI Web ๆก†ๆžถ (0.121+)
SQLAlchemy 2.0 ๅผ‚ๆญฅ ORM
Alembic ๆ•ฐๆฎๅบ“่ฟ็งป
PostgreSQL 16+ / MySQL ๆ•ฐๆฎๅบ“
Redis ็ผ“ๅญ˜ไธŽๆถˆๆฏ
APScheduler 4.x ๅฎšๆ—ถไปปๅŠก่ฐƒๅบฆ
MinIO / OSS / Azure Blob ๆ–‡ไปถๅญ˜ๅ‚จ
Qdrant ๅ‘้‡ๆ•ฐๆฎๅบ“ (RAG)
OpenAI / Anthropic / DashScope AI ๅคงๆจกๅž‹้›†ๆˆ
WebSocket ๅฎžๆ—ถ้€šไฟก

ๅ‰็ซฏ (Frontend)

ๆŠ€ๆœฏ ่ฏดๆ˜Ž
Vue 3 ๅ‰็ซฏๆก†ๆžถ
TypeScript ็ฑปๅž‹ๅฎ‰ๅ…จ
Element Plus UI ็ป„ไปถๅบ“
Vben Admin 5.x ๅŽๅฐ็ฎก็†ๆก†ๆžถ
Vite ๆž„ๅปบๅทฅๅ…ท
Pinia ็Šถๆ€็ฎก็†
Vue Router ่ทฏ็”ฑ็ฎก็†
i18n ๅ›ฝ้™…ๅŒ– (zh-CN/en-US/zh-TW)
ECharts ๅ›พ่กจๅฏ่ง†ๅŒ–
Tiptap ๅฏŒๆ–‡ๆœฌ็ผ–่พ‘ๅ™จ
CodeMirror ไปฃ็ ็ผ–่พ‘ๅ™จ

โœจ ๆ ธๅฟƒ็‰นๆ€ง

๐Ÿ” ็”จๆˆทไธŽๆƒ้™

  • ็”จๆˆท็ฎก็†๏ผšๅฎŒๆ•ด็š„็”จๆˆท CRUDใ€ๅคดๅƒไธŠไผ ใ€ๅฏ†็ ็ญ–็•ฅ
  • ่ง’่‰ฒ็ฎก็†๏ผšๅŸบไบŽ RBAC ็š„่ง’่‰ฒๆƒ้™ๅˆ†้…
  • ่œๅ•็ฎก็†๏ผšๅŠจๆ€่œๅ•้…็ฝฎไธŽๆƒ้™ๆŽงๅˆถ
  • ้ƒจ้—จ็ฎก็†๏ผšๆ ‘ๅฝข็ป„็ป‡ๆžถๆž„็ฎก็†
  • ๅฒ—ไฝ็ฎก็†๏ผšๅฒ—ไฝๅ…ณ่”ไธŽไบบๅ‘˜็ฎก็†
  • ่ต„ๆบๆƒ้™๏ผš่ต„ๆบ็บงๅˆซ็š„็ป†็ฒ’ๅบฆๅญ—ๆฎตๆƒ้™ๆŽงๅˆถ
  • ๆ•ฐๆฎๆƒ้™๏ผšๅŸบไบŽ้ƒจ้—จ/็”จๆˆท็š„ๆ•ฐๆฎ่Œƒๅ›ด้š”็ฆป

๐Ÿข ็ป„็ป‡็ฎก็†

  • ็ป„็ป‡ๆžถๆž„๏ผšๅฏ่ง†ๅŒ–็ป„็ป‡ๆžถๆž„ๅ›พ
  • ้ƒจ้—จๆ ‘๏ผšๆ— ้™็บง้ƒจ้—จๅฑ‚็บง็ฎก็†
  • ไผไธšๅŒๆญฅ๏ผšๆ”ฏๆŒ้’‰้’‰ใ€้ฃžไนฆใ€ไผไธšๅพฎไฟก็ป„็ป‡ๆžถๆž„ไธŽ็”จๆˆทๅŒๆญฅ

๐Ÿ”— ็ฌฌไธ‰ๆ–น้›†ๆˆ

  • OAuth ็™ปๅฝ•๏ผšๆ”ฏๆŒ Giteeใ€GitHubใ€QQใ€Googleใ€ๅพฎไฟกใ€Microsoftใ€้’‰้’‰ใ€้ฃžไนฆใ€ไผไธšๅพฎไฟก
  • ๆถˆๆฏ้€š็Ÿฅ๏ผš้‚ฎไปถ (SMTP)ใ€็Ÿญไฟก (้˜ฟ้‡Œไบ‘/่…พ่ฎฏไบ‘)ใ€้’‰้’‰ๆœบๅ™จไบบใ€้ฃžไนฆๆœบๅ™จไบบใ€ไผไธšๅพฎไฟกๆœบๅ™จไบบใ€ๅพฎไฟกๅ…ฌไผ—ๅท
  • ๆ–‡ไปถๅญ˜ๅ‚จ๏ผšๆ”ฏๆŒๆœฌๅœฐๅญ˜ๅ‚จใ€MinIOใ€้˜ฟ้‡Œไบ‘ OSSใ€Azure Blob Storage

๐Ÿ“ฑ ้›ถไปฃ็ ่ƒฝๅŠ›

  • ๅœจ็บฟ่กจๅ•่ฎพ่ฎก๏ผšๆ‹–ๆ‹ฝๅผ่กจๅ•ๆž„ๅปบๅ™จ๏ผŒๆ”ฏๆŒๅคๆ‚่กจๅ•่ฎพ่ฎก
  • ่กจๅ•ๆ•ฐๆฎ็ฎก็†๏ผš่กจๅ•ๆ•ฐๆฎ็š„ CRUD ไธŽๅŠจๆ€ๆŸฅ่ฏข
  • ๅœจ็บฟ้กต้ข่ฎพ่ฎก๏ผšๅฏ่ง†ๅŒ–้กต้ข็ผ–่พ‘ๅ™จ
  • ไปช่กจ็›˜่ฎพ่ฎก๏ผšไปช่กจ็›˜่ฎพ่ฎกๅ™จ๏ผŒๆ”ฏๆŒไธฐๅฏŒๅ›พ่กจ็ป„ไปถ
  • ไปฃ็ ็”Ÿๆˆๅ™จ๏ผšๆ”ฏๆŒๅคš็ง็ผ–็ ๆจกๅผ (ๆ—ฅๆœŸๅบๅˆ—ใ€ๆตๆฐดๅท็ญ‰)

๐Ÿ’ฌ ๅณๆ—ถ้€š่ฎฏ

  • ๅฎžๆ—ถ่Šๅคฉ๏ผšๅŸบไบŽ WebSocket ็š„ๅ•่ŠไธŽ็พค่Š
  • ๆถˆๆฏ็ฎก็†๏ผšๆœช่ฏป่ฎกๆ•ฐใ€ๆถˆๆฏๅ…ๆ‰“ๆ‰ฐใ€็ฝฎ้กถไผš่ฏ
  • ๆถˆๆฏ้€š็Ÿฅ๏ผš็ณป็ปŸ้€š็ŸฅไธŽๅ…ฌๅ‘Š็ฎก็†

๐Ÿค– AI ่ƒฝๅŠ›

  • AI ๅฏน่ฏ๏ผš้›†ๆˆ OpenAIใ€Anthropic (Claude)ใ€DashScope (้€šไน‰ๅƒ้—ฎ) ็ญ‰ๅคš็งๅคงๆจกๅž‹
  • ็Ÿฅ่ฏ†ๅบ“๏ผšๅŸบไบŽ Qdrant ๅ‘้‡ๆ•ฐๆฎๅบ“็š„ RAG ๆฃ€็ดขๅขžๅผบ็”Ÿๆˆ

โš™๏ธ ็ณป็ปŸๅทฅๅ…ท

  • ๆ•ฐๆฎๅญ—ๅ…ธ๏ผšไธšๅŠกๅญ—ๅ…ธ็ฎก็† (ๆ”ฏๆŒๆ ‘ๅฝข/ๅˆ—่กจ)
  • ็ณป็ปŸ้…็ฝฎ๏ผšๅŠจๆ€็ณป็ปŸๅ‚ๆ•ฐ้…็ฝฎ
  • UI ้…็ฝฎ๏ผšๅ‰็ซฏ็•Œ้ขๅๅฅฝ่ฎพ็ฝฎ (ๅฏไปŽๅŽ็ซฏๅŠจๆ€ๅŠ ่ฝฝ)
  • ๅฎšๆ—ถไปปๅŠก๏ผšๅŸบไบŽ APScheduler ็š„ไปปๅŠก่ฐƒๅบฆ็ฎก็†
  • ๆ–‡ไปถ็ฎก็†๏ผšๆ–‡ไปถไธŠไผ ใ€้ข„่งˆใ€ๅˆ†็‰‡ไธŠไผ 
  • ๆ•ฐๆฎๆบ็ฎก็†๏ผšๅค–้ƒจๆ•ฐๆฎๅบ“่ฟžๆŽฅ็ฎก็†
  • API ไปค็‰Œ๏ผšAPI ่ฎฟ้—ฎไปค็‰Œ็ฎก็†
  • ๅŒบๅŸŸ็ฎก็†๏ผš็œๅธ‚ๅŒบๅœฐ็†ๆ•ฐๆฎ็ฎก็†

๐ŸŒ ๅ›ฝ้™…ๅŒ–

  • ๆ”ฏๆŒไธญๆ–‡็ฎ€ไฝ“ใ€ไธญๆ–‡็นไฝ“ใ€่‹ฑๆ–‡
  • ๅ‰็ซฏ UI ็•Œ้ขๅฎŒๅ…จๅ›ฝ้™…ๅŒ–
  • ๅŽ็ซฏ้”™่ฏฏๆถˆๆฏๅ›ฝ้™…ๅŒ–ๆ”ฏๆŒ

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

ๅ‰็ฝฎๆกไปถ

  • Python 3.12+
  • Node.js 20.10+
  • pnpm 9.12+
  • PostgreSQL 16+
  • Redis

ๅŽ็ซฏๅฏๅŠจ

cd backend

# ๅˆ›ๅปบ่™šๆ‹Ÿ็Žฏๅขƒ
python -m venv venv
source venv/bin/activate  # Linux/Mac

# ๅฎ‰่ฃ…ไพ่ต–
pip install -r requirements.txt

# ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cp env/example.env env/dev.env
# ็ผ–่พ‘ env/dev.env ้…็ฝฎๆ•ฐๆฎๅบ“่ฟžๆŽฅ็ญ‰ไฟกๆฏ

# ่ฟ่กŒๆ•ฐๆฎๅบ“่ฟ็งป
alembic upgrade head

# ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
uvicorn main:app --reload --port 8000

ๅ‰็ซฏๅฏๅŠจ

cd web

# ๅฎ‰่ฃ…ไพ่ต–
pnpm install

# ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ๏ผˆ้ป˜่ฎคไฝฟ็”จ Element Plus ็‰ˆๆœฌ๏ผ‰
pnpm dev

่ฎฟ้—ฎ http://localhost:5777 ๅณๅฏ่ฟ›ๅ…ฅ็ณป็ปŸใ€‚

๐Ÿณ Docker Compose ไธ€้”ฎ้ƒจ็ฝฒ

้กน็›ฎๆไพ›ไบ†ๅฎŒๆ•ด็š„ Docker Compose ้ƒจ็ฝฒๆ–นๆกˆ๏ผŒไฝไบŽ docker/ ็›ฎๅฝ•ไธ‹๏ผŒๅฏไธ€้”ฎๅฏๅŠจ PostgreSQLใ€Redisใ€ๅŽ็ซฏๅ’Œๅ‰็ซฏๆœๅŠกใ€‚

ๅ‰็ฝฎๆกไปถ

้ƒจ็ฝฒๆญฅ้ชค

# 1. ่ฟ›ๅ…ฅ้กน็›ฎๆ น็›ฎๅฝ•
cd zq-platform

# 2. ๏ผˆๅฏ้€‰๏ผ‰ไฟฎๆ”น็Žฏๅขƒๅ˜้‡้…็ฝฎ
# ็ผ–่พ‘ .env ๆ–‡ไปถ๏ผŒ็”Ÿไบง็Žฏๅขƒ่ฏทๅŠกๅฟ…ไฟฎๆ”น JWT_SECRET_KEYใ€DB_PASSWORDใ€REDIS_PASSWORD
vim .env

# 3. ๆž„ๅปบๅนถๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก
docker compose up -d

# 4. ๆŸฅ็œ‹ๅฏๅŠจๆ—ฅๅฟ—
docker compose logs -f

# 5. ่ฎฟ้—ฎ็ณป็ปŸ
# ๆต่งˆๅ™จๆ‰“ๅผ€ http://localhost

ๆœๅŠกๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Browser   โ”‚ โ”€โ”€โ”€โ–ถ โ”‚     Nginx (Port 80)               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ”‚  โ”œโ”€ ้™ๆ€ๆ–‡ไปถ โ†’ Vue SPA            โ”‚
                     โ”‚  โ”œโ”€ /basic-api/* โ†’ backend:8000   โ”‚
                     โ”‚  โ””โ”€ /ws/*        โ†’ backend:8000   โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚
         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
         โ–ผ                      โ–ผ                       โ–ผ
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ PostgreSQL  โ”‚       โ”‚    Redis     โ”‚       โ”‚   Backend    โ”‚
  โ”‚   :5432     โ”‚       โ”‚   :6379      โ”‚       โ”‚   :8000      โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆœๅŠก่ฏดๆ˜Ž

ๆœๅŠกๅ ้•œๅƒ ็ซฏๅฃ ่ฏดๆ˜Ž
postgres postgres:16-alpine 5432 ๆ•ฐๆฎๅบ“
redis redis:7-alpine 6379 ็ผ“ๅญ˜๏ผˆAOF ๆŒไน…ๅŒ–๏ผ‰
backend ่‡ชๅปบ 8000 FastAPI๏ผˆUvicorn 4 workers๏ผ‰
web ่‡ชๅปบ 80 Nginx ๆœๅŠกๅ‰็ซฏ + ไปฃ็† API/WebSocket

ๅธธ็”จๅ‘ฝไปค

# ๆž„ๅปบๅนถๅฏๅŠจ
docker compose up -d

# ๆŸฅ็œ‹ๆ—ฅๅฟ—
docker compose logs -f

# ๅœๆญขๆœๅŠก
docker compose down

# ๅฎŒๅ…จๆธ…็†๏ผˆไผšๅˆ ้™คๆ•ฐๆฎๅท๏ผŒ้ฆ–ๆฌก้ƒจ็ฝฒๆ—ถไฝฟ็”จ๏ผ‰
docker compose down -v

# ไป…้‡ๅปบๆŸไธชๆœๅŠก๏ผˆไฟฎๆ”นไปฃ็ ๅŽ๏ผ‰
docker compose build backend
docker compose up -d backend

# ๆŸฅ็œ‹ๆœๅŠก็Šถๆ€
docker compose ps

ๅฎ‰ๅ…จๆณจๆ„ไบ‹้กน

  1. ็”Ÿไบง้ƒจ็ฝฒๅ‰ๅŠกๅฟ…ไฟฎๆ”น .env ไธญ็š„ๅฏ†้’ฅ๏ผš
    • JWT_SECRET_KEY โ€” JWT ็ญพๅๅฏ†้’ฅ
    • DB_PASSWORD โ€” ๆ•ฐๆฎๅบ“ๅฏ†็ 
    • REDIS_PASSWORD โ€” Redis ๅฏ†็ 
  2. ้ป˜่ฎคไฝฟ็”จ PostgreSQL๏ผŒๅฆ‚้œ€ๅˆ‡ๆข MySQL ่ฏทไฟฎๆ”น docker-compose.yml ไธญ็š„ๆœๅŠก้…็ฝฎ
  3. ๆ–‡ไปถๅญ˜ๅ‚จ้ป˜่ฎคไฝฟ็”จ local ๆจกๅผ๏ผŒๅฆ‚้œ€ MinIO/OSS ๅฏๅœจ .env ไธญ้…็ฝฎ

๐Ÿ› ้กน็›ฎ็ป“ๆž„

zq-platform/
โ”œโ”€โ”€ backend/                          # ๅŽ็ซฏ Python ๆœๅŠก
โ”‚   โ”œโ”€โ”€ app/                          # ๆ ธๅฟƒๅบ”็”จๆจกๅ—
โ”‚   โ”‚   โ”œโ”€โ”€ base_model.py            # ๅŸบ็ก€ๆจกๅž‹
โ”‚   โ”‚   โ”œโ”€โ”€ base_schema.py           # ้€š็”จ Schema
โ”‚   โ”‚   โ”œโ”€โ”€ base_service.py          # ๅŸบ็ก€ๆœๅŠก
โ”‚   โ”‚   โ”œโ”€โ”€ config.py                # ็ณป็ปŸ้…็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ database.py              # ๆ•ฐๆฎๅบ“่ฟžๆŽฅ
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ core/                         # ๆ ธๅฟƒไธšๅŠกๆจกๅ—
โ”‚   โ”‚   โ”œโ”€โ”€ auth/                    # ่ฎค่ฏๆจกๅ—
โ”‚   โ”‚   โ”œโ”€โ”€ user/                    # ็”จๆˆท็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ role/                    # ่ง’่‰ฒ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ menu/                    # ่œๅ•็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ dept/                    # ้ƒจ้—จ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ permission/              # ๆƒ้™็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ chat/                    # ๅณๆ—ถ้€š่ฎฏ
โ”‚   โ”‚   โ”œโ”€โ”€ file_manager/            # ๆ–‡ไปถ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ message/                 # ๆถˆๆฏ้€š็Ÿฅ
โ”‚   โ”‚   โ”œโ”€โ”€ oauth/                   # ็ฌฌไธ‰ๆ–น็™ปๅฝ•
โ”‚   โ”‚   โ”œโ”€โ”€ code_generator/          # ไปฃ็ ็”Ÿๆˆๅ™จ
โ”‚   โ”‚   โ”œโ”€โ”€ data_source/             # ๆ•ฐๆฎๆบ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ system_config/           # ็ณป็ปŸ้…็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ ui_config/               # UI ้…็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ server_monitor/          # ๆœๅŠก็›‘ๆŽง
โ”‚   โ”‚   โ”œโ”€โ”€ redis_monitor/           # Redis ็›‘ๆŽง
โ”‚   โ”‚   โ”œโ”€โ”€ database_monitor/        # ๆ•ฐๆฎๅบ“็›‘ๆŽง
โ”‚   โ”‚   โ”œโ”€โ”€ redis_manager/           # Redis ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ database_manager/        # ๆ•ฐๆฎๅบ“็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ dingtalk_sync/           # ้’‰้’‰ๅŒๆญฅ
โ”‚   โ”‚   โ”œโ”€โ”€ feishu_sync/             # ้ฃžไนฆๅŒๆญฅ
โ”‚   โ”‚   โ”œโ”€โ”€ wecom_sync/              # ไผไธšๅพฎไฟกๅŒๆญฅ
โ”‚   โ”‚   โ”œโ”€โ”€ application/             # ๅบ”็”จ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ device/                  # ่ฎพๅค‡็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ region/                  # ๅŒบๅŸŸ็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ login_log/               # ็™ปๅฝ•ๆ—ฅๅฟ—
โ”‚   โ”‚   โ”œโ”€โ”€ api_token/               # API ไปค็‰Œ
โ”‚   โ”‚   โ”œโ”€โ”€ link_preview/            # ้“พๆŽฅ้ข„่งˆ
โ”‚   โ”‚   โ”œโ”€โ”€ dict/                    # ๆ•ฐๆฎๅญ—ๅ…ธ
โ”‚   โ”‚   โ”œโ”€โ”€ post/                    # ๅฒ—ไฝ็ฎก็†
โ”‚   โ”‚   โ””โ”€โ”€ resource_scope/          # ่ต„ๆบๆƒ้™
โ”‚   โ”œโ”€โ”€ online_dev/                   # ๅœจ็บฟๅผ€ๅ‘ๆจกๅ—
โ”‚   โ”‚   โ”œโ”€โ”€ form_manager/            # ่กจๅ•็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ form_data_manager/       # ่กจๅ•ๆ•ฐๆฎ็ฎก็†
โ”‚   โ”‚   โ””โ”€โ”€ page_manager/            # ้กต้ข็ฎก็†
โ”‚   โ”œโ”€โ”€ scheduler/                    # ๅฎšๆ—ถไปปๅŠก
โ”‚   โ”œโ”€โ”€ zq_demo/                      # ็คบไพ‹ๆจกๅ—
โ”‚   โ”œโ”€โ”€ alembic/                      # ๆ•ฐๆฎๅบ“่ฟ็งป
โ”‚   โ”œโ”€โ”€ main.py                       # ๅบ”็”จๅ…ฅๅฃ
โ”‚   โ””โ”€โ”€ requirements.txt              # Python ไพ่ต–
โ”‚
โ”œโ”€โ”€ web/                              # ๅ‰็ซฏๅทฅ็จ‹
โ”‚   โ”œโ”€โ”€ apps/
โ”‚   โ”‚   โ””โ”€โ”€ web-ele/                 # Element Plus ็‰ˆๆœฌๅบ”็”จ
โ”‚   โ”‚       โ””โ”€โ”€ src/
โ”‚   โ”‚           โ”œโ”€โ”€ api/             # API ๆŽฅๅฃ
โ”‚   โ”‚           โ”œโ”€โ”€ components/      # ไธšๅŠก็ป„ไปถ
โ”‚   โ”‚           โ”œโ”€โ”€ views/           # ้กต้ข่ง†ๅ›พ
โ”‚   โ”‚           โ”œโ”€โ”€ router/          # ่ทฏ็”ฑ้…็ฝฎ
โ”‚   โ”‚           โ”œโ”€โ”€ store/           # ็Šถๆ€็ฎก็†
โ”‚   โ”‚           โ”œโ”€โ”€ locales/         # ๅ›ฝ้™…ๅŒ–
โ”‚   โ”‚           โ””โ”€โ”€ layouts/         # ๅธƒๅฑ€็ป„ไปถ
โ”‚   โ”œโ”€โ”€ packages/                     # ๅ…ฑไบซๅŒ…
โ”‚   โ”‚   โ”œโ”€โ”€ @core/                   # ๆ ธๅฟƒๅŒ… (UI ็ป„ไปถใ€ๅทฅๅ…ทๅบ“็ญ‰)
โ”‚   โ”‚   โ”œโ”€โ”€ effects/                 # ไธšๅŠก้€ป่พ‘
โ”‚   โ”‚   โ”œโ”€โ”€ constants/               # ๅธธ้‡ๅฎšไน‰
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/                   # ็ป„ๅˆๅผๅ‡ฝๆ•ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ icons/                   # ๅ›พๆ ‡ๅบ“
โ”‚   โ”‚   โ”œโ”€โ”€ locales/                 # ๅ›ฝ้™…ๅŒ–
โ”‚   โ”‚   โ”œโ”€โ”€ preferences/             # ๅๅฅฝ่ฎพ็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ request/                 # HTTP ่ฏทๆฑ‚
โ”‚   โ”‚   โ”œโ”€โ”€ stores/                  # ็Šถๆ€็ฎก็†
โ”‚   โ”‚   โ”œโ”€โ”€ styles/                  # ๆ ทๅผ
โ”‚   โ”‚   โ”œโ”€โ”€ types/                   # TypeScript ็ฑปๅž‹
โ”‚   โ”‚   โ””โ”€โ”€ utils/                   # ๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”‚   โ””โ”€โ”€ package.json                  # ๅ‰็ซฏไพ่ต–
โ”‚
โ””โ”€โ”€ README.md                         # ้กน็›ฎๆ–‡ๆกฃ

โœ… ็Žฏๅขƒ่ฆๆฑ‚

ไพ่ต– ็‰ˆๆœฌ่ฆๆฑ‚
Python >= 3.12
Node.js >= 20.10
pnpm >= 9.12
PostgreSQL >= 16
Redis >= 6.0

๐Ÿค ่ดก็ŒฎๆŒ‡ๅ—

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Request ๆฅๅธฎๅŠฉๆ”น่ฟ›้กน็›ฎใ€‚

  1. Fork ๆœฌไป“ๅบ“
  2. ๅˆ›ๅปบๆ‚จ็š„็‰นๆ€งๅˆ†ๆ”ฏ (git checkout -b feature/amazing-feature)
  3. ๆไบคๆ‚จ็š„ๆ›ดๆ”น (git commit -m 'feat: ๆทปๅŠ ๆŸไธชๅŠŸ่ƒฝ')
  4. ๆŽจ้€ๅˆฐๅˆ†ๆ”ฏ (git push origin feature/amazing-feature)
  5. ๆไบค Pull Request

๐Ÿ“„ ่ฎธๅฏ่ฏ

ๆœฌ้กน็›ฎ้‡‡็”จๅŒ้‡่ฎธๅฏ่ฏ็ป“ๆž„๏ผš

  • ๆ ธๅฟƒ่ฎธๅฏ๏ผšApache License 2.0 โ€” ๆ ‡ๅ‡† Apache 2.0 ๅผ€ๆบๅ่ฎฎ๏ผŒๅ…่ฎธ่‡ช็”ฑไฝฟ็”จใ€ไฟฎๆ”นๅ’Œๅ†ๅ‘ๅธƒ
  • ้™„ๅŠ ๆกๆฌพ๏ผšZQ-Platform Public License Supplemental Terms โ€” ๅŒ…ๅซ็ฝฒๅ๏ผˆ"powered by ZQ-Platform"๏ผ‰ไธŽๅ•†ๆ ‡ไฝฟ็”จ็š„่กฅๅ……็บฆๅฎš

ไฝฟ็”จๆœฌไปฃ็ ๅณ่กจ็คบๆ‚จๅŒๆ„้ตๅฎˆไปฅไธŠไธคไปฝๆ–‡ไปถไธญ็š„ๆ‰€ๆœ‰ๆกๆฌพใ€‚

๐Ÿ“ž ่”็ณปๆˆ‘ไปฌ

About

A modern enterprise-level admin management system with dual backend options (Django/FastAPI) + Vue3 + Element Plus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors