Project Report
Project Report
Team Members
1
Table of Contents
Table of Figures 3
Table of Tables 5
Abstract 6
Project Plan 7
Introduction 7
System-As-Is 7
System-To-Be 7
Process Method 8
Organization of the Project 8
Methods and Techniques 9
Effort and Schedule 10
Delivery 13
Requirements Specification 15
High-Level Goals 15
Primary and Secondary Actors 15
Use Case Diagrams 16
Use Case Specifications 16
Paper-based Prototype 20
Assumptions 20
Domain Properties 28
Functional Requirements 29
Customer 29
Visit 29
Activity 29
Non-Functional Requirements 30
Developer Activities 30
Technologies 30
Traceability Matrix 31
Design 32
Entity Relationship Diagram 0
Data Logical Model 33
2
Testing Plan 35
Unit Tests 35
Integration Tests 40
System Tests 44
Discussion 47
3
Table of Figures
Project Plan: 7
Figure 1: Work Packages 9
Figure 2: Project Information 10
Figure 3: Task Schedule 10
Figure 4: Resource Information 11
Figure 5: Gantt Chart 11
Figure 6: Resource Chart 12
Figure 7: PERT Chart 12
Requirements Specification: 15
Figure 2: Use Case Diagram 16
Figure 3: Welcome Screen 20
Figure 4: Login Screen 21
Figure 5: Invalid Login Screen 21
Figure 6: Customer Registration screen 22
Figure 7: Student Registration Screen 22
Figure 8: Professor Regitraction Screen 23
Figure 9: Professor Student Registration 23
Figure 10: Home Screen 23
Figure 11: View Visits Screen 24
Figure 12: Add Activity Screen 25
Figure 13: Select Activity to Edit Screen 25
Figure 14: Edit Activity Screen 26
Figure 15: Schedule Visit Screen 26
Figure 16: View Receipt 27
Figure 17: Generate Report Screen 27
Figure 18: Report Screen 28
Design: 32
Figure 1: Entity Relationship Diagram 32
Figure 2: Logical Model 33
Figure 3: High Level Overview 34
Figure 4: UML Diagram 34
Testing Plan: 35
4
Discussion: 47
Figure 1: Updated View for recovery 47
5
Table of Tables
Project Plan: 7
Table 1: Role Specification 8
Table 2: Delivery Table 13
Requirements Specification: 15
Table 1: Use case: Customer Registration 17
Table 2: Use case: Log-in 17
Table 3: Use case: Create new activity 18
Table 4: Use case: Schedule Visit 18
Table 5: Use case: View visit 19
Table 6: Use case: Change Activity Price 19
Table 7: Use case: Generate Revenue Report 20
Table 8: Traceability Matrix 31
Testing Plan: 32
Table 1: Test Scenario 35
Table 2: UT_01 35
Table 3: UT_02 36
Table 4: UT_03 36
Table 5: UT_04 37
Table 6: UT_05 38
Table 7: UT_06 38
Table 8: UT_07 39
Table 9: UT_08 39
Table 10: IT_01 40
Table 11: IT_02 41
Table 12: IT_03 41
Table 13: IT_04 42
Table 14: IT_05 43
Table 15: ST_01 44
Table 16: ST_02 44
Table 17: ST_03 45
6
Abstract
The Bronco Recreation Complex Management (BRCM) does not have an automated
system to handle customers, visits, and activities. The purpose of this project was to create such a
system for the BRCM to remedy the situation.
This new system will allow for users to perform many actions. These actions include:
creating an account, scheduling a visit, adding an activity, editing an activating, generating
revenue reports and more. The system will have a primary desktop application which will house
data in a SQL database. Additionally some features are to be alive through a web component.
There should be no redundancies in the system and should share resources when possible.
The whole project was implemented using Java. For the website component, we used
Tomcat, JSP, and Java Servlets in order to present an interactive experience for the user. For the
desktop application, JavaFX was used to create an efficient kiosk GUI for customers. Lastly, for
the central database, we used PostgreSQL and Hibernate to maintain all information pertinent to
the system. All these technologies were then implemented within a Spring Boot dat
Overall, we found that the technologies chosen were inconvenient for the development team
and that issues resulted from a lack of familiarity with the specified technologies. Despite
these challenges, we successfully implemented a system that effectively and efficiently handles
customers, visits, and activities.
7
Project Plan
Introduction
System-As-Is:
CPP wants to convert its current recreation complex system into an automated
Bronco Recreation Complex Management (BRCM) system to ensure effective control of the
services provided while reducing operational costs. Currently, all customers, visits, and
recreation activities(bodybuilding, swimming, dance, martial arts, etc.) are maintained by
hand. For each visit, a manual receipt is provided to the customer including header
information such as the date, time, and customer name as well as the recreation activities,
quantities, and corresponding individual and total prices. A copy of those receipts is made so that
users can later feed this data into spreadsheets. Then, service transaction information is manually
retrieved into financial reports for business analysis. Some general complaints about the
current system include:
● Slow customer and recreation activity search processes while visits are being created.
● Redundant information of professors who are also students.
● Lack of reports that consolidate visits per customer and/or period.
● Inaccuracy of the prices of activities being charged at the counter.
● Inaccuracy of the information included in the spreadsheets from the receipts.
● Unavailability of an online visit application for activity reservation.
System-To-Be:
The automated BRCM system should address the problems mentioned before through a
software-based solution. In particular, a desktop application with a graphical user interface should
be developed to provide services such as: customer registration (students, professors), recreation
activity registration, visit management, and intelligent revenue report. The system should
(requirements):
● Eliminate any redundancies in the customer registration process
● Allow a different discount scheme for students and professors (% of the visit)
● Allow historical price information of recreation activities
● Print (screen) receipts when visits are completed
● Provide a report (screen) with consolidate revenue information by customer and period
In addition, the system should also include an online (Web) component for visit registration–to be
used for activity reservation. This component should be fully integrated with the offline
component. There should be a status indicating where the visit was generated with the following
options: “counter”, “online-pending”, “online-complete”. This status should change from
8
“online-pending” to “online-complete” when the customer completes his/her visit. Processes that
should not be addressed: inventory control or activity availability, login/user privileges.
Process Model:
Scrum development model will be used for the BRCM. As of October 25th, 2022 we are
collaborating to do 1-week sprints that started every Monday to allow for an agile/scrum-oriented
workflow.
Specification of roles:
Table 1: Role Specification
Name Role Responsibilities
Veerbasant B Reddy Analyst Created use case diagram, and use case
specification. Designed paper based prototype
model.
Mehaa Bhatta Analyst, Prepared a wide range of test cases including: unit
Tester test, integration tests, and system tests to ensure
functional and nonfunctional requirements were
met. Performed tests on the system.
In addition to assigned roles team members assisted one another whenever possible.
9
Delivery
Table 2: Delivery Table
S.No Deliverable Description Owner Status
Name
Github Repository:
https://github.com/Mitch4797/Bronco-Recreation-Complex-Management
Requirements Specification
High-Level Goals
● HL_1: Develop a desktop application to manage users visits to the Bronco Recreation
Center.
● HL_2: Develop a web page portal which allows users to register for visits to the Bronco
Recreation Center.
● HL_3: Develop a backend system which is accessed from both the desktop and web page
view which has minimal redundancies.
Alternative Cours:
3b. User selects they are are a professor.
3c. User selects they are both a professor and student.
Exception Course:
Alternative Cours:
Exception Course:
3a. User provides invalid credentials, presented with error message
18
Alternative Cours:
2b. User selects home and is returned to the home screen.
Exception Course:
Alternative Cours:
2b. User selects home and is returned to the home screen.
Exception Course:
19
Alternative Cours:
2b. User selects home and is sent to the home screen.
Exception Course:
Alternative Cours:
2b. User selects home and is sent to the home screen.
Exception Course:
20
Alternative Cours:
2b. User selects home and is sent to the home screen.
Exception Course:
Paper-based Prototype
Screen_0:
Screen_01:
Screen_03:
Screen_05:
Screen_07:
Screen_09:
Screen_11:
Screen_13:
Screen_15:
Assumptions
● AS_01: All activities are available to all users at all times. Any amount of users can be
assigned to an activity at once.
● AS_02: Payment is handled by a separate system.
● AS_03: All visitors will be students and or professors who have a valid broncoID number.
● AS_04: Security for the system will be handled by a third party.
Domain Properties
● A customer can only do an activity once per visit.
● The price of any activity can only be changed at the start of the day. Additionally an
activity has the same price all day.
29
Functional Requirements
Customer
REQ_01 - Customer Registration
Rationel: A CUSTOMER is identified by their broncoID and have attributes:Name,
Address, DOB, and phone number. Additionally a customer has a type: Student, Profesor,
StudentProfessor
REQ_02 - Student
Rationel: A STUDENT has attributes: Enter Date, Grad Date, Major, Minor, Discount
REQ_03 - Professor
Rationel: A STUDENT has attributes: Department, Office, Research, Discount
REQ_04 - StudentProfessor
Rationel: A STUDENTPROFESSOR has attributes: Enter Date, Grad Date, Major, Minor,
Department, Office, Research, Discount
Visit
REQ_05 - Visit Registration
Rationel: A VISIT is identified by a vistID and has attributes: Cost, Time, and Date.
Activity
REQ_07 - Activity Registration
Rationel: An ACTIVITY is identified by an activityID. An ACTIVITY has attributes:
name and price.
REQ_09 - Historical_Price
Rationel: A HISTORICAL_PRICE is identified by a historicalPriceID. A HISTORICAL
PRICE has attributes: Date and Price.
Non-Functional Requirements
NON_REQ_01 - Usability
Rationel: The system must be stable so it can fully replace the system as is.
NON_REQ_02 - Availability
Rationel: Customers should be able to use desktop and web applications to access the
BRCM system.
NON_REQ_03 - Performance
Rationel: System should issue notifications in the event of an error or an exception.
NON_REQ_04 - Usability
Rationel: Customers should be able to readily understand UIs thanks to their user-friendly
design.
NON_REQ_05 - Scalability
Rationel: The system should continue to work properly as the number of customers and
activities registered changes.
NON_REQ_06 - Performance
Rationel: The system should be usable round-the-clock.
Developer Activities
● Multiple users cannot schedule for the same activity at the same time.
● An activity's price cannot be changed more than once per day.
Technologies
TRQ_01 - Java
Rationel: As requested by the customer the system will be implemented using java.
TRQ_02 - PostgreSQL
Rationel: PostgreSQL will allow for the creation of a fully featured persistent
database.
TRQ_02 - Hibernate
Rationel: Hibernate is an ORM which allows for the easy storage of entire classes
as a single row in a SQL database.
31
Traceability Matrix
Design
Testing Plan
Test Scenarios:
Table 1: Test Scenario
Test Scenario
TS_02 Schedule Visit Users are able to schedule a visit from the desktop
application after logging in. During scheduling
they will select which activities
TS_03 Generate Receipt Users are able to print a receipt from the desktop
application after logging in. The user is able to
view a list of past visits and may select any visit to
generate the receipt.
TS_04 Generate Report Users are able to generate an earnings report for all
visits between two given days.
Unit Tests
Table 2: UT_01
Test Scenario ID TS_01
5. User submits
Expected Outputs User now has an account created and is sent back to the login
screen.
Phase Implementation
Dependencies
Table 3: UT_02
Test Scenario ID TS_01
Phase Implementation
Dependencies
Table 4: UT_03
Test Scenario ID TS_01
Phase Implementation
Dependencies
Table 5: UT_04
Test Scenario ID TS_02
Phase Implementation
Dependencies
Table 6: UT_05
Test Scenario ID TS_02
Test Case User views activities but does not schedule one
Phase Implementation
Dependencies
Table 7: UT_06
Test Scenario ID TS_03
Phase Implementation
Dependencies
Table 8: UT_07
Test Scenario ID TS_03
Phase Implementation
Dependencies
Table 9: UT_08
Test Scenario ID TS_04
Expected Outputs
Phase Implementation
Dependencies
Requirement Tested
Integration Tests
Phase Implementation
Dependencies
Phase Implementation
Dependencies
Phase Implementation
Dependencies
Phase Implementation
Dependencies
Phase Implementation
Dependencies
System Tests
Table 15: ST_01
Test Scenario ID TS_02
Phase Implementation
Dependencies
Table 16 :ST_02
Test Scenario ID TS_02
Pre - Conditions The user has scheduled a visit and is on the home screen
45
Phase Implementation
Dependencies
Phase Implementation
Dependencies
Discussion
The Bronco Recreation Complex Management (BRCM) project has helped us apply the
knowledge we gained in CS5800, Advanced Software Engineering. As a group we were able to
use our knowledge of software life cycle, team organization, software testing, and software
system design. While our group was unsuccessful in developing a fully functional application the
knowledge gained and lessons learned were immense.
In the project plan we were able to successfully divide up into roles, choose a
development strategy, and create a plan. Our group chose to go with a scrum development
strategy. This was chosen so we could all play to our strengths through the entirety of the project.
We held scrum meetings approximately twice a week. These meetings were very helpful as it
allowed us to move resources to various aspects of the project as needed. Requirements
specification was handled as a team. By analyzing the provided UoD we were able to develop a
clear list of high level goal, function and non functional requirements, and plan a high level
overview of how the completed system would work with the selected technologies. After
developing the requirement specifications the team moved on to the design stage. In the design
stage the entity relationship diagram, UML diagram, and logical view models were all planned.
This acted as a reinforcement for all the object-oriented programming that has been discussed in
class. After the design stage we were able to begin implementation.
During the implementation phase is where our group encountered issues. Rather than
using a traditional Java Servlet approach, it attempted to implement the system as a spring boot
application with a JSP webview, and JavaFX desktop. Hibernate and postgreSQL would handle
data access and management. JavaFX and Hibernate/postgreSQL were selected to be used as it
was what was discussed in class. Spring Boot was also used because of the recommendation of a
team member, with all others agreeing after discussing. However this ultimately led to critical
compatibility issues. We were unable to integrate both JavaFX and Spring Boot. Due to the late
discovery of this issue we were unable to sufficiently create our application. Given the
opportunity to before this project again a more traditional set of technologies would have been
used. Wrapping up the Project, we recovered by splitting our project into 2 views. Here, we
worked on developing the web differently from the desktop version. For this, the web version
used the FXML as a controller and used Hibernate to connect to the database. For the desktop
version, JavaFX would request and receive the instruction to the controller.
Next, for the web view, we linked the database with the interface which implements the
CRUDRepository<entity_class, id>interface. Then, the controller which is connected with the
browser also communicates with the service interface which is also connected to the repository
which now communicates with the CRUDRepo. Through this process , we recovered and created
two separate but well working systems. Using components that included a navigable JavaFX GUI,
a thymeleaf webview to see customer information, and more. However many of these choices
47
were to allow for a simple demonstration and are not ready for delivery. Despite the failure to
complete the implementation, we do believe our plan would have worked had we chosen a
different set of technologies.Given the opportunity to do this project again a more traditional set
of technologies would have been used. Additionally as a future plan, we will also try to come up
with a solution to the same problem we faced.