Functional Design and technology:
General users: login registration, homepage operating system teaching information browsing, operating system teaching classification view, operating system teaching details view, user comment exchange, reply discussion, collection module, collection module, page view statistics, concerned users, my personal center, my concern, my collection, etc
Administrator: login and registered user statistics, classified article statistics, teaching classification management, article information classification management, comment management, reply management, user management, personal information management, exit and so on.
Main technologies: Java, SpringMVC, Mybatis, mysql, Tomcat, jquery, Layui, Bootstarp, JavaScript, HTML, CSS, JSP, log4j and other common basic technologies.
The video demo is as follows:# Springboot Operating system teaching information platform. Mp4
Screenshots of main functions:
User login registration:
System Platform home page:
Category View information:
Data article view:Users can bookmark and view author information
Comment reply exchange:Comment, reply and exchange on the article
Collection module:
Personal Data Module:
Background management module:
Release Type Management:
Release details Management:
Comment response management:
User information management:
Personal Center Management:
Main code class implementation:
/** * User controller *@author lyy
*
*/
@RestController
@RequestMapping("/admin/user")
public class UserAdminController {
@Resource
private UserService userService;
@Value("${MD5Salt}")
private String salt; // md5 encryption salt
/** * Find user * by ID@param userId
* @return* /
@RequestMapping("/findById")
public Map<String, Object> findById(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
User user = userService.findById(userId);
resultMap.put("errorNo".0);
resultMap.put("data", user);
return resultMap;
}
/**
* 分页查询用户
* @param user
* @param page
* @return* /
@RequestMapping("/list")
public Map<String, Object> list(User user,
@RequestParam(value = "latelyLoginTimes", required = false) String latelyLoginTimes,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
String s_bregistrationDate = null; // Start time
String s_eregistrationDate = null; // End time
if (StringUtil.isNotEmpty(latelyLoginTimes)) {
String[] strs = latelyLoginTimes.split("-"); // Split the time period
s_bregistrationDate = strs[0];
s_eregistrationDate = strs[1];
}
List<User> userList = userService.list(user, s_bregistrationDate, s_eregistrationDate, page - 1, pageSize);
Long total = userService.getCount(user, s_bregistrationDate, s_eregistrationDate);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("errorNo".0);
resultMap.put("data", userList);
resultMap.put("total", total);
return resultMap;
}
/** * unsubscribe *@param request
* @param userId
* @return* /
@RequestMapping("/removeFocusUser")
public ModelAndView removeFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// Current login user
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/** * follow user *@param request
* @param userId
* @return* /
@RequestMapping("/addFocusUser")
public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// Current login user
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
@RequestMapping("/addFocusUser/{userId}")
public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
HttpSession session) {
ModelAndView mav = new ModelAndView();
User user = (User) session.getAttribute("user");// Current login user
String userIds = user.getUserIds();
List<String> tempList = new ArrayList<>();
if(userIds ! =null) {
tempList = Arrays.asList(userIds.split(","));
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId.toString());
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/** * unsubscribe *@param request
* @return* /
@RequestMapping("/removeCollection")
public ModelAndView removeCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// Current login user
String artIds = user.getArticleIds();
List<String> tempList = Arrays.asList(artIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.remove(artId);
String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
/** * collect *@param request
* @return* /
@RequestMapping("/addCollection")
public ModelAndView addCollection(HttpServletRequest request, String artId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// Current login user
// String artIds = user.getArticleIds();
// List
tempList= Arrays.asList(artIds.split(","));
// List
lineIdList = new ArrayList<>(tempList);
// lineIdList.add(artId);
// String ret = StringUtils.join(lineIdList, ",");
user.setArticleIds(artId);
userService.save(user);
mav.setViewName("redirect:/viewCollection");
return mav;
}
@RequestMapping("/delete")
public Map<String, Object> delete(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
userService.delete(userId);
resultMap.put("errorNo".0);
return resultMap;
}
Copy the code
Main database design:
** database name: ** TeachingWebsite
** Issue: **V1.0.0
** Database table design description
Table t_admin
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | admin_id | int | 10 | 0 | N | Y |
2 | head_portrait | varchar | 200 | 0 | Y | N |
3 | password | varchar | 200 | 0 | Y | N |
4 | phone | varchar | 200 | 0 | Y | N |
5 | sex | varchar | 50 | 0 | Y | N |
6 | signature | varchar | 500 | 0 | Y | N |
7 | true_name | varchar | 200 | 0 | Y | N |
8 | user_name | varchar | 200 | 0 | Y | N |
Table t_article
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | article_id | int | 10 | 0 | N | Y |
2 | author | varchar | 200 | 0 | N | N |
3 | click | int | 10 | 0 | Y | N |
4 | comment_num | int | 10 | 0 | Y | N |
5 | content | text | 65535 | 0 | Y | N |
6 | image_name | varchar | 255 | 0 | Y | N |
7 | is_original | int | 10 | 0 | Y | N |
8 | is_top | int | 10 | 0 | Y | N |
9 | publish_date | datetime | 19 | 0 | Y | N |
10 | title | varchar | 200 | 0 | N | N |
11 | classify_id | int | 10 | 0 | Y | N |
12 | user_id | int | 10 | 0 | Y | N |
Table t_blogger
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | blogger_id | int | 10 | 0 | N | Y |
2 | head_portrait | varchar | 200 | 0 | Y | N |
3 | motto | varchar | 500 | 0 | Y | N |
4 | nick_name | varchar | 200 | 0 | Y | N |
5 | site | varchar | 200 | 0 | Y | N |
6 | signature | varchar | 500 | 0 | Y | N |
Table t_classify
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | classify_id | int | 10 | 0 | N | Y |
2 | classify_name | varchar | 200 | 0 | N | N |
Table t_comment
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | comment_id | int | 10 | 0 | N | Y |
2 | comment_date | datetime | 19 | 0 | Y | N |
3 | content | varchar | 500 | 0 | Y | N |
4 | article_id | int | 10 | 0 | Y | N |
5 | user_id | int | 10 | 0 | Y | N |
Table t_link
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | link_id | int | 10 | 0 | N | Y |
2 | link_email | varchar | 200 | 0 | Y | N |
3 | link_name | varchar | 200 | 0 | Y | N |
4 | link_url | varchar | 200 | 0 | Y | N |
5 | order_num | int | 10 | 0 | Y | N |
Table t_notice
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | notice_id | int | 10 | 0 | N | Y |
2 | grade | int | 10 | 0 | Y | N |
3 | content | varchar | 500 | 0 | Y | N |
4 | publish_date | datetime | 19 | 0 | Y | N |
Table t_reply
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | reply_id | int | 10 | 0 | N | Y |
2 | content | varchar | 500 | 0 | Y | N |
3 | reply_date | datetime | 19 | 0 | Y | N |
4 | comment_id | int | 10 | 0 | Y | N |
5 | user_id | int | 10 | 0 | Y | N |
Table t_timeline
Serial number | The name of the | The data type | The length of the | Decimal places | Allows null values | A primary key |
---|---|---|---|---|---|---|
1 | timeline_id | int | 10 | 0 | N | Y |
2 | content | varchar | 200 | 0 | Y | N |
3 | publish_date | datetime | 19 | 0 | Y | N |
4 | month | varchar | 200 | 0 | Y | N |
5 | year | varchar | 200 | 0 | Y | N |
Design Project Summary:
Through the recent mastery and learning of Java object-oriented programming, front-end knowledge and Java framework, as well as the development of this period of education and teaching system, I have learned more about the importance of Java learning. In the development of this system, I not only carried out many tests, but also tested the function of the system. In the implementation process of the paper, I put a lot of efforts into the realization of Java proficiency, and then I felt very happy to apply related technologies. In the process, I discovered that Java has an enormous amount of functionality to explore. Java is encapsulation, abstraction, polymorphism, and inheritance. The code can be reused and expanded to greatly improve the overall speed and efficiency of software development. As a student of educational technology, learning Java language well is of great significance to my future employment or the expansion of my knowledge. The main purpose of my study of programming is to improve my key skills and techniques in programming solutions to practical problems. Java object-oriented programming is a practical relatively very strong language, SpringMVC framework MVC three-tier architecture pattern, and the framework encountered in the design pattern of data access and logic operations are concentrated in the components to enhance the system’s reuse and expansibility. The expansibility of the system is greatly enhanced. As well as front-end jQuery, JS, JSP, CSS style master let me to the layout of the web page, style adjustment, font and so on to achieve more accurate web effect.
Everyone likes, likes, likes, comments, clocked the article updated 112/365 days