Skip to content

2024年 USTC 数据库(陈欢欢,周熙人)实验二:银行管理系统

License

Notifications You must be signed in to change notification settings

Melmaphother/2024-USTC-Database-Lab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2024-USTC-Database-Lab2

Logo

基本信息

  1. 本项目为 2024 年 USTC 数据库设计与应用(陈欢欢,周熙人)实验二,选择以银行管理系统为主题,实现一个 USTC 银行在线管理平台。

  2. 本项目基于 Django 框架,以 MySQL 为后端,以 HTML、CSS、JavaScript 为前端。

  3. 本文档主要包括项目的快速开始、项目展示、项目细节,查看更多说明请查看 docs 文件夹。

    文件 链接
    需求分析 Demand Analysis
    设计分析 Design Analysis
    项目日志 Project Log
    实验手册 Experiment Manual
    我的 Django 笔记 Django 笔记

快速开始

  1. 本项目使用的软件有:

    软件 版本 下载方式
    MySQL 8.0 MySQL
    Python 3.11 Anaconda
    Django 5.0 Django
    DataGrip 2024.1 DataGrip
    PyCharm 2024.1 Pycharm
    PDManer 元数建模 4.9 pdmaner
    draw.io 24.5 draw.io
  2. 简单配置流程

    • clone 本项目:

       $ git clone https://github.com/Melmaphother/2024-USTC-Database-Lab2.git
    • 安装 MySQL,创建数据库 bank_manage_system

      $ mysql -u username -p password
      $ create database db_name default charset=UTF8MB4
    • 进入目录 src/BankManageSystem/BankManageSystem/settings.py,修改数据库配置:

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'bank_manage_system',
              'USER': 'your username',
              'PASSWORD': 'your password',
              'HOST': 'localhost',
              'PORT': '3306',
            }
        }
    • 安装 Anaconda,搭建 Python 环境:

      $ conda create -n django python=3.11
      $ conda activate django
    • 安装必要的包:

      $ pip install -r requirements.txt
    • 进入目录 src/BankManageSystem,创建数据表:

      $ python manage.py migrate
    • 在数据库 IDE(DataGrip、MySQL Workbench)中,运行 src/sqls/init_database.sql

      这一步是为了避免外键依赖导致业务操作失败。

    • 启动本地服务器:

      $ python manage.py runserver [localhost:8000]
    • 在浏览器中输入 localhost:8000,即可查看项目: 为了保证使用体验,建议使用 Chrome 或 Edge 浏览器,将窗口缩放为 125% 体验更佳。

项目展示

  1. 欢迎界面

    Welcome
  2. 注册界面

    Register
  3. 注册后填写个人信息

    Register Info
  4. 登录界面

    Login
  5. 主页

    Dashboard
  6. 个人主页

    Profile
  7. 储蓄账户:添加账户

    不跳转 url,通过背景模糊 + 弹窗的形式,动态展示添加账户页面,符合用户直觉。

    Add Account
  8. 储蓄账户:账户详情

    Account
  9. 储蓄账户:存款

    Deposit
  10. 储蓄账户:取款

    Withdraw
  11. 储蓄账户:转账

    Transfer
  12. 储蓄账户:查看明细

    Details
  13. 信用卡账户

    Details
  14. 信用卡账户:透支逻辑

    • 用户可以从余额之外的透支额度中取款或转账

      Details
    • 透支将累计在当前透支,而不会从余额扣

      Details
    • 从明细中自然也可以看到

      Details
    • 同样的,其它账户向信用卡账户转账时,会优先清除记录的当前透支额,超过了才会存入余额

      Details
  15. 贷款账户,加入了申请贷款的功能

    Details
  16. 贷款账户:申请贷款

    • 申请时可以选择贷款期限

      Details
    • 申请结束显示已发放状态,并计入该账户余额

      Details Details
  17. 贷款账户:还贷

    • 还贷并不是从余额直接扣,而是另外支付

      Details
    • 第一次还贷即修改状态为 “还款中”

      Details
    • 当还款金额大于等于还需要还的金额,修改状态为 “已结清”,并将剩余的存入余额

      Details Details
    • 当贷款已经结清,就不需要再还贷

  18. 表单填写错误处理 刷新验证码,保存未出错的表单信息,避免重复填写。同时提示错误信息。

    Form Error
  19. 账户操作提示信息 以浏览器自带 alert 提示操作成功或失败的信息。

    Alert

项目细节

文件结构

2024-USTC-Database-Lab2
│  LICENSE
│  README.md
│  requirements.txt
│
├─docs/assets  README.md 中的图片
│
├─design
│  │
│  ├─backend  后端设计,包括数据库建模、API 设计、ER 图
│  │
│  └─frontend  前端设计,包括页面设计
│
├─docs  项目文档,包括需求分析、设计分析、项目日志、实验手册
│  │
│  └─Django Notes  Django 笔记
│
└─src
    ├─BankManageSystem  Django 项目
    │  │  manage.py  Django 项目启动文件
    │  │
    │  ├─BankManageSystem  Django 项目配置文件,包括路由、数据库配置
    │  │
    │  ├─bank_service  银行服务,包括主页、注册、登录、账户的视图函数
    │  │  │
    │  │  └─account_utils  专门用于处理各种账户交易的视图函数
    │  │
    │  ├─statics  静态文件
    │  │  ├─css  欢迎界面、注册、登录的样式
    │  │  │  │
    │  │  │  └─dashboard  登入后具体各部分的主页样式
    │  │  │
    │  │  ├─image
    │  │  │      logo.png  项目的 logo
    │  │  │
    │  │  └─js  主页 js 文件
    │  │      │
    │  │      └─dashboard  登入后具体各部分的主页 js 文件
    │  │
    │  └─templates  html 文件,包括欢迎界面、注册、登录、主页
    │      │
    │      └─dashboard  登入后具体各部分的主页
    │
    └─sql_src  数据库存储过程、函数、触发器、初始化数据库

Tips

如果你想上手或改造本项目,可能需要学习的知识有:

  1. 熟练使用 ChatGPT
  2. 熟练使用 Python
  3. 了解 Django MTV(model、template、view)模型的原理
  4. 了解 Django orm(Object-Relational Mapper) 语法
  5. HTML、CSS 基础
  6. JavaScript 懂一点点

教程

学习 Django 的教程:

学习 HTML、CSS 教程:

About

2024年 USTC 数据库(陈欢欢,周熙人)实验二:银行管理系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published