Skip to content

figo990/PMS-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RuoYi-Vue-Plus ๅผ€ๅ‘ๅนณๅฐ

RuoYi-Vue-Plus Spring Boot Vue TypeScript License

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

RuoYi-Vue-Plus ๆ˜ฏๅŸบไบŽ Spring Boot 3.3 + Vue 3.5 + TypeScript ็š„็ŽฐไปฃๅŒ–ไผไธš็บงๅผ€ๅ‘ๅนณๅฐใ€‚ๆœฌ้กน็›ฎๅœจRuoYi-Vue-PlusๅŸบ็ก€ๆžถๆž„ไธŠ๏ผŒๅผ€ๅ‘ไบ†ๅฎŒๆ•ด็š„PMS๏ผˆProperty Management System๏ผ‰้…’ๅบ—็ฎก็†็ณป็ปŸ๏ผŒๆถต็›–ไบ†้…’ๅบ—ๆ—ฅๅธธ่ฟ่ฅ็š„ๆ ธๅฟƒไธšๅŠกๆต็จ‹๏ผŒๅŒ…ๆ‹ฌ้ข„่ฎข็ฎก็†ใ€ๅฎขๆˆฟ็ฎก็†ใ€่ดขๅŠก็ป“็ฎ—ใ€ๅบ“ๅญ˜ๆŽงๅˆถ็ญ‰ๅŠŸ่ƒฝๆจกๅ—ใ€‚

๐Ÿ“– ๅฎŒๆ•ดๅผ€ๅ‘ๆŒ‡ๅ—: ๆŸฅ็œ‹ RuoYi-Vue-Plus้กน็›ฎๅผ€ๅ‘ๅฎŒๆ•ดๆŒ‡ๅ—.md ่Žทๅ–่ฏฆ็ป†็š„ๅผ€ๅ‘ๆต็จ‹่ฏดๆ˜Ž

๐ŸŒŸ ไธป่ฆ็‰นๆ€ง

  • ๅฎŒๆ•ด็š„ไธšๅŠกๆต็จ‹: ไปŽ้ข„่ฎขใ€ๅ…ฅไฝๅˆฐ้€€ๆˆฟใ€็ป“็ฎ—็š„ๅ…จๆต็จ‹็ฎก็†
  • ๆ™บ่ƒฝๅบ“ๅญ˜็ฎก็†: ๅฎžๆ—ถๅบ“ๅญ˜็›‘ๆŽง๏ผŒ้˜ฒๆญข่ถ…ๅ”ฎ๏ผŒๆ”ฏๆŒๅŠจๆ€ๅฎšไปท
  • ็ตๆดป็š„่ดขๅŠก็ณป็ปŸ: ๅคš็งๆ”ฏไป˜ๆ–นๅผ๏ผŒ่‡ชๅŠจๅฏน่ดฆ๏ผŒๅฎŒๆ•ด็š„่ดขๅŠกๆŠฅ่กจ
  • ๅคš็งŸๆˆทๆžถๆž„: ๆ”ฏๆŒ้›†ๅ›ขๅŒ–่ฟ่ฅ๏ผŒๅคš้—จๅบ—็‹ฌ็ซ‹็ฎก็†
  • ้…็ฝฎๅŒ–็ฎก็†: ็ณป็ปŸๅ‚ๆ•ฐ็ตๆดป้…็ฝฎ๏ผŒๆ”ฏๆŒไธ‰็บง็ปงๆ‰ฟ๏ผˆ็ณป็ปŸโ†’็งŸๆˆทโ†’้—จๅบ—๏ผ‰
  • ๆ•ฐๆฎๅฎ‰ๅ…จ: ๆ•ๆ„ŸไฟกๆฏๅŠ ๅฏ†ๅญ˜ๅ‚จ๏ผŒๅฎŒๆ•ด็š„ๆ“ไฝœๆ—ฅๅฟ—
  • ้ซ˜ๆ€ง่ƒฝ: Redis็ผ“ๅญ˜ไผ˜ๅŒ–๏ผŒๆ”ฏๆŒ้ซ˜ๅนถๅ‘่ฎฟ้—ฎ
  • ็งปๅŠจ็ซฏๆ”ฏๆŒ: ๅ“ๅบ”ๅผ่ฎพ่ฎก๏ผŒๆ”ฏๆŒ็งปๅŠจ่ฎพๅค‡่ฎฟ้—ฎ

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

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

  • Java: JDK 17+ (ๆŽจ่ 17 ๆˆ– 21)
  • Node.js: 18.0+ (ๆŽจ่ 20.x LTS)
  • ๆ•ฐๆฎๅบ“: MySQL 8.0+ ๆˆ– PostgreSQL 13+
  • ็ผ“ๅญ˜: Redis 6.0+
  • ๆž„ๅปบๅทฅๅ…ท: Maven 3.8+, pnpm
  • Git: 2.0+

