The rapid evolution of internet technologies has enabled efficient, secure, and scalable solutions for managing institutional data. In higher education environments, traditional methods of handling student records, assignments, announcements, and forum discussions often suffer from inefficiencies such as high error rates, weak data security, and excessive manual labor. To address these challenges, a Smart Campus Management System leveraging modern web and mobile technologies offers a structured and automated alternative.
This system is built using Java with the Spring Boot framework on the backend, backed by a MySQL 5.7 database. The frontend for administrative operations is implemented via a web interface, while end-user interactions—particularly for students and faculty—are facilitated through a WeChat mini program developed using UniApp and HBuilder X. The entire project is managed with Maven 3.5.4 and compatible with standard Java IDEs like IntelliJ IDEA or Eclipse, running on JDK 1.8.
Core Functional Modules
Student Information Management
Administrators can perform CRUD (Create, Read, Update, Delete) operations on student records. The interface supports fuzzy search by usrename, enabling quick lookups even with partial input.
Assignment Management
This module allows administrators to publish, edit, or invalidate assignments. Filtering options include assignment title (fuzzy match) and category-based queries, improving data retrieval efficiency.
Announcement Management
Official notices can be created, modified, or queried based on various criteria. This ensures timely dissemination of campus-wide information with centralized control.
Forum Moderation
Administrators oversee discussion threads by adding, editing, or removing posts as needed, maintaining a constructive and relevant academic discourse environment.
Backend API Implementation Examples
User Authentication
@IgnoreAuth
@PostMapping("/login")
public R authenticate(String username, String password, HttpServletRequest request) {
UserEntity user = userService.selectOne(
new EntityWrapper<UserEntity>().eq("username", username)
);
if (user == null || !user.getPassword().equals(password)) {
return R.error("Invalid username or password");
}
String token = tokenService.generateToken(user.getId(), username, "users", user.getRole());
return R.ok().put("token", token);
}
User Registration
@IgnoreAuth
@PostMapping("/register")
public R register(@RequestBody UserEntity newUser) {
if (userService.selectOne(
new EntityWrapper<UserEntity>().eq("username", newUser.getUsername())
) != null) {
return R.error("Username already exists");
}
userService.insert(newUser);
return R.ok();
}
Password Reset
@IgnoreAuth
@RequestMapping("/resetPass")
public R resetPassword(String username) {
UserEntity user = userService.selectOne(
new EntityWrapper<UserEntity>().eq("username", username)
);
if (user == null) {
return R.error("Account not found");
}
user.setPassword("123456");
userService.update(user, null);
return R.ok("Password reset to: 123456");
}
Profile Update
@RequestMapping("/update")
public R updateUser(@RequestBody UserEntity updatedUser) {
UserEntity existing = userService.selectOne(
new EntityWrapper<UserEntity>().eq("username", updatedUser.getUsername())
);
if (existing != null && !existing.getId().equals(updatedUser.getId())) {
return R.error("Username is already taken");
}
userService.updateById(updatedUser);
return R.ok();
}
Bulk Deletion
@RequestMapping("/delete")
public R removeUsers(@RequestBody Long[] userIds) {
userService.deleteBatchIds(Arrays.asList(userIds));
return R.ok();
}
Data Persistence
@PostMapping("/save")
public R createUser(@RequestBody UserEntity user) {
if (userService.selectOne(
new EntityWrapper<UserEntity>().eq("username", user.getUsername())
) != null) {
return R.error("Username already registered");
}
userService.insert(user);
return R.ok();
}