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