ๅฟซ้€ŸๅฏๅŠจ

๐Ÿ—„๏ธ ๆ•ฐๆฎๅบ“ๅˆๅง‹ๅŒ–

# ๅˆ›ๅปบๆ•ฐๆฎๅบ“
mysql -u root -p
CREATE DATABASE ruoyi_vue_plus DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# ๅˆ›ๅปบ็”จๆˆทๅนถๆŽˆๆƒ
CREATE USER 'ruoyi'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON ruoyi_vue_plus.* TO 'ruoyi'@'%';
FLUSH PRIVILEGES;

# ๅฏผๅ…ฅๅŸบ็ก€ๆ•ฐๆฎ
mysql -u ruoyi -p ruoyi_vue_plus < sql/mysql/ruoyi_vue_plus.sql
mysql -u ruoyi -p ruoyi_vue_plus < sql/mysql/quartz.sql

๐Ÿ”ง ๅŽ็ซฏๅฏๅŠจ

# 1. ่ฟ›ๅ…ฅๅŽ็ซฏ้กน็›ฎ็›ฎๅฝ•
cd ruoyi-vue-plus

# 2. ไฟฎๆ”น้…็ฝฎๆ–‡ไปถ
# ็ผ–่พ‘ ruoyi-admin/src/main/resources/application-dev.yml
# ้…็ฝฎๆ•ฐๆฎๅบ“่ฟžๆŽฅๅ’ŒRedis่ฟžๆŽฅ

# 3. ็ผ–่ฏ‘ๅนถๅฏๅŠจ
mvn clean compile
mvn spring-boot:run -pl ruoyi-admin

# ๆˆ–่€…ๆ‰“ๅŒ…่ฟ่กŒ
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar

๐ŸŽจ ๅ‰็ซฏๅฏๅŠจ

# 1. ่ฟ›ๅ…ฅๅ‰็ซฏ้กน็›ฎ็›ฎๅฝ•
cd ruoyi-plus-soybean

# 2. ๅฎ‰่ฃ…ไพ่ต– (ๆŽจ่ไฝฟ็”จ pnpm)
pnpm install

# 3. ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
pnpm dev

# ่ฎฟ้—ฎ http://localhost:5173
# ้ป˜่ฎค่ดฆๅท๏ผšadmin / admin123

๐Ÿณ Docker ไธ€้”ฎๅฏๅŠจ

# ไฝฟ็”จ Docker Compose ไธ€้”ฎๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก
docker-compose up -d

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

โš ๏ธ ้‡่ฆๆ็คบ: ่ฏฆ็ป†็š„้ƒจ็ฝฒ้…็ฝฎใ€ๅผ€ๅ‘่ง„่Œƒใ€ๅธธ่ง้—ฎ้ข˜่งฃๅ†ณ็ญ‰่ฏทๅ‚่€ƒๅฎŒๆ•ดๅผ€ๅ‘ๆŒ‡ๅ—ๆ–‡ๆกฃ

๐Ÿ“ฆ ๅŠŸ่ƒฝๆจกๅ—

