docs: 添加项目README和依赖文件
添加项目README文档,包含系统功能、技术栈、项目结构、安装说明和使用文档 同时添加requirements.txt文件记录项目依赖
This commit is contained in:
189
README.md
Normal file
189
README.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# 分支机构活动管理系统
|
||||
|
||||
这是一个基于Django开发的分支机构活动管理系统,用于管理公司各分支机构的活动、人员、设备和预算等信息。
|
||||
|
||||
## 功能特点
|
||||
|
||||
- **分支机构管理**:维护分支机构的基本信息、联系方式、分类和状态
|
||||
- **活动管理**:记录分支机构的新建、搬迁、装修、撤销等活动信息
|
||||
- **联系人管理**:管理各分支机构的联系人信息及分类
|
||||
- **设备间图片管理**:上传和管理分支机构设备间的图片
|
||||
- **图纸管理**:上传和管理分支机构相关图纸
|
||||
- **预算管理**:管理活动预算、设备预算和基础设施预算
|
||||
- **终端设备管理**:管理视频终端等设备信息
|
||||
- **公共屏幕管理**:管理分支机构的公共屏幕信息
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **后端框架**:Django
|
||||
- **数据库**:SQLite
|
||||
- **前端技术**:HTML、CSS、Tailwind CSS
|
||||
- **表单处理**:Django Forms
|
||||
- **模板引擎**:Django Templates
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
fzjgact/
|
||||
├── fzjgact/ # 项目配置目录
|
||||
│ ├── __init__.py
|
||||
│ ├── asgi.py
|
||||
│ ├── settings.py
|
||||
│ ├── urls.py
|
||||
│ └── wsgi.py
|
||||
├── huodong/ # 主应用目录
|
||||
│ ├── migrations/ # 数据库迁移文件
|
||||
│ ├── static/ # 静态资源
|
||||
│ ├── templates/ # 模板文件
|
||||
│ ├── templatetags/ # 自定义模板标签
|
||||
│ ├── __init__.py
|
||||
│ ├── admin.py # 后台管理配置
|
||||
│ ├── apps.py # 应用配置
|
||||
│ ├── models.py # 数据模型
|
||||
│ ├── serializers.py # 序列化器
|
||||
│ ├── tests.py # 测试文件
|
||||
│ ├── urls.py # 应用路由
|
||||
│ └── views.py # 视图函数
|
||||
├── db.sqlite3 # 数据库文件
|
||||
├── manage.py # Django管理脚本
|
||||
├── tailwind.config.js # Tailwind CSS配置
|
||||
└── requirements.txt # 依赖文件(需创建)
|
||||
```
|
||||
|
||||
## 安装和运行
|
||||
|
||||
### 1. 环境要求
|
||||
|
||||
- Python 3.7+
|
||||
- Django 3.2+
|
||||
- 其他依赖(见requirements.txt)
|
||||
|
||||
### 2. 安装步骤
|
||||
|
||||
1. **克隆项目**
|
||||
|
||||
```bash
|
||||
git clone <项目地址>
|
||||
cd 分支机构活动
|
||||
```
|
||||
|
||||
2. **创建虚拟环境**
|
||||
|
||||
```bash
|
||||
python -m venv venv
|
||||
```
|
||||
|
||||
3. **激活虚拟环境**
|
||||
|
||||
- Windows:
|
||||
```bash
|
||||
venv\Scripts\activate
|
||||
```
|
||||
- Linux/Mac:
|
||||
```bash
|
||||
source venv/bin/activate
|
||||
```
|
||||
|
||||
4. **安装依赖**
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
5. **初始化数据库**
|
||||
|
||||
```bash
|
||||
cd fzjgact
|
||||
python manage.py migrate
|
||||
```
|
||||
|
||||
6. **创建超级用户**
|
||||
|
||||
```bash
|
||||
python manage.py createsuperuser
|
||||
```
|
||||
|
||||
7. **启动开发服务器**
|
||||
|
||||
```bash
|
||||
python manage.py runserver
|
||||
```
|
||||
|
||||
### 3. 访问系统
|
||||
|
||||
- 后台管理:http://localhost:8000/admin
|
||||
- 前端页面:http://localhost:8000
|
||||
|
||||
## 使用说明
|
||||
|
||||
### 后台管理
|
||||
|
||||
1. 使用超级用户登录后台管理界面
|
||||
2. 可以管理以下模块:
|
||||
- 分支机构信息
|
||||
- 联系人管理
|
||||
- 活动记录
|
||||
- 设备间图片
|
||||
- 图纸管理
|
||||
- 预算信息
|
||||
- 公共屏幕
|
||||
- 视频终端
|
||||
|
||||
### 前端功能
|
||||
|
||||
1. **分支机构列表**:查看所有分支机构信息
|
||||
2. **分支机构详情**:查看分支机构的详细信息、联系人、活动等
|
||||
3. **设备间图片**:查看分支机构设备间的图片
|
||||
4. **公共屏幕**:查看公共屏幕信息
|
||||
5. **视频终端**:查看视频终端信息
|
||||
6. **统计信息**:查看系统统计数据
|
||||
|
||||
## 自定义命令
|
||||
|
||||
- `randomize_background_color`:为分支机构随机生成背景颜色
|
||||
|
||||
## 开发说明
|
||||
|
||||
### Tailwind CSS
|
||||
|
||||
项目使用Tailwind CSS进行样式开发:
|
||||
|
||||
1. 配置文件:`tailwind.config.js`
|
||||
2. 启动Tailwind开发服务器:
|
||||
```bash
|
||||
./tailwindcss-windows-x64.exe -i ./huodong/static/huodong/input.css -o ./huodong/static/huodong/output.css --watch
|
||||
```
|
||||
|
||||
### 数据模型
|
||||
|
||||
主要数据模型包括:
|
||||
- Branch(分支机构)
|
||||
- Contact(联系人)
|
||||
- Activity(活动)
|
||||
- EquipmentImage(设备间图片)
|
||||
- Drawing(图纸)
|
||||
- Budget(预算)
|
||||
- PublicScreen(公共屏幕)
|
||||
- VideoTerminal(视频终端)
|
||||
|
||||
## 许可证
|
||||
|
||||
[MIT License](LICENSE)
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.0
|
||||
- 初始版本
|
||||
- 实现基本的分支机构和活动管理功能
|
||||
|
||||
### v1.1
|
||||
- 增加联系人管理功能
|
||||
- 增加设备间图片管理
|
||||
|
||||
### v1.2
|
||||
- 增加图纸管理功能
|
||||
- 增加预算管理功能
|
||||
|
||||
### v1.3
|
||||
- 增加公共屏幕和视频终端管理
|
||||
- 优化界面样式
|
||||
382
requirements.txt
Normal file
382
requirements.txt
Normal file
@@ -0,0 +1,382 @@
|
||||
absl-py==2.3.1
|
||||
aiofiles==23.2.1
|
||||
aiohttp==3.8.5
|
||||
aiosignal==1.3.1
|
||||
altgraph==0.17.4
|
||||
annotated-types==0.6.0
|
||||
anyio==3.7.1
|
||||
appdirs==1.4.4
|
||||
argcomplete==1.10.0
|
||||
argon2-cffi==23.1.0
|
||||
argon2-cffi-bindings==21.2.0
|
||||
arrow==1.2.3
|
||||
asgiref==3.7.2
|
||||
astor==0.8.1
|
||||
asttokens==3.0.0
|
||||
astunparse==1.6.3
|
||||
async-lru==2.0.5
|
||||
async-timeout==4.0.3
|
||||
attrdict==2.0.1
|
||||
attrs==23.1.0
|
||||
autobahn==24.4.2
|
||||
Babel==2.12.1
|
||||
bce-python-sdk==0.8.90
|
||||
bcrypt==4.3.0
|
||||
beautifulsoup4==4.8.0
|
||||
binaryornot==0.4.4
|
||||
bleach==6.2.0
|
||||
blinker==1.6.2
|
||||
briefcase==0.3.19
|
||||
brotli==1.2.0
|
||||
build==0.10.0
|
||||
cachetools==5.3.1
|
||||
certifi==2023.7.22
|
||||
cffi==1.15.1
|
||||
chardet==3.0.4
|
||||
charset-normalizer==3.2.0
|
||||
ci-info==0.3.0
|
||||
click==8.1.6
|
||||
clr-loader==0.2.6
|
||||
cnocr==2.2.4
|
||||
cnstd==1.2.3.4
|
||||
colorama==0.4.6
|
||||
coloredlogs==15.0.1
|
||||
comm==0.2.2
|
||||
comtypes==1.4.8
|
||||
configobj==5.0.8
|
||||
configparser==6.0.0
|
||||
contourpy==1.1.1
|
||||
cookiecutter==2.6.0
|
||||
cryptography==41.0.3
|
||||
cssselect==1.2.0
|
||||
cssselect2==0.8.0
|
||||
cssutils==2.7.1
|
||||
cycler==0.11.0
|
||||
Cython==3.0.2
|
||||
dashscope==1.20.14
|
||||
debugpy==1.8.13
|
||||
decorator==5.1.1
|
||||
defusedxml==0.7.1
|
||||
diskcache==5.6.3
|
||||
distro==1.9.0
|
||||
Django==5.0.6
|
||||
django-appconf==1.0.6
|
||||
django-select2==8.2.1
|
||||
django-unfold==0.36.0
|
||||
djangorestframework==3.15.1
|
||||
docker-pycreds==0.4.0
|
||||
docx2pdf==0.1.8
|
||||
docx2txt==0.8
|
||||
EasyProcess==1.1
|
||||
EbookLib==0.17.1
|
||||
entrypoint2==1.1
|
||||
et-xmlfile==1.1.0
|
||||
etelemetry==0.3.0
|
||||
exceptiongroup==1.1.3
|
||||
executing==2.2.0
|
||||
extract-msg==0.23.1
|
||||
factory_boy==3.3.3
|
||||
Faker==25.2.0
|
||||
fastapi==0.103.2
|
||||
fastjsonschema==2.21.1
|
||||
filelock==3.12.4
|
||||
fire==0.5.0
|
||||
FLAML==2.1.1
|
||||
Flask==2.3.3
|
||||
flask-babel==3.1.0
|
||||
flatbuffers==25.2.10
|
||||
fonttools==4.61.1
|
||||
fqdn==1.5.1
|
||||
frontend==0.0.3
|
||||
frozenlist==1.4.0
|
||||
fsspec==2023.9.2
|
||||
future==0.18.3
|
||||
gast==0.6.0
|
||||
gevent==23.7.0
|
||||
gitdb==4.0.10
|
||||
GitPython==3.1.32
|
||||
google-pasta==0.2.0
|
||||
greenlet==3.0.1
|
||||
grpcio==1.74.0
|
||||
h11==0.14.0
|
||||
h5py==3.14.0
|
||||
httpcore==0.18.0
|
||||
httplib2==0.22.0
|
||||
httpx==0.25.0
|
||||
huggingface-hub==0.17.3
|
||||
humanfriendly==10.0
|
||||
hyperlink==21.0.0
|
||||
idna==3.4
|
||||
imageio==2.31.4
|
||||
imagekitio==4.1.0
|
||||
IMAPClient==2.1.0
|
||||
imgaug==0.4.0
|
||||
iniconfig==2.0.0
|
||||
ipykernel==6.29.5
|
||||
ipython==9.0.2
|
||||
ipython_pygments_lexers==1.1.1
|
||||
ipywidgets==8.1.5
|
||||
isodate==0.6.1
|
||||
isoduration==20.11.0
|
||||
itsdangerous==2.1.2
|
||||
jedi==0.19.2
|
||||
Jinja2==3.1.2
|
||||
jiter==0.12.0
|
||||
joblib==1.5.1
|
||||
json5==0.12.0
|
||||
jsonpointer==3.0.0
|
||||
jsonschema==4.23.0
|
||||
jsonschema-specifications==2024.10.1
|
||||
jupyter==1.1.1
|
||||
jupyter-console==6.6.3
|
||||
jupyter-events==0.12.0
|
||||
jupyter-lsp==2.2.5
|
||||
jupyter_client==8.6.3
|
||||
jupyter_core==5.7.2
|
||||
jupyter_server==2.15.0
|
||||
jupyter_server_proxy==4.4.0
|
||||
jupyter_server_terminals==0.5.3
|
||||
jupyterlab==4.3.6
|
||||
jupyterlab_pygments==0.3.0
|
||||
jupyterlab_server==2.27.3
|
||||
jupyterlab_vpython==3.1.8
|
||||
jupyterlab_widgets==3.0.13
|
||||
jwt==1.3.1
|
||||
keras==3.11.1
|
||||
keyboard==0.13.5
|
||||
kiwisolver==1.4.5
|
||||
lazy_loader==0.3
|
||||
libclang==18.1.1
|
||||
lightning-utilities==0.9.0
|
||||
livekit-api==0.2.1
|
||||
livekit-protocol==1.0.2
|
||||
lmdb==1.4.1
|
||||
loguru==0.7.2
|
||||
looseversion==1.3.0
|
||||
lxml==4.9.3
|
||||
Markdown==3.8.2
|
||||
markdown-it-py==3.0.0
|
||||
MarkupSafe==2.1.3
|
||||
matplotlib==3.8.0
|
||||
matplotlib-inline==0.1.7
|
||||
mdurl==0.1.2
|
||||
mistune==3.1.3
|
||||
ml_dtypes==0.5.3
|
||||
MouseInfo==0.1.3
|
||||
mpmath==1.3.0
|
||||
mss==9.0.1
|
||||
multidict==6.0.4
|
||||
namex==0.1.0
|
||||
nbclient==0.10.2
|
||||
nbconvert==7.16.6
|
||||
nbformat==5.10.4
|
||||
nest-asyncio==1.6.0
|
||||
networkx==3.1
|
||||
nibabel==5.1.0
|
||||
nipype==1.8.6
|
||||
notebook==7.3.3
|
||||
notebook_shim==0.2.4
|
||||
Nuitka==2.7.13
|
||||
numpy==1.26.0
|
||||
olefile==0.46
|
||||
onnx==1.14.1
|
||||
onnxruntime==1.16.0
|
||||
openai==2.14.0
|
||||
opencv-contrib-python==4.6.0.66
|
||||
opencv-python==4.11.0.86
|
||||
openpyxl==3.1.2
|
||||
opt-einsum==3.3.0
|
||||
optree==0.17.0
|
||||
ordered-set==4.1.0
|
||||
outcome==1.2.0
|
||||
overrides==7.7.0
|
||||
packaging==23.1
|
||||
paddle-bfloat==0.1.7
|
||||
paddleocr==2.7.0.3
|
||||
paddlepaddle==2.5.1
|
||||
pandas==2.1.1
|
||||
pandocfilters==1.5.1
|
||||
paramiko==3.5.1
|
||||
parso==0.8.4
|
||||
pathtools==0.1.2
|
||||
pdf2docx==0.5.6
|
||||
pdf2image==1.17.0
|
||||
pdfkit==1.0.0
|
||||
pdfminer.six==20181108
|
||||
pefile==2023.2.7
|
||||
Pillow==10.0.1
|
||||
platformdirs==3.10.0
|
||||
playwright==1.40.0
|
||||
pluggy==1.5.0
|
||||
Polygon3==3.0.9.1
|
||||
premailer==3.10.0
|
||||
prometheus_client==0.21.1
|
||||
prompt_toolkit==3.0.50
|
||||
protobuf==3.20.2
|
||||
prov==2.0.0
|
||||
psutil==5.9.5
|
||||
pure_eval==0.2.3
|
||||
pyasn1==0.6.1
|
||||
PyAudio==0.2.14
|
||||
pyautogen==0.1.10
|
||||
PyAutoGUI==0.9.54
|
||||
pyclipper==1.3.0.post5
|
||||
pycparser==2.21
|
||||
pycryptodome==3.19.0
|
||||
pydantic==2.10.4
|
||||
pydantic_core==2.27.2
|
||||
pydot==1.4.2
|
||||
pydyf==0.12.1
|
||||
pyee==11.0.1
|
||||
PyGetWindow==0.0.9
|
||||
Pygments==2.16.1
|
||||
pyinstaller==6.9.0
|
||||
pyinstaller-hooks-contrib==2024.7
|
||||
PyJWT==2.10.1
|
||||
PyMsgBox==1.0.9
|
||||
PyMuPDF @ file:///C:/Users/dxzq/Downloads/PyMuPDF-1.20.2-cp311-cp311-win_amd64.whl#sha256=8969f3a8462352d8ddb3b679e87e85f84ae4fb49d2ef5d927563ceaca9a2aeaa
|
||||
PyMuPDFb==1.23.3
|
||||
PyNaCl==1.5.0
|
||||
pynput==1.7.6
|
||||
pyoxidizer==0.24.0
|
||||
pyparsing==3.1.1
|
||||
PyPDF2==3.0.1
|
||||
pyperclip==1.8.2
|
||||
pyphen==0.17.2
|
||||
pyproject_hooks==1.0.0
|
||||
PyQt5==5.15.11
|
||||
PyQt5-Qt5==5.15.2
|
||||
PyQt5-stubs==5.15.6.0
|
||||
PyQt5_sip==12.17.0
|
||||
PyQt6==6.10.0
|
||||
PyQt6-Qt6==6.10.0
|
||||
PyQt6_sip==13.10.2
|
||||
pyreadline3==3.4.1
|
||||
PyRect==0.2.0
|
||||
pyscreenshot==3.1
|
||||
PyScreeze==0.1.29
|
||||
pyserial==3.5
|
||||
PySide6==6.9.1
|
||||
PySide6_Addons==6.9.1
|
||||
PySide6_Essentials==6.9.1
|
||||
pysnmp==7.1.15
|
||||
PySocks==1.7.1
|
||||
pytesseract==0.3.10
|
||||
pytest==8.3.2
|
||||
pytest-django==4.11.1
|
||||
pytest-qt==4.5.0
|
||||
python-dateutil==2.9.0.post0
|
||||
python-docx==0.8.11
|
||||
python-dotenv==1.0.0
|
||||
python-json-logger==3.3.0
|
||||
python-multipart==0.0.6
|
||||
python-pptx==0.6.18
|
||||
python-slugify==8.0.1
|
||||
pythonnet==3.0.1
|
||||
pytorch-lightning==2.0.9
|
||||
pytweening==1.0.7
|
||||
pytz==2023.3.post1
|
||||
PyWavelets==1.4.1
|
||||
pywin32==308
|
||||
pywin32-ctypes==0.2.2
|
||||
pywinauto==0.6.9
|
||||
pywinpty==2.0.15
|
||||
pyxnat==1.6
|
||||
PyYAML==6.0.1
|
||||
pyzmq==26.4.0
|
||||
rapidfuzz==3.3.1
|
||||
rarfile==4.1
|
||||
rdflib==7.0.0
|
||||
redis==7.0.1
|
||||
referencing==0.36.2
|
||||
reportlab==4.4.3
|
||||
requests==2.31.0
|
||||
requests-toolbelt==0.10.1
|
||||
rfc3339-validator==0.1.4
|
||||
rfc3986-validator==0.1.1
|
||||
rich==13.5.2
|
||||
rpds-py==0.24.0
|
||||
scapy==2.6.1
|
||||
schedule==1.2.2
|
||||
scikit-image==0.21.0
|
||||
scikit-learn==1.7.1
|
||||
scipy==1.11.2
|
||||
seaborn==0.12.2
|
||||
selenium==4.11.2
|
||||
Send2Trash==1.8.3
|
||||
sentry-sdk==1.31.0
|
||||
setproctitle==1.3.2
|
||||
shapely==2.0.1
|
||||
shiboken6==6.9.1
|
||||
simpervisor==1.0.0
|
||||
simplejson==3.19.1
|
||||
six==1.14.0
|
||||
smmap==5.0.0
|
||||
sniffio==1.3.0
|
||||
sortedcontainers==2.4.0
|
||||
soupsieve==2.5
|
||||
SpeechRecognition==3.8.1
|
||||
sqlparse==0.4.4
|
||||
stack-data==0.6.3
|
||||
starlette==0.27.0
|
||||
sympy==1.12
|
||||
tensorboard==2.19.0
|
||||
tensorboard-data-server==0.7.2
|
||||
tensorflow==2.19.0
|
||||
tensorflow-io-gcs-filesystem==0.31.0
|
||||
termcolor==2.3.0
|
||||
terminado==0.18.1
|
||||
text-unidecode==1.3
|
||||
textract==1.6.3
|
||||
threadpoolctl==3.6.0
|
||||
tifffile==2023.9.26
|
||||
tinycss2==1.5.1
|
||||
tinyhtml5==2.0.0
|
||||
toga==0.3.1
|
||||
toga-core==0.4.6
|
||||
toga-winforms==0.4.6
|
||||
tomli_w==1.0.0
|
||||
torch==2.0.1
|
||||
torchmetrics==1.2.0
|
||||
torchvision==0.15.2
|
||||
tornado==6.4.2
|
||||
tqdm==4.66.1
|
||||
traitlets==5.14.3
|
||||
traits==6.3.2
|
||||
travertino==0.3.0
|
||||
trio==0.22.2
|
||||
trio-websocket==0.10.3
|
||||
txaio==23.1.1
|
||||
types-protobuf==5.29.1.20250403
|
||||
typing_extensions==4.12.2
|
||||
tzdata==2023.3
|
||||
tzlocal==1.5.1
|
||||
Unidecode==1.3.7
|
||||
uri-template==1.3.0
|
||||
urllib3==1.26.20
|
||||
uvicorn==0.23.2
|
||||
visualdl==2.5.3
|
||||
vpython==7.6.5
|
||||
wandb==0.15.11
|
||||
wcwidth==0.2.13
|
||||
weasyprint==67.0
|
||||
webcolors==24.11.1
|
||||
webdriver-manager==4.0.0
|
||||
webencodings==0.5.1
|
||||
websocket==0.2.1
|
||||
websocket-client==1.8.0
|
||||
Werkzeug==2.3.7
|
||||
wget==3.2
|
||||
widgetsnbextension==4.0.13
|
||||
win32-setctime==1.1.0
|
||||
wrapt==1.17.2
|
||||
wsproto==1.2.0
|
||||
xlrd==1.2.0
|
||||
XlsxWriter==3.2.0
|
||||
yarl==1.9.2
|
||||
zai-sdk==0.0.4
|
||||
zhipuai==2.1.5.20250106
|
||||
zope.event==5.0
|
||||
zope.interface==6.0
|
||||
zopfli==0.4.0
|
||||
zstandard==0.24.0
|
||||
Reference in New Issue
Block a user