✨作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
一、前言
随着科技的快速发展和智能手机的普及,移动互联网已经成为了人们生活中不可或缺的一部分。在教育领域,越来越多的家长和老师希望通过便捷的移动应用来实现家校互动,提高教育管理的效率。幼儿园作为孩子成长过程中的重要阶段,其管理方式的现代化和信息化显得尤为重要。因此,开发一款针对幼儿园管理的微信小程序/安卓APP,旨在满足家长、老师和管理人员的需求,提高幼儿园的管理水平和服务质量。
尽管目前已经有一些幼儿园管理应用在市场上出现,但它们在功能、用户体验和安全性方面仍存在诸多问题。例如,部分应用的功能过于简单,无法满足家长和老师在教育管理方面的多样化需求;部分应用的界面设计不够友好,导致用户难以快速上手;还有一些应用在数据安全方面存在隐患,可能泄露家长和学生的隐私信息。这些问题使得现有的解决方案无法完全满足幼儿园管理的需求,进一步强调了开发一款功能完善、易用且安全的幼儿园管理应用的必要性。
本课题旨在设计和开发一款集教学特色信息管理、课程分类管理、课程信息管理、学生活动管理、学生食谱管理、放假通知管理、留言反馈管理等功能于一体的幼儿园管理微信小程序/安卓APP。通过实现这些功能,我们将为家长、老师和管理人员提供一个便捷的沟通和协作平台,帮助他们更好地关注和参与孩子的教育过程,提高幼儿园的整体管理水平。
本课题的研究意义主要体现在以下几个方面:首先,它有助于推动幼儿园管理的现代化和信息化,提高教育服务质量;其次,通过提供丰富的功能和良好的用户体验,有助于加强家校之间的沟通与合作,增进孩子健康成长;再次,本课题的研究成果还将为其他教育机构提供借鉴和参考,推动整个教育行业的技术创新和发展。
二、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot
- 前端:微信小程序/Android+uniapp+Vue
三、系统界面展示
- 幼儿园管理微信小程序/安卓APP界面展示:
四、部分代码设计
- 微信小程序/安卓APP项目实战-代码参考:
@Controller
@RequestMapping(value = "/ls")
public class TeacherController {
@Autowired
private StudentService studentService;
@Autowired
private ClassService classService;
@Autowired
private NoticeService noticeService;
@Autowired
private SignService signService;
@Autowired
private UserService userService;
@Autowired
private UserChildrenService userChildrenService;
@Autowired
private CourseService courseService;
@RequestMapping("/stu")
public String stu(Model model) {
List<Classes> classes=classService.selectAllClasses();
model.addAttribute("cla", classes);
return "ls/stuPage";
}
//学生管理
/**
* Method name: teacherPage <BR>
* Description: 教师管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/stuMG")
public String teaMG(Model model) {
List<Classes> classes=classService.selectAllClasses();
model.addAttribute("cla", classes);
return "ls/student";
}
/**
* Method name: getAllStudentByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllStudentByLimit")
@ResponseBody
public Object getAllStudentByLimit(Children stuParameter) {
return studentService.getAllStudentByLimit(stuParameter);
}
/**
* Method name: addStuPage <BR>
* Description: 增加教师界面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/addStuPage")
public String addStuPage(Integer id, Model model) {
model.addAttribute("manageStu", id);
if (null != id) {
Children student = studentService.selectByPrimaryKey(id);
//UserChildren userChild = userChildrenService.selectById(id);
model.addAttribute("manageStu", student);
//model.addAttribute("manageChild", userChild);
UserChildren uc = userChildrenService.selectByUCId(student.getId());
model.addAttribute("uc", uc);
}
List<Classes> classes=classService.selectAllClasses();
model.addAttribute("cla", classes);
List<User> user=userService.selectAllJiazhang();
model.addAttribute("user", user);
return "ls/stuPageAdd";
}
/**
* Method name: addStu <BR>
* Description: 教师添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addStu")
public String addStu(Children student) {
try {
studentService.addStudent(student);
addUserChildren(student);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
public void addUserChildren(Children student) {
UserChildren userChildern = new UserChildren();
userChildern.setChildrenId(student.getId());
userChildern.setUserId(student.getUserId());
userChildern.setIsFaMa(student.getIsFaMa());
userChildern.setIsJinji(student.getIsJinji());
userChildrenService.addUserChildren(userChildern);
}
/**
* Method name: updateStudent <BR>
* Description: 更新教师 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/updateStudent")
public String updateStudent(Children studnet) {
UserChildren uc = new UserChildren();
uc.setId(studnet.getUcId());
uc.setChildrenId(studnet.getId());
uc.setIsFaMa(studnet.getIsFaMa());
uc.setIsJinji(studnet.getIsJinji());
uc.setUserId(studnet.getUserId());
userChildrenService.updateUC(uc);
return studentService.updateStu(studnet);
}
/**
* Method name: delClaTea <BR>
* Description: 批量删除教师<BR>
*
* @param ids
* @return String<BR>
*/
@RequestMapping(value = "delStudent")
@ResponseBody
@Transactional
public String delStudent(String[] ids) {
try {
for (String id : ids) {
studentService.delStudentById(Integer.parseInt(id));
}
return "SUCCESS";
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "ERROR";
}
}
//公告管理
/**
* Method name: gg <BR>
* Description: 教师管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/gg")
public String gg() {
return "ls/notice";
}
/**
* Method name: getAllNoticeByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllNoticeByLimit")
@ResponseBody
public Object getAllNoticeByLimit(Notice noticeParameter) {
return noticeService.getAllNoticeByLimit(noticeParameter);
}
/**
* Method name: addStuPage <BR>
* Description: 增加教师界面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/addNoticePage")
public String addNoticePage(Integer id, Model model) {
model.addAttribute("manageNotice", id);
if (null != id) {
Notice notice = noticeService.selectByPrimaryKey(id);
model.addAttribute("manageNotice", notice);
}
return "ls/noticeAdd";
}
/**
* Method name: addStu <BR>
* Description: 教师添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addNotice")
public String addNotice(Notice notice) {
try {
notice.setCreatTime(new Date());
noticeService.addNotice(notice);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
/**
* Method name: updateStudent <BR>
* Description: 更新教师 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/updateNotice")
public String updateNotice(Notice notice) {
return noticeService.updateStu(notice);
}
/**
* Method name: delClaTea <BR>
* Description: 批量删除教师<BR>
*
* @param ids
* @return String<BR>
*/
@RequestMapping(value = "delNotice")
@ResponseBody
@Transactional
public String delNotice(String[] ids) {
try {
for (String id : ids) {
noticeService.delNoticeById(Integer.parseInt(id));
}
return "SUCCESS";
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return "ERROR";
}
}
//考勤管理
/**
* Method name: lskq <BR>
* Description: 教师管理页面 <BR>
*
* @return String<BR>
*/
@RequestMapping(value = "/lskq")
public String lskq() {
return "ls/sign";
}
/**
* Method name: getAllSignByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
*
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllSignByLimit")
@ResponseBody
public Object getAllSignByLimit(Sign signParameter) {
return signService.getAllSignByLimit(signParameter);
}
//打卡
@RequestMapping(value = "/qianDaoTui")
public String qianDaoTui() {
return "ls/daKa";
}
/**
* Method name: addStu <BR>
* Description: 教师添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addSign")
public String addSign(Sign sign) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
try {
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String time = formatter.format(date).split(" ")[2];
String time1 = formatter.format(date).split(" ")[1];
String s=PropertyUtil.getConfigureProperties("startTime");
if(time.equals("上午") && time1.compareTo(s)>0) {
sign.setState(1);
}else {
sign.setState(3);
}
sign.setType(1);
sign.setSignIn(date);
sign.setKqrId(user.getUserId());
sign.setKqrType(user.getUserState());
signService.addSign(sign);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
/**
* Method name: addStu <BR>
* Description: 教师添加 <BR>
*
* @param user
* @return String<BR>
*/
@ResponseBody
@RequestMapping("/addQianTui")
public String addQianTui(Sign sign) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
try {
Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String time = formatter.format(date).split(" ")[2];
String time1 = formatter.format(date).split(" ")[1];
String s=PropertyUtil.getConfigureProperties("endTime");
if(time.equals("下午") && time1.compareTo(s)<0) {
sign.setState(1);
}else{
sign.setState(2);
}
sign.setType(2);
sign.setSignIn(date);
sign.setKqrId(user.getUserId());
sign.setKqrType(user.getUserState());
signService.addSign(sign);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
//学生考勤
@RequestMapping(value = "/xskq")
public String xskq() {
return "ls/childSign";
}
/**
* Method name: getAllSignByLimit <BR>
* Description: 根据条件获取所有教师 <BR>
* @param userParameter
* @return Object<BR>
*/
@RequestMapping("/getAllChildSignByLimit")
@ResponseBody
public Object getAllChildSignByLimit(Sign signParameter) {
return signService.getAllChildSignByLimit(signParameter);
}
//所有老师签到的总次数统计
@RequestMapping(value = "/kqtj")
public String kqtj(Model model) {
List<TongJi> ts = signService.getAllTeacherCount();
List<String> names = new ArrayList<>();
List<Integer> zc = new ArrayList<>();
List<Integer> tq = new ArrayList<>();
List<Integer> cd = new ArrayList<>();
for (TongJi tongJi : ts) {
names.add(tongJi.getUserName());
zc.add(tongJi.getZhengChang());
tq.add(tongJi.getTiQian());
cd.add(tongJi.getChiDao());
}
model.addAttribute("names", names);
model.addAttribute("zc", zc);
model.addAttribute("tq", tq);
model.addAttribute("cd", cd);
return "ls/tongJi";
}
//所有学生签到的总次数统计
@RequestMapping(value = "/tongJiXueSheng")
public String tongJiXueSheng(Model model) {
List<TongJi> ts = signService.getAllChildCount();
List<String> names = new ArrayList<>();
List<Integer> zc = new ArrayList<>();
List<Integer> tq = new ArrayList<>();
List<Integer> cd = new ArrayList<>();
for (TongJi tongJi : ts) {
names.add(tongJi.getUserName());
zc.add(tongJi.getZhengChang());
tq.add(tongJi.getTiQian());
cd.add(tongJi.getChiDao());
}
model.addAttribute("names", names);
model.addAttribute("zc", zc);
model.addAttribute("tq", tq);
model.addAttribute("cd", cd);
return "ls/tongJiXueSheng";
}
@RequestMapping(value = "/course")
public String course(Model model) {
return "ls/course";
}
//课程
@RequestMapping(value = "/courseAdd")
public String courseAdd(Model model) {
List<User> users = userService.selectAllTea();
model.addAttribute("users", users);
List<Classes> clas = classService.selectAllClasses();
model.addAttribute("cla", clas);
return "ls/courseAdd";
}
@RequestMapping("/getAllCourseByLimit")
@ResponseBody
public Object getAllCourseByLimit(Course course) {
return courseService.getAllCourseByLimit(course);
}
@ResponseBody
@RequestMapping("/addCourse")
public String addCourse(Course course) {
course.setCreateTime(new Date());
try {
courseService.addCourse(course);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
@ResponseBody
@RequestMapping("/delCourse")
public String delCourse(Integer id) {
try {
courseService.delCourse(id);
return "SUCCESS";
} catch (Exception e) {
return "ERR";
}
}
}
@Controller
public class LoginController {
@Autowired
private ResultMap resultMap;
@Autowired
private UserService userService;// 用户登录service
@Autowired
private PageService pageService;
private final Logger logger = LoggerFactory.getLogger(LoginController.class);
@RequestMapping(value = "/notLogin", method = RequestMethod.GET)
@ResponseBody
public ResultMap notLogin() {
logger.warn("尚未登陆!");
return resultMap.success().message("您尚未登陆!");
}
@RequestMapping(value = "/notRole", method = RequestMethod.GET)
@ResponseBody
public ResultMap notRole() {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (user != null) {
logger.info("{}---没有权限!", user.getUserName());
}
return resultMap.success().message("您没有权限!");
}
/**
* Method name: logout <BR>
* Description: 退出登录 <BR>
* @return String<BR>
*/
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout() {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
logger.info("{}---退出登录!", user.getUserName());
}
subject.logout();
return "login";
}
/**
* Method name: login <BR>
* Description: 登录验证 <BR>
* Remark: <BR>
*
* @param username 用户名
* @param password 密码
* @return ResultMap<BR>
*/
@RequestMapping(value = "/login")
@ResponseBody
public ResultMap login(String username, String password) {
return userService.login(username, password);
}
/**
* Method name: login <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/index")
public String login() {
return "login";
}
/**
* Method name: index <BR>
* Description: 登录页面 <BR>
*
* @return String login.html<BR>
*/
@RequestMapping(value = "/")
public String index(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
model.addAttribute("user", user);
List<Page> pageList = pageService.getAllRolePageByUserId(user.getUserId());
model.addAttribute("pageList", pageList);
return "index";
} else {
return "login";
}
}
/**
* Method name: main <BR>
* Description: 进入主页面 <BR>
*
* @param model
* @return String<BR>
*/
@RequestMapping(value = "/main")
public String main(Model model) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
if (null != user) {
model.addAttribute("user", user);
} else {
return "login";
}
List<Page> pageList = pageService.getAllRolePageByUserId(user.getUserId());
model.addAttribute("pageList", pageList);
return "index";
}
/**
* Method name: checkUserPassword <BR>
* Description: 检测旧密码是否正确 <BR>
*
* @param password 旧密码
* @return boolean 是否正确<BR>
*/
@RequestMapping(value = "/user/checkUserPassword")
@ResponseBody
public boolean checkUserPassword(String password) {
return userService.checkUserPassword(password);
}
/**
* Method name: updatePassword <BR>
* Description: 更新密码 <BR>
*
* @param password 旧密码
* @return String 是否成功<BR>
*/
@RequestMapping(value = "/user/updatePassword")
@ResponseBody
public String updatePassword(String password) {
return userService.updatePassword(password);
}
}
五、论文参考
- 计算机毕业设计选题推荐-幼儿园管理微信小程序/安卓APP-论文参考:
六、系统视频
幼儿园管理微信小程序/安卓APP-项目视频:
计算机毕业设计选题推荐-幼儿园管理微信小程序/安卓APP
结语
计算机毕业设计选题推荐-幼儿园管理微信小程序/安卓APP-项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