ๆ ธๅฟƒไธšๅŠกๆจกๅ—

ๆจกๅ— ๅŠŸ่ƒฝ่ฏดๆ˜Ž
่ฎขๅ•็ฎก็† ้ข„่ฎขๅˆ›ๅปบใ€็กฎ่ฎคใ€ๅ…ฅไฝใ€้€€ๆˆฟใ€ๅ–ๆถˆ็ญ‰ๅฎŒๆ•ดๆต็จ‹
่ดขๅŠก็ฎก็† ่ดฆๅ•็ฎก็†ใ€ๆ”ถๆฌพ้€€ๆฌพใ€ไบคๆ˜“่ฎฐๅฝ•ใ€่ดขๅŠกๆŠฅ่กจ
ๅบ“ๅญ˜็ฎก็† ๅฎžๆ—ถๅบ“ๅญ˜ใ€ๅบ“ๅญ˜ๅฟซ็…งใ€่ถ…ๅ”ฎไฟๆŠคใ€ๅบ“ๅญ˜้ข„ๆต‹
ๅฎขๆˆฟ็ฎก็† ๆˆฟๅž‹่ฎพ็ฝฎใ€ๆˆฟ้—ด็Šถๆ€ใ€ๆˆฟไปท็ญ–็•ฅใ€ๆˆฟ้—ด้”ๅฎš
ๅฎขๆˆท็ฎก็† ๅฎขๆˆทๆกฃๆกˆใ€ๅކๅฒ่ฎฐๅฝ•ใ€ไผšๅ‘˜็ฎก็†ใ€้ป‘ๅๅ•
ๆŠฅ่กจไธญๅฟƒ ็ป่ฅๆŠฅ่กจใ€่ดขๅŠกๆŠฅ่กจใ€ๅ…ฅไฝ็އๅˆ†ๆžใ€ๆ”ถ็›Š็ฎก็†

็ณป็ปŸๅŠŸ่ƒฝๆจกๅ—

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

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

ruoyi-vue-plus-pms/
โ”œโ”€โ”€ docs/                 # ๆ–‡ๆกฃ็›ฎๅฝ•
โ”‚   โ”œโ”€โ”€ api/             # APIๆ–‡ๆกฃ
โ”‚   โ”œโ”€โ”€ user/            # ็”จๆˆทๆ‰‹ๅ†Œ
โ”‚   โ”œโ”€โ”€ deploy/          # ้ƒจ็ฝฒๆŒ‡ๅ—
โ”‚   โ””โ”€โ”€ developer/       # ๅผ€ๅ‘ๆ–‡ๆกฃ
โ”œโ”€โ”€ ruoyi-admin/         # ๅฏๅŠจๆจกๅ—
โ”œโ”€โ”€ ruoyi-common/        # ๅ…ฌๅ…ฑๆจกๅ—
โ”œโ”€โ”€ ruoyi-modules/       # ไธšๅŠกๆจกๅ—
โ”‚   โ”œโ”€โ”€ ruoyi-system/    # ็ณป็ปŸๆจกๅ—
โ”‚   โ””โ”€โ”€ ruoyi-pms/       # PMSๆจกๅ—
โ”œโ”€โ”€ ruoyi-plus-soybean/  # ๅ‰็ซฏ้กน็›ฎ
โ””โ”€โ”€ sql/                 # ๆ•ฐๆฎๅบ“่„šๆœฌ

๐Ÿ› ๏ธ ๆŠ€ๆœฏ้€‰ๅž‹

