Files
django-vue3-admin/web
Lewis_yan 3ddea70c55 feat(dashboard): add system notification card to right sidebar
Reference the original django-vue3-admin framework home page, combine
the home image and notification card into one layout. The notification
list appears below the image, matching the original framework's style
with creator name, datetime, and title for each notification item.
2026-04-07 11:13:47 +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