Uploaded by Jahid hasan

finalReport

advertisement
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
Download