校园管理系统(小程序+后台管理)——直击毕设

项目展示:

小程序端大体展示

校园管理系统(小程序+后台管理)——直击毕设_第1张图片

后台管理大体展示

校园管理系统(小程序+后台管理)——直击毕设_第2张图片

校园管理系统(小程序+后台管理)——直击毕设_第3张图片

校园管理系统(小程序+后台管理)——直击毕设_第4张图片

校园管理系统(小程序+后台管理)——直击毕设_第5张图片

 

校园管理系统(小程序+后台管理)——直击毕设_第6张图片

校园管理系统(小程序+后台管理)——直击毕设_第7张图片

 

校园管理系统(小程序+后台管理)——直击毕设_第8张图片

校园管理系统(小程序+后台管理)——直击毕设_第9张图片

 

校园管理系统(小程序+后台管理)——直击毕设_第10张图片

校园管理系统(小程序+后台管理)——直击毕设_第11张图片

项目需要前后端的配合

  1. 沟通与协作:良好的沟通和协作是前端和后端开发之间成功结合的关键。团队成员应该定期沟通,并确保共享相同的目标和理解。

  2. API 设计:定义清晰的 API 接口,确保前端和后端之间的数据交换和通信顺畅。API 应该简单明了,并符合业务需求和最佳实践。

  3. 技术栈的选择:选择合适的技术栈以支持前端和后端的开发。常见的前端技术包括 HTML、CSS、JavaScript、React、Angular 或 Vue.js,而后端技术可以包括 Node.js、Python、Ruby、Java 或 PHP 等。

  4. 数据交互:确保前端和后端能够有效地交换数据。常见的数据交互方式包括使用 RESTful API、GraphQL 或 WebSocket 等。

  5. 安全性:确保应用程序在前端和后端都具有必要的安全性。包括对数据传输进行加密,对用户输入进行验证和清理,以及使用安全的身份验证和授权机制等。

  6. 性能优化:在前端与后端开发中都要注意性能优化。前端需要优化页面加载速度和响应时间,后端需要优化数据处理和数据库查询等。

  7. 版本控制和部署:使用版本控制系统(如 Git)进行代码管理,并建立适当的部署流程以确保应用程序可以顺利部署到生产环境中。

  8. 测试:进行全面的单元测试、集成测试和端到端测试,以确保前端和后端代码的质量和稳定性。

  9. 监控与日志:建立监控系统和日志记录机制,以便及时发现并解决潜在的问题。

  10. 持续改进:不断收集用户反馈并进行改进。定期审查代码,并寻找优化前端和后端的机会。

呃....然而这些都由我一个人做了。

不是买实体服务器买不起,是云开发更有性价比(坏笑,嘿嘿~)

首先需要完成的是小程序的开发,小程序端我选择的是云开发,因为我想的是反正做一个只在学校用就那几w人也撑不爆云服务空间哇。

关于想成为云全栈开发的朋友们,可以按照我的学习路线走哈~

云开发的学习我这里推荐我自己的哔哩哔哩课程(所有全部免费开放,地址:卢淼儿的个人空间-卢淼儿个人主页-哔哩哔哩视频)

我的视频集里面包括(小程序原生、uniapp、unicloud、python等)记住哦,我的简介里面有加群方式:814571333(“爱编程互助基地”,最近有很多打广告的所以最近机一按先禁言)

里面有惊喜开源项目供大家参考哦~

关于此项目

其实关于此项目并不是我最近几天完成的,是个项目从一开始的小项目,走到这一步,其实它沉淀了很多的东西,它的开发经历20多次版本的更新。由于上半年开发完它之后就去打比赛了。所以一直把它放到了一边,直到前几天国庆节放假回老家,想着,闲着也是闲着,给我的“宝儿~”升升级。于是就有了此项目。

涉及到的技术栈

  1. vue.js
  2. node.js
  3. CloudBase
  4. WeChat Base

展示部分前端小程序代码

// pages/shouye/shouye.js

// const { update } = require("XrFrame/kanata/lib/index")

