项目展示:
沟通与协作:良好的沟通和协作是前端和后端开发之间成功结合的关键。团队成员应该定期沟通,并确保共享相同的目标和理解。
API 设计:定义清晰的 API 接口,确保前端和后端之间的数据交换和通信顺畅。API 应该简单明了,并符合业务需求和最佳实践。
技术栈的选择:选择合适的技术栈以支持前端和后端的开发。常见的前端技术包括 HTML、CSS、JavaScript、React、Angular 或 Vue.js,而后端技术可以包括 Node.js、Python、Ruby、Java 或 PHP 等。
数据交互:确保前端和后端能够有效地交换数据。常见的数据交互方式包括使用 RESTful API、GraphQL 或 WebSocket 等。
安全性:确保应用程序在前端和后端都具有必要的安全性。包括对数据传输进行加密,对用户输入进行验证和清理,以及使用安全的身份验证和授权机制等。
性能优化:在前端与后端开发中都要注意性能优化。前端需要优化页面加载速度和响应时间,后端需要优化数据处理和数据库查询等。
版本控制和部署:使用版本控制系统(如 Git)进行代码管理,并建立适当的部署流程以确保应用程序可以顺利部署到生产环境中。
测试:进行全面的单元测试、集成测试和端到端测试,以确保前端和后端代码的质量和稳定性。
监控与日志:建立监控系统和日志记录机制,以便及时发现并解决潜在的问题。
持续改进:不断收集用户反馈并进行改进。定期审查代码,并寻找优化前端和后端的机会。
呃....然而这些都由我一个人做了。
首先需要完成的是小程序的开发,小程序端我选择的是云开发,因为我想的是反正做一个只在学校用就那几w人也撑不爆云服务空间哇。
云开发的学习我这里推荐我自己的哔哩哔哩课程(所有全部免费开放,地址:卢淼儿的个人空间-卢淼儿个人主页-哔哩哔哩视频)
我的视频集里面包括(小程序原生、uniapp、unicloud、python等)记住哦,我的简介里面有加群方式:814571333(“爱编程互助基地”,最近有很多打广告的所以最近机一按先禁言)
里面有惊喜开源项目供大家参考哦~
其实关于此项目并不是我最近几天完成的,是个项目从一开始的小项目,走到这一步,其实它沉淀了很多的东西,它的开发经历20多次版本的更新。由于上半年开发完它之后就去打比赛了。所以一直把它放到了一边,直到前几天国庆节放假回老家,想着,闲着也是闲着,给我的“宝儿~”升升级。于是就有了此项目。
// 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() {
}
})
未阅读
已阅读
邮件分类
咨询类
意见类
求助类
举报类
投诉类
报修类
查看
已阅
删除
删除
标题
{{ this.row_title }}
内容
{{ this.row_content }}
时间
{{ this.row_cTime }}