Northeastern University PROFESSIONAL PRACTICE REPORT AT NEUSOFT CORPORATION 学 号(Student ID): 姓 专 名(Name): 业(Major): 学 Software Engineering 院(College): Software College 校内导师 Supervisor of NEU: 校外导师 Tutor of Neusoft: Page 1 Acknowledgement I would like to express my deepest gratitude to all those who have contributed to the successful completion of this project. First and foremost, I would like to thank my supervisor, (name), for their guidance, support, and encouragement throughout my research project. Their expertise and insightful comments have helped me to develop my ideas and research skills. I would also like to acknowledge the assistance given by the staff and professors at neu, who have provided valuable resources and feedback, which have greatly contributed to the quality of this thesis. Additionally, I am grateful for the support and encouragement from my friends and family, who have always been there for me throughout this journey. Finally, I would like to acknowledge all the participants who voluntarily took part in my study, without whom this research would not have been possible. Once again, thank you to everyone who has played a role in this thesis. I am deeply grateful for your contributions and support. Page 2 Table of contents Summary ......................................................................................................................................... 4 Chapter One Introduction.................................................................................................................. 6 1.1 Development background ................................................................................................... 6 1.2 Significance of development ............................................................................................... 7 Chapter 2 System Analysis ............................................................................................................... 7 2.1 System requirements analysis ............................................................................................. 8 After comprehensive analysis, it is determined that the system includes the following functions: ................................................Ошибка! Закладка не определена. 2.2 System Development and Design Ideas .............................................................................. 8 2.3 System development steps .................................................................................................. 9 2.4 Main technologies of the system ......................................................................................... 9 2.4.1 Three-tier architecture of B/S system......................................................................... 9 2.4.2 Introduction to springboot ...................................................................................... 10 2.4.3 springboot advantages ............................................................................................ 11 2.4.4vue ........................................................................................................................... 11 2.4.5 Advantages of vue .................................................................................................. 12 2.5 System operating environment and development platform ..................................... 14 2.5.1 Hardware equipment and operating system ........................................................... 14 2.5.2 System Development Tools .................................................................................... 14 2.5.3 Introduction to Development Tools ........................................................................ 14 Chapter 3 System Design ................................................................................................................ 17 3.1 System flow....................................................................................................................... 17 3.2 Division of system function modules ................................................................................ 21 3.2.1 User Management .................................................................................................. 25 3.2.3 Head teacher information management .................................................................. 26 3.2.4 Student Information Management.......................................................................... 26 3.2.5 Basic information ................................................................................................... 26 3.2.6 Results Information ................................................................................................ 26 3.2.6 Permission information .......................................................................................... 26 3.3 Database design................................................................................................................. 26 3.3.1 Analysis of database requirements ......................................................................... 26 3.3.2 Logical Design of Database ................................................................................... 27 Chapter 4 System Implementation .................................................................................................. 30 4.1 Main Interface Realization ................................................................................................ 30 4.1.1 User login ............................................................................................................... 30 4.1.2 Home page ............................................................................................................. 30 Page 3 4.1.3 Head teacher information management .................................................................. 31 4.1.4 Student Management Management ........................................................................ 21 4.1.5 Basic Information Management ............................................................................. 22 4.1.6 Class information management .............................................................................. 23 4.1.7 Course information management ........................................................................... 24 4.1.6 Exam List ............................................................................................................... 25 4.1.7 Results Information Display .................................................................................. 26 4.1.8 User Information Display ....................................................................................... 27 4.2 Realization of main function program .............................................................................. 28 4.2.1 Establishment of database connection.................................................................... 29 4.2.2 Realization of login function .................................................................................. 35 4.2.3 Head teacher information related pages ................................................................. 36 Chapter 5 System Testing................................................................................................................ 37 5.1 Purpose and principles of software testing ........................................................................ 38 Chapter 6 Summary ........................................................................................................................ 41 1. Learned a lot of technologies needed in Java development. ............................................... 40 future work ...................................................................................................................................... 44 references ........................................................................................................................................ 45 Page 4 Abstract JAVA is an object-oriented programming language launched by the former SUN company (acquired by Oracle) in the mid-1990s. It is currently widely used in the development of large and medium-sized application systems based on WEB. This design comprehensively applies the characteristics of JAVA web technology, and at the same time applies springboot technology and MySQL database technology to realize a Neusoft Opportunity Project Management System(NPMS) based on LAN.The benefits of NPMS are numerous. Firstly, the NPMS enables businesses to identify and exploit new revenue streams, which increases profitability and growth. Secondly, the NPMS enables businesses to focus on opportunities that align with their strategic objectives, maximizing the use of resources, and reducing the risk of investment in opportunities that are unlikely to yield the expected returns. Thirdly, the NPMS enhances collaboration and communication across different business units, improving decision-making and reducing silos. Fourthly, the OMS provides real-time visibility into the status of each opportunity, facilitating proactive management and minimizing delays. Finally, the NPMS empowers businesses with the flexibility to adapt to changing market conditions and opportunities, ensuring a competitive edge. 【Keywords】JAVA, springboot, MySQL, Vue, NPMS Page 5 Chapter One Introduction 1.1 Development background An opportunity project management system is a software tool that helps organizations manage projects from start to finish. It allows project managers to track task progress, assign resources, manage timelines, collaborate with team members, and analyze project performance. Such a system can enhance the efficiency of project management processes by streamlining communication, reducing errors, and minimizing delays. By automating repetitive tasks and providing real-time updates, it enables project teams to focus on more critical aspects of the project, which can ultimately fail project. The Neusoft Opportunity Project Management system is designed to help organizations manage their projects from initiation to completion. It provides a centralized platform for project managers to collaborate with team members, track project progress, and ensure that the project is delivered on time and within budget. The system also provides real-time reporting and analysis, enabling project managers to make informed decisions and take corrective actions if necessary. The Neusoft Opportunity Project Management system is highly customization and can be tailored to meet the specific needs of different organizations. It can be used to manage projects of any size and complexity, from small software development projects to large-scale enterprise-wide initiatives. Overall, the Neusoft Opportunity Project Management system is a powerful tool that enables organizations to streamline their project management processes and improve project outcomes. Page 6 1.2 Significance of development he development of the Neusoft Opportunity Project Management system is significant for several reasons: Improved Project Management: The Neusoft Opportunity Project Management system provides organizations with a comprehensive toolset to manage their projects more effectively. The system offers features like task management, resource allocation, risk management, issue tracking, and collaboration tools that enable project managers to streamline their project management processes and improve project outcomes. Real-time Reporting and Analysis: The Neusoft Opportunity Project Management system offers real-time reporting and analysis capabilities, allowing project managers to stay informed about the project's progress, identify potential issues, and take corrective actions if necessary. This enables organizations to make informed decisions and respond quickly to changes in the project environment. Increased Productivity: The Neusoft Opportunity Project Management system enables organizations to increase their productivity by providing a centralized platform for project management. The system streamlines communication, reduces manual data entry, and provides real-time visibility into project progress, enabling team members to focus on delivering high-quality work. Customizability: The Neusoft Opportunity Project Management system is highly customizable, allowing organizations to tailor the system to their specific needs. This means that organizations can choose the features that are most relevant to their projects, improving the system's usability and effectiveness. Scalability: The Neusoft Opportunity Project Management system is built on a scalable architecture, allowing it to handle projects of any size and complexity. This means that the system can grow and adapt as the organization's needs change, providing a long-term solution for project management. Overall, the development of the Neusoft Opportunity Project Management system is significant as it provides organizations with a comprehensive and customizable toolset to manage their projects more effectively, increase productivity, and achieve their strategic goals. Page 7 Chapter 2 System Analysis 2.1 System requirements analysis A system requirements analysis for the Neusoft Opportunity Project Management system would involve identifying the functional and non-functional requirements of the system. This would include: Functional Requirements: These are the requirements that define what the system should do. Some of the functional requirements for the Neusoft Opportunity Project Management system might include: Task Management: The system should allow project managers to create and assign tasks to team members, set deadlines, and track progress. Resource Allocation: The system should enable project managers to allocate resources, such as people, equipment, and materials, to tasks and projects. Risk Management: The system should enable project managers to identify, assess, and mitigate risks associated with the project. Collaboration: The system should provide collaboration tools, such as messaging, file sharing, and commenting, to enable team members to work together efficiently. Reporting: The system should provide real-time reporting and analysis capabilities, enabling project managers to track progress, identify potential issues, and make informed decisions. Non-functional Requirements: These are the requirements that define how the system should perform. Some of the non-functional requirements for the Neusoft Opportunity Project Management system might include: Performance: The system should be able to handle large amounts of data and users without slowing down. Security: The system should be secure, protecting data and user information from unauthorized access. Scalability: The system should be able to handle projects of any size and complexity. Usability: The system should be easy to use, with an intuitive interface that requires minimal training. Compatibility: The system should be compatible with different operating systems and browsers. Overall, a system requirements analysis for the Neusoft Opportunity Project Management system would help ensure that the system meets the needs of the organization, is user-friendly, and performs reliably and securely. Page 8 2.2 System Development and Design Ideas The system adopts front-end and back-end separation technology, which is not only convenient for various combinations and modifications of system functions, but also convenient for technical maintenance personnel who have not participated in the development to supplement and maintain; The system should have the database maintenance function, and perform operations such as adding, deleting, modifying, and backing up data in a timely manner according to user needs. 2.3 System development steps The establishment and application of the opportunity information management system can be divided into three stages: overall planning, system development, and system operation. The system development stage can be further divided into system analysis, system design, and system implementation. The above-mentioned stages are arranged into a strict linear development sequence. In each stage of work, complete technical documents are produced as the guidance and basis for the next stage of work. At each stage, the documents should be reviewed to make sure that the work of this stage has been completed and achieved The next stage can only be entered after the requirement, and at the same time, the previously reviewed results cannot be easily changed in the future work. The main advantage of the above-mentioned development method is that it is convenient for the organization and management of the development work, and it can greatly reduce the complexity of the development of the online learning system. Many examples of system development at home and abroad have proved that this is an effective development method. 2.4 Main technologies of the system 2.4.1 Three-tier architecture of B/S system In the B/S system, users can send requests to many servers distributed on the network through the browser. The B/S structure greatly simplifies the work of the client. Only a small amount of client software needs to be installed and configured on the client, and the server will take on more work. The access to the database and the execution of the application program will be performed on the server. Finish. Under the B/S three-tier architecture, the presentation layer (view), functional layer (controller), and data layer (model) are divided into three relatively independent units: The first layer - presentation layer: Web browser The display logic of the system is contained in the presentation layer, located on the client side. Its Page 9 task is to make a service request from a Web browser to a Web server on the network. After the Web server authenticates the user's identity, it uses the HTTP protocol to transmit the required homepage to the client, and the client accepts the transmitted homepage file. and display it on the web browser. The second layer--functional layer: Web server with application extension function The transaction processing logic of the system is included in the functional layer, which is located on the Web server side. Its task is to accept the user's request. First, it needs to execute the corresponding extended application program to connect to the database, and submit a data processing application to the database server through SQL and other methods. The background database server submits the data processing results to the Web server, and then the Web The server sends back to the client. The third layer - data layer: database server The data processing logic of the system is included in the data layer, which is located on the database server side. Its task is to accept the Web server's request for database manipulation, realize the functions of querying, modifying, updating, and deleting the database, and submit the operation results to the Web server. It can be seen from the above analysis that the B/S architecture separates the transaction processing logic module of the C/S structure from the tasks of the client, and a separate layer is responsible for its tasks, so that the pressure on the client It is greatly reduced, and the load is evenly distributed to the Web server, so the original C/S structure is transformed into a B/S structure. 2.4.2 Introduction to springboot SpringBoot is a brand-new framework designed to simplify the initial construction and development process of Spring applications. The framework uses a specific way (integrated starter, convention over configuration) to configure, so that developers do not need to define boilerplate configuration. SpringBoot provides a new programming paradigm that can develop Spring projects more quickly and conveniently. During the Page 10 development process, you can focus on the functional development of the application itself without spending too much effort on Spring configuration. SpringBoot is designed based on Spring4 and inherits the excellent genes of the original Spring framework. SpringBoot is not a framework, but a collection of class libraries. Maven or gradle projects can import corresponding dependencies to use SpringBoot without having to manage the versions of these class libraries by themselves. 2.4.3 Springboot Advantages 1. Provide a faster entry experience for Spring-based project development: especially for developers who are just starting to use the Spring framework, they don't need to care about which jar packages need to be imported when using the Spring framework, and they don't need to care about the integration of the Spring framework with other frameworks. which configuration files. SpringBoot will automatically configure Spring. 2. There is no need to manually manage the version of the dependent jar package: SpringBoot manages all the dependent versions provided by it through the spring boot starter. When SpringBoot is upgraded, the versions of these dependencies will also be upgraded. Individuals do not need to specify the version number, but they can also automatically Define the version number to override SpringBoot's default. 3. Automatic configuration without XML: SpringBoot tries to automatically configure your application based on the jar dependencies you add. 4. Embedded Tomcat, no need to deploy war files. When we start or deploy a traditional project, we need to put the war package of the project in the specified directory of the server (such as Tomcat, JBoss), and then start the server. The SpringBoot project does not need to deploy the war file to the server when it starts. SpringBoot has built-in Tomcat and Jetty containers. When the server starts the SpringBoot project, it can be started directly through the jar command. When starting in the development IDE, it only needs to run the main method of the Application class. 5. Simplify Maven configuration: SpringBoot manages jar packages through spring boot starter, no need to manually configure the version of jar packages. Before we configured the jar package, we needed to find the version number of the jar package, but in the SpringBoot project, there was no need to manage the version number. 2.4.4 Vue Vue is a set of frameworks for building user interfaces. In my opinion, progressive stands for: Least assertive. Each framework will inevitably have its own characteristics, which will have certain requirements for users. These requirements are propositions. The strength of the proposition will affect the way it is used in business development. Simply put, for modules or functions in vue that you are not familiar with and are not sure about, you can not use them, or you can replace them with Page 11 technologies that you are familiar with and are sure about. Does this look very friendly? Compared with other frameworks, there are few hard requirements, and you can use the framework gradually. In order to realize the development concept of front-end and back-end separation, develop the front-end SPA (single page web application) project, realize the technical framework of a series of work such as data binding, routing configuration, and project compilation and packaging. Vue has a famous family bucket series, including vue-router (http://router.vuejs.org), vuex (http://vuex.vuejs.org), vue-resource (https://github.com/ pagekit/vue-resource). Coupled with the construction tool vue-cli and sass style, it is the core composition of a complete vue project. 2.4.5 Advantages of vue 1Lightweight framework Focus only on the view layer, which is a collection of views to build data, with a size of only tens of kb. Vue.js provides efficient data binding and a flexible component system through a concise API 2, Easy to learn English development, English documents, no language barriers, easy to understand and develop . 3. Two-way data binding This is called reactive data binding. The responsiveness here is not the responsive layout in the @media media query, but that vue.js will automatically respond synchronously to changes in certain data on the page. That is to say, vue.js will automatically respond to changes in data, and modify all bound data and view content according to the binding relationship pre-written by the user in the code. And this binding relationship is declared with the v-model attribute of the input tag, so you may also see that someone roughly calls vue.js a template engine for declarative rendering elsewhere. This is the biggest advantage of vue.js. The two-way binding of data is realized through the idea of MVVM, so that developers no longer need to operate DOM objects, and have more time to think about business logic. Page 12 4. Componentization In front-end applications, can we also package modules like programming? This introduces the idea of component development. Vue.js splits various modules in a single-page application into individual components (components) through components. We only need to write various component tags in the parent application (occupancy), and in Write the parameters to be passed to the component in the component tag (just like passing parameters to a function, this parameter is called a property of the component), and then write the implementation of each component (filling the hole), and then the entire application is finished . 5. View, data, structure separation Make data changes easier, do not need to modify the logic code, only need to operate the data to complete the relevant operations 6.Virtual DOM Now the network speed is getting faster and faster. Many people have dozens or even hundreds of M of optical fibers in their homes, and mobile phones have also started with 4G. It stands to reason that a webpage is only a few hundred K, and the browser itself will cache many resource files. So why does it feel very slow to open a page that has been opened before and has been cached with tens of M fibers? This is because the browser itself has a performance bottleneck when dealing with DOM, especially in traditional development, when JQuery or native JavaScript DOM operation functions are used to frequently operate on the DOM, the browser must constantly render new DOM trees. Causes the page to look very stuck. And Virtual DOM is the English of virtual DOM. Simply put, it is a kind of calculation that can be performed through JavaScript in advance, and the final DOM operation can be calculated and optimized. Since this DOM operation is a preprocessing operation, there is no real Manipulate DOM, so it is called virtual DOM. Finally, the DOM operation is actually submitted after the calculation is completed, and the DOM operation changes are reflected on the DOM tree. 7. Run faster Compared with react, it also operates virtual dom. In terms of performance, vue has great advantages Page 13 2.5 System operating environment and development platform 2.5.1 Hardware equipment and operating system Server: A high-performance PC configured above inter Xeon e3 (or an equivalent CPU), with a network interface card (NIC), a memory of more than 4G, and a hard disk of more than 1T. The database software mysql, also can choose the backup server. operating system:OpenSuSE Client: PC configured above i3 (or equivalent CPU), with network interface card (NIC), memory should be above 1G, and hard disk should be above 80G. Windows XP or above operating system, with a web browser installed. Network: The server and client should have network connectivity. Configure the TCP/IP protocol. 2.5.2 System Development Tools Computer configuration: thinkpad brand machine CPU: i5 memory: DDR 2G hard disk: 150G operating system:win 10 Development environment: ideawebstorm WebService Platform:Tomcat 8.0 database:mysql 5.5 jdk:8.0 2.5.3 Introduction to Development Tools (1) Overview of Ideas The full name of IDEA is IntelliJ IDEA, which is an integrated environment for Java language development. IntelliJ is recognized as one of the best Java development tools in the industry, especially in intelligent code assistants, automatic code prompts, refactoring, J2EE support, various version tools (git , svn, github, etc.), JUnit, CVS integration, code analysis, innovative GUI design and other functions can be said to be extraordinary. IDEA is a product of JetBrains, a company headquartered in Prague, the capital of the Czech Republic, whose developers are mainly Eastern European programmers known for their rigor. useIdeaWe can greatly improve work efficiency in the development and release of database and J2EE, and the integration of application server. Introduction to Idea functions Smart selection: In many cases, we want to select a certain method, or a certain cycle, or slowly expand the selection step by step from a variable to the entire class. IDEA provides this syntax-based selection. In the default setting, Ctrl + W can realize the continuous expansion of the selection range, which is especially convenient when refactoring. Page 14 1. Rich navigation mode: IDEA provides a rich navigation viewing mode, such as Ctrl + E to display the recently opened file, Ctrl + N to display the class name search box you want to display (this box also has a smart supplementary function, when you IDEA will display all candidate class names after entering the letter). In the most basic Project view, you can also choose a variety of views. 2,History function: Without going through the version management server, IDEA alone can view the history of files in any project, and you can easily restore them when the version is restored. 3.Perfect support for JUnit 4.Superior support for refactoring: IDEA is the first to support refactoring among all IDEs, and its excellent refactoring capabilities have always been one of its main selling points. 5.Coding assistance: toString(), hashCode(), equals() and all get/set methods advocated in the Java specification, you can automatically generate code without any input, thus saving you from boring basic methods Freedom from coding. 6.Flexible typesetting function: Basically all IDEs have a typesetting function, but only IDEA is humane, because it supports the customization of typesetting modes, and you can use different typesetting methods according to different project requirements. 7. Perfect support for XML: Full prompt support for XML: XML files of all popular frameworks support full prompt, who knows who uses it. 8. Dynamic syntax detection: Any non-compliance with Java specifications, your own predefined specifications, and redundancy will be highlighted on the page. 9. Code inspection: Automatically analyze the code, detect codes that do not meet the specifications and have risks, and highlight them. 10. Full support for JSP: No need for any plug-ins, full support for JSP. 11. Intelligent editing: During the code input process, methods or classes are automatically supplemented. (3) Overview of Tomcat8.0 Tomcat8.0The server is a free and open source web application server,Tomcat is a core project in the Jakarta project of the Apache Software Foundation (Apache Software Foundation).sunDeveloped jointly with some other companies and individuals. Thanks to Sun's participation and support, the latestServletsand JSP specifications can always be reflected in Tomcat, Tomcat8.0Supports the latest Servlets3.0and JSP 2.2specification. Because Tomcat has advanced technology, stable performance, and is free, it is deeply loved by Java enthusiasts and recognized by some software developers, and has become a relatively popular Web application server. (4) mysql overview MySQL is arelational database management system, currently belonging toOraclecompany. MySQL is an associationdatabase management system, relational databases store data in different tables instead of putting all data in one big warehouse, which increases speed and improvesflexiblesex. The SQL language used by MySQL is used to accessdatabaseThe most commonly used standardized language for . The MySQL software adopts a dual authorization policy (this entry "authorization policy"), which is divided into a community edition and a commercial edition. Due to its small size, fast speed, and low total cost of ownership, especiallyopen sourceThis characteristic, generally small and medium-sizedsystemThe development of all choose MySQL asdatabase. Page 15 Introduction to webstorm Visual Studio Code, commonly known as VS Code, is a popular source-code editor developed by Microsoft for Windows, Linux, and macOS. It is a lightweight but powerful editor that supports a wide range of programming languages and provides features such as debugging, code completion, and Git integration. One of the key features of VS Code is its extensibility. The editor comes with a rich set of built-in extensions that enable developers to customize their workflow and enhance their productivity. Additionally, the editor supports a vast library of third-party extensions that provide additional functionality, such as language support, debugging tools, and code snippets. It has been praised by the majority of Chinese JS developers as "the artifact of Web front-end development", "the most powerful HTML5 editor", "the most intelligent JavaScript IDE" and so on. It has the same origin as IntelliJ IDEA and inherits the functions of the powerful JS part of IntelliJ IDEA. code completion VS Code also includes a powerful debugging feature that allows developers to debug code directly within the editor. The editor integrates seamlessly with popular debugging tools, such as Node.js and Chrome, and provides a simple and intuitive interface for setting breakpoints, inspecting variables, and stepping through code.Take advantage of Emmet's abbreviation features to increase your productivity. Type an abbreviation in HTML and press the Tab key to expand it into the markup Emmet also works with CSS and JSX Live Edit: Dynamic editing can see page content updates immediately in the browser (Google Chrome only), and changes to HTML and CSS files can be seen without reloading. It works as part of a JavaScript debugging session navigation. Another noteworthy feature of VS Code is its Git integration. The editor provides a built-in Git interface that enables developers to manage Git repositories directly within the editor. This includes features such as branch management, commit history, and conflict resolution. In summary, Visual Studio Code is a powerful and flexible source-code editor that provides a wide range of features to enhance developer productivity. Its extensibility and robust debugging and Git integration make it a popular choice among developers across various industries and programming languages. Hundreds of checks are built in, covering all supported languages. In addition to ESLint, TSLint, Stylelint, JSCS, JSHint and JSLint. As you type, all errors and warnings are reported directly in the editor, with many quick-fix options Any potentially problematic lines of code are marked in the editor's right gutter, so errors and warnings can be easily spotted in long files Code quality analysis can also be run for the entire project and selected quick-fixes are automatically applied code style: Use a consistent code style, let WebStorm automatically apply the configured code style when writing code, or reformat the entire file at once Configure code style for any language, including indentation, whitespace, alignment rules, and more. If desired, code style schemes can be saved in project settings and shared with team members via VCS. Page 16 Chapter 3 System Design 3.1 System diagrams Figure 1 Opportuinity flowcahrt Page 17 Figure 2 customer management Page 18 Figure 3 report management Page 19 Figure Systems diagrams the diagrams for each management system (Opportunity, Customer, and Report), which are then connected to each other using arrows that indicate the direction of the flow. The Opportunity Management flowchart starts with identifying an opportunity, followed by market research, creating a business plan, allocating resources, implementing the plan, monitoring progress, and finally ending the opportunity. Customer Management involves getting customer details, registering them, saving their data, sending confirmation emails, and ending the registration process. Report Management starts by getting data, processing it, analyzing it, generating a report, performing a quality check, sending the report to a manager, acknowledging the report, and ending the report generation process The roles associated with this system include: System administrator: manage system users, roles and permissions, have all system permissions, and ensure the normal operation of the system. It has the ability to view class teacher information, basic student information, grade, class, course management, release test information, etc. Subject teacher: Enter grades and check your personal information. Class teacher: You can view the grades of this class and the information of students in this class. Students: View their grades and their information. Page 20 3.2 Division of system function modules The strength of the function realized by the software is the most fundamental criterion to measure a software. After analyzing the requirements of the system and the actual application requirements, the functional modules of this subsystem are determined as shown in Figure 3.2: Figure 3.2 System usecase diagarm Here system rectangles and uses the usecase keyword to specify each use case in the system. Arrows connect the actors to the use cases they interact with. The Opportunity Management System includes use cases for identifying opportunities, market research, creating a business plan, allocating resources, implementing the plan, monitoring progress and ending the opportunity. The Customer Management System includes use cases for registering customers, saving their data, sending confirmation emails, and ending registration. The Report Management System involves use cases for getting data, processing data, analyzing data, generating reports, sending to managers, acknowledging reports, and ending report generation. Page 21 the project manager is the main actor in the system who can manage the projects, customers, team members, and reports. Customers can request projects, while the project team produces status reports. The approval system can be added to approve reports before submission. Some use case scenarios include: The project manager creates a new project and assigns team members to work on specific tasks. The customer requests a project and provides specific requirements and guidelines. The team members produce a status report on the project, including details on the timeline, milestones, and progress updates. The approval system approves the report and/or makes recommendations for changes. The project manager can generate and customize reports for customers, stakeholders and/or team members. The system helps organizations with efficient communication, task assignment, project tracking, team management, customer management, status reporting, and report approval. Page 22 class diagram class diagram of three management systems: Opportunity Management, Customer Management, and Report Management, along with an Approval System to approve items in these management systems. Each management system has its own set of classes with attributes and methods related to their respective domains. The Opportunity class has attributes like id, name, account, stage, amount, closeDate, and owner. Similarly, the Customer class has attributes like id, name, address, phone, email, and company, and the Report class has attributes like id, name, type, date, and owner. Each management system also has a set of methods to create, update, delete, and retrieve data related to their domain. Additionally, the Opportunity, Customer, and Report Management Systems have a submit method to send a particular item (opportunity, customer, or report) to the Approval System for approval. Finally, the Approval System has its own set of attributes and methods. It has an Approval class with id and name attributes, and methods like createApproval, updateApproval, deleteApproval, getApproval, getApprovals, and approveItem. By using the approveItem method, the Approval System can approve items from any one of the three Management Systems by taking in the name of the item that is being approved (opportunity, customer, or report), the item's id, and the approval's id as parameters. Page 23 Page 24 Figure Sequence diagram sequence diagram of an opportunity management system and customer management system with report management and approval: The diagram starts with two actors, user and Manager. The Salesperson identifies an opportunity and assigns it to the Manager for review. The Manager then reviews the opportunity and decides to approve or reject it. If approved, the Salesperson creates a proposal and presents it to the customer for review. The customer then approves or rejects the proposal. If the proposal is approved, the user creates a contract which the customer reviews and signs. Then, the Salesperson creates an order which is assigned to the Manager for review. The Manager reviews the order and approves or rejects it. If the order is approved, the Salesperson delivers the order to the customer who confirms delivery. Next, the user creates a report and assigns it to the Manager for review. The Manager reviews the report and decides to approve or reject it. After approval, the Salesperson sends an invoice to the customer who makes the payment. The invoice is then assigned to the Manager for review. The Manager reviews the invoice and approves it, which completes the process flow. Overall, the diagram represents the key steps involved in opportunity management, customer management, and report management, with a focus on the approval process at each stage 3.2.1 Customer Management User management includes assigning accounts to users, changing passwords, and safely exiting users. This module can only be uniformly configured by the system administrator, and users cannot register by themselves, but users can modify their own passwords, and user passwords are encrypted. Page 25 3.2.3 OPP management You can view all the information of each head teacher, including the staff number, name, gender, etc., and you can also modify the information about the head teacher. 3.2.4 Report Management You can view the basic relevant information of each student, such as student number, name, gender, etc.You can also modify student-related information. 3.2.5 Basic information Basic information includes grade information management, class information management, course information management. 3.2.6 Results Information Each test information is recorded, and emplyers can see their results after aproval 3.2.6 Permission information You can view all cutomers and opp informations and modify or delete it. 3.3 Database design 3.3.1 Analysis of database requirements The design of the database plays a very important role in a system, and whether the database is established will directly affect the realization of your system. The design of the database should not only meet the needs of users, but also reduce the redundancy of data as much as possible, reduce the dependence between data as much as possible, and separate them. In the provision, storage, update and query of various information, this requires the database structure to fully meet the output and input of various information, collect basic data, andstructure,As well as the flow of Page 26 data processing, a detailed data dictionary is formed, which lays the foundation for the specific design later. 3.3.2 Logical Design of Database The principles of logical structure design are as follows: (1) Reduce data redundancy and duplication as much as possible. (2) Combination of structural design and operational design. (3) Data structures are relatively stable. (4) Follow the three paradigms of database design. Based on the above design principles, the system designs the following database: All use logical deletion. For the convenience of development, no table association is added. Table 1 Opportunity information table (add_opp) field type length primary key Is it empty illustrate id int 0 N N opp id opp_name varchar 255 N N opp name opp_details varchar 255 N N username id varchar 100 Y N id Table 2 Customer Information (customer_info) field type length primary key Is it empty illustrate username varchar 255 Y N username password varchar 32 N N password account int N N account name varchar 255 N N name gender varchar 10 N N gender age int N N age phone_num varchar 11 N Y phon email varchar 255 N Y email avatar varchar 255 N Y avater Page 27 Table 3 Other Opportunity Information field type id int title varchar content longtext author Varchar release_time datetime length (others_opp) primary key Is it empty illustrate Y N id N N title N N content 255 N N author 36 N N release time 255 Table 4 Admin Management (admin) field type length primary key Is it empty illustrate username varchar 255 Y N username password varchar 32 N N password name varchar 255 N N name gender varchar 10 N N gender age int N N age phone_num varchar 11 N Y phone email varchar 255 N Y email avatar varchar 255 N Y avater Table 5 Applicants table(applicants) field type length primary key Is it empty illustrate username varchar 255 Y N username password varchar 32 N N password name varchar 255 N N name gender varchar 10 N N gender Page 28 age int N N age phone_num varchar 11 N Y phone email varchar 255 N Y email avatar varchar 255 N Y avater Page 29 Chapter 4 System Implementation My innovation point(Joni) 4.1 Main Interface Realization The UI design of this system mainly adopts elementui, which makes the interface more atmospheric and beautiful. 4.1.1 User login Enter the correct user name and password to log in. 4.1.2 Home page Enter the home page after successful login Page 30 Figure 4.1 Home page effect 4.1.3 Customer List from the Customerm Management Figure 4.2 Customer List 4.1.4 Customer Information Management Customer can see their all of information in this page. Page 31 Figure 4.3 Customer Information Management 4.1.5 Opportunity Management All of opportunity can be seen here as a list as well as other functionality. Figure 4.4 Opportunity List Management Page 32 4.1.6 Opportunity Information Management There is whole information,edit, delete functionality and search button of Opportunity Information. Figure 4.5 Opportunity Information Management 4.1.7 Other Opportunity management Here included other chance with some of the functionality. Page 33 Figure 4.6 Other Opportunity Management 4.1.6 Other Opportunity Information Here included more chance with details and other of functionality. Figure 4.7 Other Opportunity Information 4.1.7 Admin Information Display Page 34 Figure 4.7 Admin information display 4.2 Realization of main function program 4.2.1 Establishment of database connection In terms of database connection, this system uses a unified method to connect to the database. After introducing the relevant jar package, it calls the classes in it. Through the application.yml configuration file, read the database information and the user name and password of the login database account to realize the connection to the database. The specific code is as follows: The content of the application.yml file is as follows: server.port=9090 #mysql spring.datasource.url =jdbc:mysql://localhost:3306/Neusoft?serverTimezone=UTC&useUnicode=true&charac Page 35 terEncoding=utf-8&useSSL=true spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 4.2.2 Realization of login function When the adim enters the account password and clicks the "Login" button, the client browser first checks the information filled in by the user. The verification mainly includes: whether the user enters empty content under the required options, and whether it meets the requirements. The format requirements defined by the item. If the requirements are not met, the form will not be submitted to the server, which helps to reduce the pressure on the server. package com.example.springboot.controller; import com.example.springboot.common.Result; import com.example.springboot.common.UID; import com.example.springboot.entity.Admin; import com.example.springboot.entity.User; import com.example.springboot.service.AdminService; import org.springframework.web.bind.annotation.*; Page 36 import javax.annotation.Resource; import javax.servlet.http.HttpSession; @RestController @RequestMapping("/admin") public class AdminController { String uid = new UID().produceUID(); @Resource private AdminService adminService; @PostMapping("/login") public Result<?> login(@RequestBody User user, HttpSession session) { Object o = adminService.adminLogin(user.getUsername(), user.getPassword()); if (o != null) { System.out.println(o); Page 37 session.setAttribute("Identity", "admin"); session.setAttribute("User", o); return Result.success(o); } else { return Result.error("-1", "wrong user name or password"); } } @PutMapping("/update") public Result<?> update(@RequestBody Admin admin) { int i = adminService.updateAdmin(admin); if (i == 1) { return Result.success(); } else { return Result.error("-1", "update failed"); } } Page 38 } If the account password is correct, the token information will be returned to the browser. 4.2.3 Add Opportunity Page Controller Opportunity display page code: package com.example.springboot.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.springboot.common.Result; import com.example.springboot.entity.AddOpportunity; import com.example.springboot.service.AddOpportunityService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("/opp") public class AddOpportunityController { @Resource Page 39 private AddOpportunityService addOpportunityService; @PostMapping("/add") public Result<?> add(@RequestBody AddOpportunity addOpportunity) { int i = addOpportunityService.addNewOpp(addOpportunity); if (i == 1) { return Result.success(); } else { return Result.error("-1", "add failed"); } } @PutMapping("/update") public Result<?> update(@RequestBody AddOpportunity addOpportunity) { int i = addOpportunityService.updateNewOpp(addOpportunity); if (i == 1) { return Result.success(); } else { return Result.error("-1", "update failed"); } } Page 40 @DeleteMapping("/delete/{oppId}") public Result<?> delete(@PathVariable Integer oppId) { int i = addOpportunityService.deleteOpp(oppId); if (i == 1) { return Result.success(); } else { return Result.error("-1", "failed to delete"); } } @GetMapping("/find") public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, @RequestParam(defaultValue = "") String search) { Page page = addOpportunityService.find(pageNum, pageSize, search); if (page != null) { return Result.success(page); } else { return Result.error("-1", "Query failed"); } } Page 41 @GetMapping("/getOppName") public Result<?> getOppName() { List<AddOpportunity> oppName = addOpportunityService.getOppId(); List<Integer> oppId = oppName.stream().map(addOpportunityId -> addOpportunityId.getOppId()).collect(Collectors.toList()); if (!oppId.isEmpty()) { return Result.success(oppId); } else { return Result.error("-1", "Query failed"); } } } Chapter 5 System Testing 5.1 Purpose and principles of software testing In the process of developing a large-scale software system, we need to face intricate problems, so errors will inevitably occur at each stage of the software life cycle. We strive to pass a rigorous technical review before the end of each phase, to detect and correct errors as early as possible. The Page 42 purpose of testing is to find as many bugs as possible in software before it is put into production operation. At present, software testing is still a key step to ensure software quality, and it is the final review of software specification, design and coding. Although the basic idea of object-oriented technology guarantees that software should have higher quality, no matter what kind of programming technology is used, programmers' mistakes are inevitable, and because of the high code reuse rate of software developed by object-oriented technology, it is more Rigorous testing is required to avoid false breeding. Therefore, software testing has more importance in object-oriented programming. Similar to the development process, the testing process must also be carried out in steps, each step being a logical continuation of the previous step. A large software system usually consists of several subsystems, and each subsystem consists of many modules. Therefore, the basic levels of testing for large software systems are shown in Figure 6-1 [12]. Figure 6-1 Basic hierarchy of testing (1) Unit testing Use cases for unit testing are derived from unit detailed design. There are two types of unit testing: functional testing and structural testing. Page 43 (2) What integration testing finds in this testing step is often an outline design error. (3) What system testing finds in this testing step is often an error in the requirement specification. In general, system testing is functional testing, not structural testing. Chapter 6 Summary After more than 5 month of system development, the online learning system was completed. In the process of system development, courses that were previously considered abstract, such as software engineering, database principles, and object-oriented programming, became clear. I feel the importance of these theoretical courses. In the past, the system development of some applications was very random, and there was no unified plan to do what was thought of. Once the system was formed, the workload of rework and modification would be heavy if errors occurred, and the final system reliability was not high. In addition, the structured development method has always been used for program design, and it is difficult to see the whole picture of the system before development, resulting in the realized system not meeting the requirements. The graduation project development this time mainly has the following harvests: 1. Learned a lot of technologies needed in Java development. 2. Through practice, the ability of system analysis has been improved, and the use of system design tools such as data flow diagrams, data dictionaries, and system flow charts has a deeper understanding. It laid a solid foundation for further improvement in future work and study. Future work Neusoft Project Management System (NPMS) can leverage the capabilities of Spring Boot and Vue.js to deliver a modern and user-friendly project management system. The future version of NPMS can incorporate advanced features such as mobile responsiveness, real-time collaboration, custom notification settings, and streamlined project tracking. With the use of Vue.js, the frontend can be highly optimized for fast and seamless user experience, meanwhile Spring Boot can provide a robust and secure backend system. Page 44 The system can provide an intuitive dashboard where users can see a snapshot of their current and upcoming projects. Within the dashboard, the user can have a clear view of each project's timeline, milestones, tasks, and resources. The project manager can create detailed project plans and set deadlines, assign team members to work on specific tasks, and monitor progress and performance in real-time. NPMS can also provide an option to integrate with other project management tools and systems, such as Jira, Trello, and Asana. This integration will help users streamline their workflow and create a seamless experience throughout the entire project lifecycle. Finally, NPMS can be highly customizable, with companies able to tailor the system to their specific project management needs. This customization can include the addition of custom fields, templates, workflows, and reports. In short, the future of NPMS using Spring Boot and Vue.js can provide a highly optimized and customizable project management experience, and with its advanced features and smooth user interface, it will help organizations deliver high-quality projects on time and within budget. More over will add more panel to system such as user systems references [1] SpringBoot, Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications https://spring.io/projects/spring-boot [2] SpringBoot, “Spring Boot Tutorial provides basic and advanced concepts of Spring Framework: https://www.javatpoint.com/spring-boot-tutorial [3] Jordan Baker, “ All About Spring Boot [Tutorials and Articles] ” : https://dzone.com/articles/spring-boot-framework-tutorials [4] SpringBoot, “ Documentation ” -using database in Web available: https://docs.spring.io/spring-boot/docs/ [5] Vue.js, The Progressive JavaScript Framework: The Vue.js story begins in 2013 when Evan You was working at Google creating lots of prototypes right within a browser. https://vuejs.org/ [6] Vue.js, Advantages and Disadvantages: The Good and the Bad of Vue.js Programming Page 45