const app = getApp()
const defaultAvatarUrl = '../../images/Default_avatar.png'
Page({

  data: {
    // 轮播图开始
    imgUrls: [
      'XXXX-1312670923/yian_tupian/two.jpg',
      'XXXX-1312670923/yian_tupian/two.jpg',
    ],
    circular: true,
    // indicatorDots: true,  
    autoplay: true, 
    interval: 2000, 
    duration: 300, 
    inputShowed: false,
    touxiang: '../../images/Default_avatar.png',
    moren_xinxi: '尚未登陆',
    show_login: false,
    avatarUrl: defaultAvatarUrl,
    name: '请输入昵称',
    xuehao:'请输入学号',
    xingming:'请输入姓名',
    Public_announcement: true,
    Public_announcement_1: false,
    My_mail: true,
    My_mail_1: false
  },
  close_login_case() {
    this.setData({
      show_login: false
    })
  },
  show_login_case() {
    this.setData({
      show_login: true
    })

  },
  WD_ZH_1() {
    let that = this
    wx.cloud.callFunction({
      name: 'getusers',
      data: {},
    }).then(res => {
      that.setData({
        user_openid: res.result.openid
      })
      wx.cloud.database().collection('users').where({
          _openid: res.result.openid
        })
        .remove({
          success(res) {
            that.setData({
              moren_xinxi: '尚未登陆',
              touxiang: '../../images/Default_avatar.png'
            })
            wx.showToast({
              title: '谢谢使用!',
              icon: 'none'
            })
            that.onShow()
          }
        })
    })
  },
  onChooseAvatar(e) {
    let avatarUrl = e.detail.avatarUrl
    this.setData({
      avatarUrl,
    })
  },
  input_nickname(e) {
    let nickname = e.detail.value
    this.setData({
      nickname
    })
  },
  input_xuehao(e){
    let xuehao = e.detail.value
    this.setData({
      xuehao
    })
  },
  input_xingming(e){
    let xingming = e.detail.value
    this.setData({
      xingming
    })
  },
  denglu() {
    let that = this
    if (that.data.avatarUrl == defaultAvatarUrl || that.data.nickname == '请输入昵称' || that.data.xuehao == '请输入学号' || that.data.xingming == '请输入姓名') {
      wx.showToast({
        title: '请填写正确信息',
        icon: 'none'
      })
    } else {
      wx.cloud.callFunction({
        name: 'getusers',
        data: {},
      }).then(res => {
        that.setData({
          _openid: res.result.openid
        })
        wx.cloud.database().collection('users').where({
          _openid: res.result.openid
        }).get({
          success(res) {
            wx.cloud.database().collection('users').add({
              data: {
                nickname: that.data.nickname,
                touxiangUrl: that.data.avatarUrl,
                openid: that.data._openid,
                xuehao:that.data.xuehao,
                xingming:that.data.xingming,
                user:1
              },
              success(res) {
                that.setData({
                  show_login: false
                })
                wx.showToast({
                  title: '登录成功!',
                })
                wx.cloud.callFunction({
                  name:'getusers',
                  data:{}
                }).then(res=>{
                  wx.cloud.database().collection('xinxiaoxi_users').where({
                    _openid:res.result.openid
                  }).get({
                    success(res){
                      console.log(res.data.length,'useruser');
                      if(res.data.length < 1){
                        wx.cloud.database().collection('xinxiaoxi_users').add({
                          data: {
                            user:1,
                            gonggao: [],
                            youjian: [],
                          }
                        })
                      }else{
                        console.log('user已经添加过了');
                      }
                    }
                  })
                  wx.cloud.database().collection('Two_dimensional_code').where({
                    _openid:res.result.openid
                  }).get({
                    success(res){
                      console.log(res.data.length,'useruser');
                      if(res.data.length < 1){
                        wx.cloud.database().collection('Two_dimensional_code').add({
                          data: {
                            user:1,
                            Two_dimensional_code: [],
                          }
                        })
                      }else{
                        console.log('二维码已经添加过了');
                      }
                    }
                  })
                })
                that.onShow()
                this.duqu_users()
              }
            })
          }
        })
      })
    }
  },
  shuaxin() {
    let that = this
    wx.cloud.callFunction({
      name: 'getusers',
      data: {},
    }).then(res => {
      that.setData({
        _openid: res.result.openid
      })
      wx.cloud.database().collection('users').where({
        _openid: res.result.openid
      }).get({
        success(res) {
          that.setData({
            moren_xinxi: res.data[0].nickname,
            touxiang: res.data[0].touxiangUrl,
          })
        }
      })
    })
  },
  Write_letters() {
    let that = this
    if (that.data.touxiang == "../../images/Default_avatar.png" || that.data.moren_xinxi == "尚未登陆") {
      wx.showToast({
        title: '您还未登录!',
        icon: 'none'
      })
    } else {
      wx.navigateTo({
        url: '../Write_letters/Write_letters',
      })
    }
  },
  My_mail() {
    let that = this
    if (that.data.touxiang == "../../images/Default_avatar.png" || that.data.moren_xinxi == "尚未登陆") {
      wx.showToast({
        title: '您还未登录!',
        icon: 'none'
      })
    } else {
      wx.navigateTo({
        url: '../My_mail/My_mail',
      })
    }
  },
  My_wenjain() {
    let that = this
    if (that.data.touxiang == "../../images/Default_avatar.png" || that.data.moren_xinxi == "尚未登陆") {
      wx.showToast({
        title: '您还未登录!',
        icon: 'none'
      })
    } else {
      wx.navigateTo({
        url: '../My_wenjain/My_wenjain',
      })
    }
  },
  Formula_announcement() {
    let that = this
    if (that.data.touxiang == "../../images/Default_avatar.png" || that.data.moren_xinxi == "尚未登陆") {
      wx.showToast({
        title: '您还未登录!',
        icon: 'none'
      })
    } else {
      wx.navigateTo({
        url: '../Formula_announcement/Formula_announcement',
      })
    }
  },
  W_zonghe() {
    let that = this
    wx.cloud.database().collection('content').get({
      success(res) {
        console.log(res);
        let W_zonghe = res.data.length
        that.setData({
          W_zonghe: W_zonghe
        })
      }
    })
  },
  W_zixun() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '0'
    }).get({
      success(res) {
        let W_zixun
        W_zixun = res.data.length
        that.setData({
          W_zixun: W_zixun
        })
        if (W_zixun >= 1) {
          that.setData({
            W_zixun1: true,
            W_zixun2: false,
            W_zixun: W_zixun
          })
        } else {
          that.setData({
            W_zixun1: false,
            W_zixun2: true,
          })
        }
      }
    })
  },
  W_yijian() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '1'
    }).get({
      success(res) {
        let W_yijian
        W_yijian = res.data.length
        that.setData({
          W_yijian: W_yijian
        })
        if (W_yijian >= 1) {
          that.setData({
            W_yijian1: true,
            W_yijian2: false,
            W_yijian: W_yijian
          })
        } else {
          that.setData({
            W_yijian1: false,
            W_yijian2: true,
          })
        }
      }
    })
  },
  W_qiuzhu() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '2'
    }).get({
      success(res) {
        let W_qiuzhu
        W_qiuzhu = res.data.length
        that.setData({
          W_qiuzhu: W_qiuzhu
        })
        if (W_qiuzhu >= 1) {
          that.setData({
            W_qiuzhu1: true,
            W_qiuzhu2: false,
            W_qiuzhu: W_qiuzhu
          })
        } else {
          that.setData({
            W_qiuzhu1: false,
            W_qiuzhu2: true,
          })
        }

      }
    })
  },
  W_jubao() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '3'
    }).get({
      success(res) {
        let W_jubao
        W_jubao = res.data.length
        that.setData({
          W_jubao: W_jubao
        })
        if (W_jubao >= 1) {
          that.setData({
            W_jubao1: true,
            W_jubao2: false,
            W_jubao: W_jubao
          })
        } else {
          that.setData({
            W_jubao1: false,
            W_jubao2: true,
          })
        }

      }
    })
  },
  W_tousu() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '4'
    }).get({
      success(res) {
        let W_tousu
        W_tousu = res.data.length
        that.setData({
          W_tousu: W_tousu
        })
        if (W_tousu >= 1) {
          that.setData({
            W_tousu1: true,
            W_tousu2: false,
            W_tousu: W_tousu
          })
        } else {
          that.setData({
            W_tousu1: false,
            W_tousu2: true,
          })
        }
      }
    })
  },
  W_baoxiu() {
    let that = this
    wx.cloud.database().collection('content').where({
      newsid: '5'
    }).get({
      success(res) {
        let W_baoxiu
        W_baoxiu = res.data.length
        that.setData({
          W_baoxiu: W_baoxiu
        })
        if (W_baoxiu >= 1) {
          that.setData({
            W_baoxiu1: true,
            W_baoxiu2: false,
            W_baoxiu: W_baoxiu
          })
        } else {
          that.setData({
            W_baoxiu1: false,
            W_baoxiu2: true,
          })
        }
      }
    })
  },
  Y_zonghe() {
    let that = this
    wx.cloud.database().collection('yiyuedu').get({
      success(res) {
        console.log(res);
        let Y_zonghe = res.data.length
        that.setData({
          Y_zonghe: Y_zonghe
        })
      }
    })
  },

  Y_zixun() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '0'
    }).get({
      success(res) {
        let Y_zixun
        Y_zixun = res.data.length
        that.setData({
          Y_zixun: Y_zixun
        })
        if (Y_zixun >= 1) {
          that.setData({
            Y_zixun1: true,
            Y_zixun2: false,
            Y_zixun: Y_zixun
          })
        } else {
          that.setData({
            Y_zixun1: false,
            Y_zixun2: true,
          })
        }
      }
    })
  },
  Y_yijian() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '1'
    }).get({
      success(res) {
        let Y_yijian
        Y_yijian = res.data.length
        that.setData({
          Y_yijian: Y_yijian
        })
        if (Y_yijian >= 1) {
          that.setData({
            Y_yijian1: true,
            Y_yijian2: false,
            Y_yijian: Y_yijian
          })
        } else {
          that.setData({
            Y_yijian1: false,
            Y_yijian2: true,
          })
        }
      }
    })
  },
  Y_qiuzhu() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '2'
    }).get({
      success(res) {
        let Y_qiuzhu
        Y_qiuzhu = res.data.length
        that.setData({
          Y_qiuzhu: Y_qiuzhu
        })
        if (Y_qiuzhu >= 1) {
          that.setData({
            Y_qiuzhu1: true,
            Y_qiuzhu2: false,
            Y_qiuzhu: Y_qiuzhu
          })
        } else {
          that.setData({
            Y_qiuzhu1: false,
            Y_qiuzhu2: true,
          })
        }

      }
    })
  },
  Y_jubao() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '3'
    }).get({
      success(res) {
        let Y_jubao
        Y_jubao = res.data.length
        that.setData({
          Y_jubao: Y_jubao
        })
        if (Y_jubao >= 1) {
          that.setData({
            Y_jubao1: true,
            Y_jubao2: false,
            Y_jubao: Y_jubao
          })
        } else {
          that.setData({
            Y_jubao1: false,
            Y_jubao2: true,
          })
        }

      }
    })
  },
  Y_tousu() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '4'
    }).get({
      success(res) {
        let Y_tousu
        Y_tousu = res.data.length
        that.setData({
          Y_tousu: Y_tousu
        })
        if (Y_tousu >= 1) {
          that.setData({
            Y_tousu1: true,
            Y_tousu2: false,
            Y_tousu: Y_tousu
          })
        } else {
          that.setData({
            Y_tousu1: false,
            Y_tousu2: true,
          })
        }
      }
    })
  },
  Y_baoxiu() {
    let that = this
    wx.cloud.database().collection('yiyuedu').where({
      newsid: '5'
    }).get({
      success(res) {
        let Y_baoxiu
        Y_baoxiu = res.data.length
        that.setData({
          Y_baoxiu: Y_baoxiu
        })
        if (Y_baoxiu >= 1) {
          that.setData({
            Y_baoxiu1: true,
            Y_baoxiu2: false,
            Y_baoxiu: Y_baoxiu
          })
        } else {
          that.setData({
            Y_baoxiu1: false,
            Y_baoxiu2: true,
          })
        }

      }
    })
  },
  administrator() {
    let that = this
    if (that.data.touxiang == "../../images/Default_avatar.png" || that.data.moren_xinxi == "尚未登陆") {
      wx.showToast({
        title: '登录后,可登录管理员后台',
        icon: 'none'
      })
    } else {
      wx.navigateTo({
        url: '../administrator_DL/administrator_DL',
      })
    }
  },
  Rili() {
    wx.navigateTo({
      url: '../Rili/Rili',
    })
  },
  onLoad(options) {
    if (options.wenjian == 'yonghu') {
      wx.navigateTo({
        url: '../My_wenjain/My_wenjain',
      })
    }
  },
  onReady() {

  },
  gonggao_xin(){
    let that = this
    wx.cloud.callFunction({
      name:'getusers',
      data:{}
    }).then(res=>{
      wx.cloud.database().collection('xinxiaoxi_users').where({
        _openid:res.result.openid
      }).get({
        success(res){
          console.log(res.data[0].gonggao.length,'qqqqqqqqqqqqqqqqqqqqqqqqqqqq');
          if(res.data[0].gonggao.length > 0){
            that.setData({
              Public_announcement: false,
              Public_announcement_1: true,
            })
          }
        }
      })
    })
  },
  Formula_announcement_1(){
    let that = this
    that.Formula_announcement()
    that.setData({
      Public_announcement: true,
      Public_announcement_1: false,
    })
    wx.cloud.callFunction({
      name:'getusers',
      data:{}
    }).then(res=>{
      console.log(res.result.openid,'ooooooooooooooooooooooooppppppppppppp');
      wx.cloud.database().collection('xinxiaoxi_users').where({
        _openid:res.result.openid
      }).update({
        data:{
          gonggao:[]
        }
      })
    })
  },
  My_mail_xin(){
    let that = this
    wx.cloud.callFunction({
      name:'getusers',
      data:{}
    }).then(res=>{
      wx.cloud.database().collection('xinxiaoxi_users').where({
        _openid:res.result.openid
      }).get({
        success(res){
          console.log(res.data[0].youjian.length,'qqqqqqqqqqqqqqqqqqqqqqqqqqqq');
          if(res.data[0].youjian.length > 0){
            that.setData({
              My_mail: false,
              My_mail_1: true,
            })
          }
        }
      })
    })
  },
  My_mail_1(){
    let that = this
    that.My_mail()
    that.setData({
      My_mail: true,
      My_mail_1: false,
    })
    wx.cloud.callFunction({
      name:'getusers',
      data:{}
    }).then(res=>{
      console.log(res.result.openid,'ooooooooooooooooooooooooppppppppppppp');
      wx.cloud.database().collection('xinxiaoxi_users').where({
        _openid:res.result.openid
      }).update({
        data:{
          youjian:[]
        }
      })
    })
  },
  onShow() {
    this.gonggao_xin()
    this.My_mail_xin()
    this.shuaxin()
    this.W_zonghe()
    this.W_zixun()
    this.W_yijian()
    this.W_qiuzhu()
    this.W_jubao()
    this.W_tousu()
    this.W_baoxiu()

    this.Y_zonghe()
    this.Y_zixun()
    this.Y_yijian()
    this.Y_qiuzhu()
    this.Y_jubao()
    this.Y_tousu()
    this.Y_baoxiu()
  },
  onHide() {
  },
  onUnload() {},
  onPullDownRefresh() {},
  onReachBottom() {
  },
  onShareAppMessage() {
  }
})

展示部分前端后台PC端代码


  

  

  

你可能感兴趣的:(直击毕设,微信小程序,数据库,小程序,前端)