mirror of
https://github.com/huge-dream/django-vue3-admin.git
synced 2026-09-22 13:05:16 +00: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 defaultsconf/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
Method 1: Script Startup (Recommended)
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
- Frontend URL: http://localhost:8080
- Backend API: http://localhost:8080/api
- Default account:
superadmin/admin123456
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