springboot+vue的前后端分离的校园活动报名系统

本文介绍了设计一个高效便捷的校园活动报名系统,以解决传统报名方式的问题。系统通过在线报名、简化管理流程、信息公开透明和方便后续跟进等功能,提升高校活动效率和学生体验。开发平台包括Windows10/11、Tomcat、MySQL等,采用Java、HTML5、CSS、Vue.js和SpringBoot等技术。
摘要由CSDN通过智能技术生成

1.1 设计目的与意义

校园活动是学生综合素质发展的重要组成部分,通过参与各类校园活动,

学生可以拓宽视野、锻炼能力、培养团队合作精神等。然而,传统的校园活动报名方式存在一些问题,如报名流程繁琐、信息传递不及时等,因此设计和实现一个高效便捷的校园活动报名系统具有重要意义。

该系统是为了提高报名效率:校园活动报名系统能够提供在线报名功能,使学生能够随时随地提交报名申清,避免了传统方式中需要排队或填写纸质表格的繁功过程,节省了时间和精力。简化管理流程,系统可以自动收集和整理学生的报名信息,减少了手工整理数据的工作量,大大简化了活动组织者的管理流程,提高了工作效率。实现信息公开与透明:报名系统能够在活动报名开始后实时展示已报名人数和名单,提供公开和透明的报名信息,使学生和组织者都能随时获取最新的报名情况。便于后续跟进与沟通:系统可以提供学生报名信息的存档功能,方便组织者后续的活动安排、参与确认、通知发布等工作,并够通过系统内部消息或部件进行与学生的沟通。

因此,校园活动报名系统的开发和使用对千高校来说具有重要的意义,可以提高活动的效率和质量,提升学生参与度和体验,促进学生综合素质的全面发展。

1.2 开发平台与运行环境

操作系统:Win10或者Win11;

Web服务器:Tomcat6及其以上版本;

浏览器: Google和Chrome;

数据库:MySQL;

开发平台:java平台;

开发技术:HTML5,CSS,JS,Vue.js,Springboot(SSM)框架;

开发工具:idea,Visual Studio Code。

2.2 用例图

根据需求分析,设计系统用例图如图2-1所示。

2-1 用例图

3.1 功能模块设计

3-1 功能模块图 

3.2 数据库设计 

4、功能模块 

登录页面

管理员>面主页面 

管理员>用户管理

 活动管理

用户首页

用户>活动列表页面

用户>我的活动页面

登录页面部分代码 

<template>
    <div class="login-container">
        <el-row>
            <el-col :span="12" :xs="0"></el-col>
            <el-col :span="12" :xs="24">
                <el-form class="login-form" :model="loginForm" ref="loginFormRef" :rules="rules">
                    <h1>Hello</h1>
                    <h2>欢迎来到校园活动报名系统</h2>
                    <el-form-item prop="number">
                        <el-input placeholder="请输入学号" :prefix-icon="User" v-model="loginForm.number" />
                    </el-form-item>
                    <el-form-item prop="password">
                        <el-input placeholder="请输入密码" :prefix-icon="Lock" type="password" show-password
                            v-model="loginForm.password" />
                    </el-form-item>
                    <el-form-item>
                        <el-button class="login-btn" type="primary" @click="login" :loading="loading">登录</el-button>
                    </el-form-item>
                </el-form>
            </el-col>
        </el-row>
    </div>
</template> 

<script setup>
import { reactive, ref } from "vue"
import { User, Lock } from '@element-plus/icons-vue'
import useUserStore from "@/store/user"
import { useRouter } from "vue-router"
import { ElNotification } from 'element-plus'
import { getTime } from "@/utils/time"

const userStore = useUserStore()
const router = useRouter()

const loginFormRef = ref()
const loginForm = ref({
    number: "",
    password: ""
})
const loading = ref(false)
// 表单校验规则
const rules = reactive({
    number: [{ required: true, min: 5, max: 15, message: '用户名长度为5到12位', trigger: 'change' }],
    password: [{ required: true, min: 6, max: 15, message: '密码长度至少6位', trigger: 'change' },]
})

// 点击登录
const login = async () => {
    await loginFormRef.value.validate()
    // 校验通过才执行下面的
    loading.value = true
    try {
        await userStore.userLogin(loginForm.value)
        // 登录成功
        router.push('/')
        ElNotification({
            message: '登录成功',
            type: 'success',
            title: `Hi,${getTime()}`
        })
        loading.value = false
    } catch (error) {
        ElNotification({
            message: error.message,
            type: 'error',
        })
        loading.value = false
    }
}
</script>

<style lang="scss" scoped>
.login-container {
    width: 100%;
    height: 100vh;
    background: url("@/assets/images/background.jpg") no-repeat;
    background-size: cover;

    .login-form {
        position: relative;
        width: 80%;
        top: 30vh;
        background: url("@/assets/images/login_form.png") no-repeat;
        background-size: cover;
        padding: 40px;
        color: #fff;

        h1 {
            font-size: 40px;
        }

        h2 {
            font-size: 20px;
            margin: 20px 0;
        }

        .login-btn {
            width: 100%;
        }
    }
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在努力的前端小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值