ๅŽ็ซฏๆŠ€ๆœฏ

  • ๅŸบ็ก€ๆก†ๆžถ: Spring Boot 3.3.6
  • ๆƒ้™ๆก†ๆžถ: Sa-Token 1.39.0
  • ๆ•ฐๆฎๅบ“: MySQL 8.0+ / PostgreSQL 13+
  • ็ผ“ๅญ˜: Redis 6.0+ + Redisson
  • ORMๆก†ๆžถ: MyBatis-Plus 3.5.9
  • ๆ•ฐๆฎๅบ“่ฟžๆŽฅๆฑ : HikariCP
  • ๅทฅๅ…ท็ฑป: Hutool 5.8.24
  • Excelๅค„็†: EasyExcel 3.3.3
  • ้ชŒ่ฏๆก†ๆžถ: Hibernate Validator
  • ไปปๅŠก่ฐƒๅบฆ: XXL-JOB
  • JSONๅค„็†: Jackson
  • ๆž„ๅปบๅทฅๅ…ท: Maven 3.8+

ๅ‰็ซฏๆŠ€ๆœฏ

  • ๅŸบ็ก€ๆก†ๆžถ: Vue 3.5+ (Composition API)
  • ๅผ€ๅ‘่ฏญ่จ€: TypeScript 5.8+
  • ๆž„ๅปบๅทฅๅ…ท: Vite 6.3+
  • ่ทฏ็”ฑ็ฎก็†: Vue Router 4.5+ + elegant-router 1.0.2
  • ็Šถๆ€็ฎก็†: Pinia 3.0+
  • UIๆก†ๆžถ: Naive UI 2.41+
  • CSSๆก†ๆžถ: UnoCSS (ๅŽŸๅญๅŒ–)
  • HTTPๅฎขๆˆท็ซฏ: Axios
  • ๅŒ…็ฎก็†: pnpm
  • ไปฃ็ ่ง„่Œƒ: ESLint + Prettier

๐Ÿ“Š ็ณป็ปŸๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๅ‰็ซฏๅบ”็”จๅฑ‚                           โ”‚
โ”‚                   Vue3 + TypeScript + Vite                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ็ฝ‘ๅ…ณๅฑ‚                               โ”‚
โ”‚                        Nginxๅๅ‘ไปฃ็†                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๅบ”็”จๅฑ‚                               โ”‚
โ”‚                    Spring Boot + Sa-Token                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   ่ฎขๅ•ๆœๅŠก โ”‚ ่ดขๅŠกๆœๅŠก โ”‚ ๅบ“ๅญ˜ๆœๅŠก โ”‚ ้…็ฝฎๆœๅŠก โ”‚ ็ณป็ปŸๆœๅŠก    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๆ•ฐๆฎๅฑ‚                               โ”‚
โ”‚                    MyBatis Plus + Redis                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๅญ˜ๅ‚จๅฑ‚                               โ”‚
โ”‚                      MySQL + Redis                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”’ ๅฎ‰ๅ…จ็‰นๆ€ง

  • ่ฎค่ฏๆŽˆๆƒ: ๅŸบไบŽSa-Token็š„่ฎค่ฏๆŽˆๆƒๆœบๅˆถ
  • ๆ•ฐๆฎๅŠ ๅฏ†: ๆ•ๆ„ŸไฟกๆฏAES-256-GCMๅŠ ๅฏ†ๅญ˜ๅ‚จ
  • ๆŽฅๅฃๅฎ‰ๅ…จ: ้˜ฒ้‡ๆ”พๆ”ปๅ‡ปใ€้˜ฒSQLๆณจๅ…ฅใ€XSS่ฟ‡ๆปค
  • ๆ•ฐๆฎ่„ฑๆ•: ๆ•ๆ„Ÿๆ•ฐๆฎๅฑ•็คบ่‡ชๅŠจ่„ฑๆ•
  • ๆ“ไฝœๅฎก่ฎก: ๅฎŒๆ•ด็š„ๆ“ไฝœๆ—ฅๅฟ—่ฎฐๅฝ•
  • ่ฎฟ้—ฎๆŽงๅˆถ: ๅŸบไบŽRBAC็š„ๆƒ้™ๆŽงๅˆถ

