Backend Development 8 min read

Contract Management and Expense Reimbursement System – Architecture and Usage Guide

This document describes a web‑based contract and employee expense reimbursement system for small‑to‑medium enterprises, covering its BS architecture with a Vue front‑end, Django back‑end, MySQL database, deployment environment, registration/login procedures, and detailed modules for user, department, contract, reimbursement, and financial management.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Contract Management and Expense Reimbursement System – Architecture and Usage Guide

The system is a contract management and employee travel expense reimbursement platform aimed at small‑to‑medium enterprises. It follows a project‑centric approach, recording outbound (receivable) and inbound (payable) contracts, managing funds and invoices, and linking reimbursements to projects for comprehensive cost and profit analysis.

Architecture : The application uses a BS (Browser‑Server) model with front‑end and back‑end separation. The front‑end is built with Vue CLI, while the back‑end runs on Django. Data is stored in a MySQL database.

Web Server Environment :

nodeJS --version v14.13.1 npm --version 6.14.8

API Server Environment :

Python 3.7

# pip list
Package              Version
-------------------  -------
asgiref              3.2.10
Cython               0.29.21
Django               3.1.2
django-filter        2.4.0
djangorestframework 3.12.1
pip                  20.2.3
PyMySQL              0.10.1
pytz                 2020.1
setuptools           50.3.0
sqlparse             0.4.1
wheel                0.35.1

Database Environment :

MySQL version > 5.7. Default configuration assumes the API server and MySQL run on the same machine. Database name: zw , user: zw , password: zw123 .

ApiServer/settings.py 文件中
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'zw',
        'USER': 'zw',
        'PASSWORD': 'zw123',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

Access Flow : User browser → Web server → API server → MySQL database.

System Registration : After deployment, users access http://<web‑server‑IP>:8080 (IE not supported) to register, copying the host ID for license activation.

User Login : Default administrator credentials are username admin and password 123456 . After login, users are redirected to the main dashboard.

User Management : Includes account, department, role (admin or regular user), status (active/inactive), and deletion rules. Only administrators can delete users, and deletion is blocked if the user has related reimbursement data.

Information Modules :

Department information – defines internal departments for classification.

Unit information – records companies or individuals involved in contracts.

Project information – links contracts and reimbursements to specific projects.

Contract Management : Users can create, modify, and query contracts, including invoice plans, fund plans, and attachments.

Reimbursement Management : Users can add new reimbursements and query their own records. Reimbursements are categorized as project reimbursements or other reimbursements.

Financial Management : Provides administrators with reimbursement approval and comprehensive query functions for all users, including batch approval and revocation capabilities.

backendVueMySQLDjangoWeb ApplicationContract ManagementExpense Reimbursement
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.