Files
django-vue3-admin/web
Lewis_yan 025ddceb82 feat(i18n): restore framework menu i18n and fix login page i18n keys
- Restore init_menu.json with name_en/name_zh_tw for menu buttons (104 entries)
- Add data migration 0003 to populate menu item name_en/name_zh_tw
- Fix login page i18n key paths (message.account.* -> message.pages.login.account.*)
- Add missing login i18n keys: loginTitle, firstLoginTip, welcomeLogin, copyright
- Fix hardcoded Chinese strings in login page to use i18n
2026-04-08 23:22:42 +08:00
..
2026-04-02 13:55:27 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00
2026-03-19 20:03:10 +08:00

PIS - Procurement & Supplier Management System

Project Overview

A Django-Vue3 based procurement and supplier management system with RBAC permission control.

Project Architecture 🏗️

Tech Stack

Layer Technology
Backend Django 4.2.14 + Django REST Framework 3.15.2
Frontend Vue 3 + TypeScript + Vite 5.4 + Element Plus 2.8 + FastCRUD
Database MySQL 8.0
Cache/Queue Redis + Celery
Real-time Django Channels (WebSocket)
Auth JWT via SimpleJWT

Directory Structure

pis/
├── backend/
│   ├── application/          # Django project settings
│   │   ├── settings.py       # Main settings (imports from conf/env.py)
│   │   ├── urls.py           # Root URL routing
│   │   ├── asgi.py           # ASGI config (WebSocket support)
│   │   └── celery.py         # Celery configuration
│   ├── apps/
│   │   ├── pisadmin/         # Custom procurement app
│   │   │   ├── basicinfo/    # Company, currency, supplier, unit, system no
│   │   │   └── miscprocurement/  # RFQ, price templates, cost sections
│   │   └── pissupplier/      # Supplier quotation module
│   ├── dvadmin/              # Core RBAC system
│   │   └── system/           # Users, roles, menus, departments, logs
│   └── conf/
│       └── env.py            # Environment configuration (DB, Redis credentials)
├── web/                      # Vue 3 frontend
│   └── src/
│       ├── views/pisadmin/   # Custom procurement pages
│       ├── views/pissupplier/# Supplier pages
│       └── views/system/     # Admin system pages
└── scripts/                  # Service management scripts
    ├── start-backend.sh      # Start backend service
    ├── start-frontend.sh    # Start frontend service
    ├── start-celery.sh      # Start Celery worker/beat
    ├── stop-all.sh          # Stop all services
    └── check-status.sh      # Check service status

Module Description

Module Description
pisadmin/basicinfo Basic info: companies, currencies, suppliers, units, system numbering rules
pisadmin/miscprocurement Miscellaneous procurement: RFQ, price templates, cost section builder
pissupplier Supplier quotation module
dvadmin/system Core RBAC: users, roles, menus, departments, operation logs

Configuration

Backend settings are split:

  • application/settings.py - Django defaults
  • conf/env.py - Environment-specific config (database, Redis, secrets)

Prerequisites

Python >= 3.8.0
nodejs >= 14.0
Mysql >= 5.7.0 (Optional. The default database is sqlite3. 8.0 is recommended)
Redis(Optional, the latest edition)

Frontend

# Go to web directory
cd web

# Install dependencies
npm install yarn
npm install --registry=https://registry.npm.taobao.org

# Start development server
yarn run dev
# Visit http://localhost:8080 in your browser
# Parameters such as boot port can be configured in the .env.development file

# Build for production
yarn run build

Backend

The project provides complete startup scripts in the scripts/ directory:

# Go to project root
cd D:\AVC-PROJECT\pis

# Start backend service (development mode)
./scripts/start-backend.sh

# Start frontend service
./scripts/start-frontend.sh

# Start Celery async tasks (optional)
./scripts/start-celery.sh

Script Description:

Script Description
start-backend.sh Start backend service (auto-creates PID and log files)
start-frontend.sh Start frontend dev server
start-celery.sh Start Celery Worker and Beat
stop-all.sh Stop all services
stop-celery.sh Stop Celery only
check-status.sh Check all service status
view-logs.sh View service logs

View Logs:

./scripts/view-logs.sh all      # View all logs
./scripts/view-logs.sh backend  # Backend logs only
./scripts/view-logs.sh celery   # Celery logs only

Stop Services:

./scripts/stop-all.sh           # Stop all services
./scripts/stop-celery.sh       # Stop Celery only

Method 2: Manual Startup

# 1. Go to backend directory
cd backend

# 2. Copy and configure environment file
cp ./conf/env.example.py ./conf/env.py
# Edit env.py to configure database information

# 3. Install dependencies
pip3 install -r requirements.txt

# 4. Run migrations
python3 manage.py makemigrations
python3 manage.py migrate

# 5. Initialize data
python3 manage.py init
python3 manage.py init_area

# 6. Start backend
uvicorn application.asgi:application --port 8000 --host 0.0.0.0 --workers 8

Access

Docker

docker-compose up -d
# Initialize backend data (first execution only)
docker exec -ti dvadmin-django bash
python manage.py makemigrations
python manage.py migrate
python manage.py init_area
python manage.py init
exit

# Stop services
docker-compose down

# Restart services
docker-compose restart

# Rebuild and start
docker-compose up -d --build