๐Ÿ“ˆ ๆ€ง่ƒฝไผ˜ๅŒ–

  • ็ผ“ๅญ˜็ญ–็•ฅ: ๅคš็บง็ผ“ๅญ˜ๆžถๆž„๏ผŒRedis็ผ“ๅญ˜็ƒญ็‚นๆ•ฐๆฎ
  • ๆ•ฐๆฎๅบ“ไผ˜ๅŒ–: ็ดขๅผ•ไผ˜ๅŒ–ใ€ๆŸฅ่ฏขไผ˜ๅŒ–ใ€่ฏปๅ†™ๅˆ†็ฆป
  • ๅผ‚ๆญฅๅค„็†: ๆถˆๆฏ้˜Ÿๅˆ—ๅค„็†่€—ๆ—ถๆ“ไฝœ
  • ่ฟžๆŽฅๆฑ : HikariCP้ซ˜ๆ€ง่ƒฝ่ฟžๆŽฅๆฑ 
  • ๅ‰็ซฏไผ˜ๅŒ–: ่ทฏ็”ฑๆ‡’ๅŠ ่ฝฝใ€็ป„ไปถๆŒ‰้œ€ๅผ•ๅ…ฅใ€่ต„ๆบๅŽ‹็ผฉ

๐Ÿงช ๆต‹่ฏ•่ฆ†็›–

  • ๅ•ๅ…ƒๆต‹่ฏ•: JUnit5 + Mockito๏ผŒ่ฆ†็›–ๆ ธๅฟƒไธšๅŠก้€ป่พ‘
  • ้›†ๆˆๆต‹่ฏ•: Spring Boot Test๏ผŒๆต‹่ฏ•ๅฎŒๆ•ดไธšๅŠกๆต็จ‹
  • ๅ‰็ซฏๆต‹่ฏ•: Vitest + Vue Test Utils
  • E2Eๆต‹่ฏ•: Playwright่‡ชๅŠจๅŒ–ๆต‹่ฏ•

๐Ÿ“ ๆ–‡ๆกฃ่ฏดๆ˜Ž

๐Ÿ“š ๆ ธๅฟƒๆ–‡ๆกฃ

ๆ–‡ๆกฃ ็”จ้€” ้€‚็”จๅœบๆ™ฏ ๆŽจ่ๅบฆ
RuoYi-Vue-Plus้กน็›ฎๅผ€ๅ‘ๅฎŒๆ•ดๆŒ‡ๅ— ๐ŸŽฏ ๅฎŒๆ•ด็š„ๅผ€ๅ‘ๆต็จ‹่ฏดๆ˜Ž ๆทฑๅ…ฅๅญฆไน ๅผ€ๅ‘่ง„่Œƒ โญโญโญโญโญ
README-DEV-SETUP.md โšก ๅฟซ้€Ÿ็Žฏๅขƒ้…็ฝฎ ๅฟซ้€Ÿๆญๅปบๅผ€ๅ‘็Žฏๅขƒ โญโญโญโญ
APIๅ‚่€ƒๆ–‡ๆกฃ ๐Ÿ”Œ RESTful APIๆŽฅๅฃๆ–‡ๆกฃ ๆŽฅๅฃๅผ€ๅ‘ๅ’Œ้›†ๆˆ โญโญโญ
็”จๆˆทๆ“ไฝœๆ‰‹ๅ†Œ ๐Ÿ‘ค ็ณป็ปŸไฝฟ็”จ่ฏดๆ˜Ž ไธšๅŠก็”จๆˆท โญโญโญ
้ƒจ็ฝฒๆŒ‡ๅ— ๐Ÿš€ ็”Ÿไบง็Žฏๅขƒ้ƒจ็ฝฒ ่ฟ็ปด้ƒจ็ฝฒ โญโญโญ
ๅผ€ๅ‘่€…ๆŒ‡ๅ— ๐Ÿ’ป ๅผ€ๅ‘่ง„่Œƒๅ’Œๆœ€ไฝณๅฎž่ทต ๅ›ข้˜Ÿๅผ€ๅ‘ โญโญโญโญ

๐Ÿ“– ๅฟซ้€Ÿๅฏผ่ˆช

๐Ÿ“‹ ๅผ€ๅ‘่ง„่Œƒ

  • ๆƒ้™ไฝ“็ณป: ๅŸบไบŽ็”จๆˆท็ฑปๅž‹็š„ๆƒ้™ๆŽงๅˆถ (super_admin, tenant_admin, sys_user, app_user)
  • ๅ‘ฝๅ่ง„่Œƒ:
    • URL่ทฏๅพ„ไฝฟ็”จ kebab-case (/system/user/reset-pwd)
    • ๆƒ้™ๆ ‡่ฏ†ไฝฟ็”จๅ†’ๅทๅˆ†ๅฑ‚ (system:user:list)
    • ็ป„ไปถๅไฝฟ็”จ PascalCase ไธ”ๅคšๅ•่ฏ็ป„ๅˆ
  • ไปฃ็ ่ดจ้‡: TypeScriptไธฅๆ ผ็ฑปๅž‹ๆฃ€ๆŸฅ๏ผŒESLint้›ถ้”™่ฏฏๆ ‡ๅ‡†
  • ๅ‰ๅŽ็ซฏๅไฝœ: elegant-router่ทฏ็”ฑ็ณป็ปŸ๏ผŒ็กฎไฟๅ‰ๅŽ็ซฏๆ•ฐๆฎไธ€่‡ดๆ€ง

๐Ÿค ๅ‚ไธŽ่ดก็Œฎ

Git ๆไบค่ง„่Œƒ

feat: ๆทปๅŠ ๆ–ฐๅŠŸ่ƒฝ
fix: ไฟฎๅคbug  
docs: ๆ›ดๆ–ฐๆ–‡ๆกฃ
style: ไปฃ็ ๆ ผๅผ่ฐƒๆ•ด
refactor: ้‡ๆž„ไปฃ็ 
perf: ๆ€ง่ƒฝไผ˜ๅŒ–
test: ๅขžๅŠ ๆต‹่ฏ•
chore: ๆž„ๅปบๆˆ–ๅทฅๅ…ทๅ˜ๅŠจ

ๅผ€ๅ‘ๆต็จ‹

  1. Fork ๆœฌไป“ๅบ“
  2. ๆ–ฐๅปบๅŠŸ่ƒฝๅˆ†ๆ”ฏ๏ผšgit checkout -b feature/your-feature
  3. ๆไบคไปฃ็ ๏ผšgit commit -m 'feat: ๆทปๅŠ ๆŸไธชๅŠŸ่ƒฝ'
  4. ๆŽจ้€ๅˆ†ๆ”ฏ๏ผšgit push origin feature/your-feature
  5. ๆ–ฐๅปบ Pull Request

ไปฃ็ ่ดจ้‡่ฆๆฑ‚

  • ๅŽ็ซฏ: Java็ผ–่ฏ‘้”™่ฏฏ 0ไธช๏ผŒไปฃ็ ้‡ๅค็އ โ‰ค 5%
  • ๅ‰็ซฏ: TypeScript้”™่ฏฏ 0ไธช๏ผŒESLint้”™่ฏฏ 0ไธช
  • ๆต‹่ฏ•่ฆ†็›–็އ: โ‰ฅ 80%

๐Ÿ“„ ๅผ€ๆบๅ่ฎฎ

ๆœฌ้กน็›ฎ้‡‡็”จ MIT ๅผ€ๆบๅ่ฎฎ

๐Ÿ™ ้ธฃ่ฐข

  • RuoYi-Vue-Plus - ๅผบๅคง็š„ๅŸบ็ก€ๅผ€ๅ‘ๆก†ๆžถ
  • Soybean Admin - ไผ˜็ง€็š„Vue3ๅ‰็ซฏๆก†ๆžถ
  • Dromara - ๅผ€ๆบ็ป„็ป‡ๆ”ฏๆŒ

Copyright ยฉ 2024 PMS Team. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages