You are on page 1of 14

KULLIYAH OF INFORMATION & COMMUNICATION TECHNOLOGY

DEPARTMENT OF COMPUTER SCIENCE


SEMESTER I, 2017/2018

CSC1103 OBJECT-ORIENTEDPROGRAMMING

GROUPPROJECT

GYM MEMBERSHIP SYSTEM

Team members:
HAKIM BIN AMRI 1622955
HIFDZUL HADI BIN DAUD 1620509
AHMAD ADIB BIN ZAKARIA 1622795
MUHAMMAD IKMAL BIN MOHD 1622067
ABDUL KARIM
WAN MOHAMED IMRAN HAKIMI 1624145
BIN WAN MOHD SABRI

Submission Date:
26 DECEMBER 2017
Table of Content

1. PROJECT DESCRIPTION 2

2. PROJECT ORGANIZATION 2

3. METHODOLOGY

3.1 ANALYSIS 2

3.2 DESIGN 3-6

3.3 DEVELOPMENT 7-8

3.4 TESTING 9

4. CONCLUSION 10

5. REFERENCES 10

6. APPENDIX 11-12

1. Project Description
We have decided to create a new gym membership system because the old
system use the manual system which they will wrote the information of the customer
on a logbook and the data in might loss. To overcome this problem, we have decided
to do a new system which will be used by the worker of the gym and the customer
who comes to the gym.
This software is mainly about the registration of a new gym member and they can
login to the system and then they can choose whether they would like to choose a
package or just walk-in to the gym.

1
2. Project Organization

Gym Membership
System

Hakim and Hifdzul Hadi


Adib Ikmal
Wan Imran

Do the Do the Do the


Do the Cust Do the main Do the
application GymMember Debugging newCust Debugging
class class oldCust class
class ship class class

3. Methodology
3.1 Analysis

 We have done a research and we want to solve the problem of the old gym
membership system where the worker of the gym will manually record the
customer’s information in their logbook and the data can be loss easily.

 So, the new system needs to have a database to store all the data so that the
data will not loss easily.

 Based on our analysis, the system needs to be the best gym system so that the
customer will have an easy journey when they are using the system. Next, the
worker of the gym will have an easier job to register the customer information
because they will never worry about the data to be loss anymore because all the
data is kept in the database.

 The use-case diagram for this system can be seen in the diagram below:

2
3.2 Design

 Before creating the prototype of this system, we have does some sketches for
the GUI to give us some ideas. All the sketches can be seen in the diagram
below:

For the diagram above, the user needs to input all the information that is needed to
save in the data such as their name, address, identification card number and their telephone
number.

3
For the diagram above, the user can log in to the system to use the system.

For the diagram above, the user could choose whether they want to choose walk-in
or the package that the gym has set

4
The diagram above shows the menu that the user can choose when they choose the
walk-in button.

The diagram above shows the menu that the user can choose when they choose the
package button.

5
The diagram above shows the receipt that will be printed when the transaction has
completed.

 To realize this system, we have implemented a few OOP concepts such as:

i) Superclass– In our system, the Cust is the superclass and the oldCust and
the newCust is the subclass

ii) Overloading- In our system, the overloading can be seen at the


gymMembership class

iii) Overriding- In our system, the overriding method can be seen in the
application class. We use the overriding to enable the button to work.

6
3.3 Development

 After we have get the design, we have built the prototype before we are going to
launch it to the user.

 Actual coding is done in this phase to realize this system.

 After we have compile and run the prototype, the GUI can be seen like this:

Figure 1: This will be the Homepage for the Gym System

Figure 2: This will be the registration page for the customer

7
Figure 3: This will be the packages page when the customer clicks the
package button

Figure 4: This will be the calculation page and the page where the user could
choose whether they want to add another package, or they just want to return
to the homepage.

8
3.4 Testing

 Test case scenarios.

Ste Test case Test description Expected result Actual result Status
p

1 Run and compile Launch the Javafx The gym membership The system Pass
the coding. coding with Eclipse. system launched successfully
properly. launched.

2 Enter valid Id Filling valid Customer have System Pass


number, name, information in the created account as successfully
phone no., and sign-up page for the the user for the recorded the data.
address during first-time user. system.
sign up

3 Enter valid Id Test log in The customer can Customer Pass


number and functionality for the proceed to the successfully
password during registered user to selection of proceed to
log in access the system. membership method membership
method page.

4 Enter invalid Id Test log in validation The system require Customer can Fail
number and for the registered user to reenter the Id easily proceed to
password during user to access the number and password membership
log in system. method page.

5 Click package To test the System display the list System navigate Pass
button in the functionality of the of packages. to list of package
membership button. page
selection method
page

6 Calculation of the Test the price System will display the System display Pass
price based on calculation process in right price of the right
selected package the package calculation for the calculation of the
by the customer selection page. selected package price need to be
price. paid

9
4 Conclusion
 The main purpose of creating this gym membership system is to ease the process of
customer to be a membership of the gym. There is still many of the gym using manual
process on recording the data of their customer membership. Whereas this system can
make the two people in the interaction which are the customer and gym worker can
save their time as they can just be typing on the keyboard to register as membership.
Apart from that, this system also allows the customer to customize their order after
selecting the membership package.

 The final system that have been created is facing some weakness and limitation. One
of the problem is during the sign-up process. When the user goes to the sign-up page,
the user can just click the proceed button without filling any data in the sign-up form.
The text field were just containing null values, but it can also proceed to the next part
without getting any error. The same problem also occurred when the user wants to log
in the system. The user can proceed to the selection of membership method without
entering the ID number and password. Other challenges that we are fronting is after
the user have completing the sign-up process by filling the form, all of the data that
have been inserted was not recorded into the system. From all of these limitation and
weaknesses, we are hoping in the future we are creating this gym membership system
with no errors at all so that it can be used in all gym in this country.

References

i) Object Oriented Programming CSC1103 slide, Department Of Computer


Science, Dr. Norsaremah Salleh
ii) Stackoverflow, https://stackoverflow.com/questions/tagged/javafx

10
Appendix
 Appendix 1: UML class diagram

main
+window w: Stage

+main()
+main(String[]) : void
+start(Stage) : void

Cust
+id,index : int

+name,address,phoneNo : String
+names,addresses,phonesNo :
String[]
+ids : int[]
+historypurchase : double[]
+windowCust : Stage
+start(Stage) : void
+Cust()
+Cust(int,String,String,String)
+getId() : int
+seId(int) : void
+getName() : String
+setName(String) : void
+gerAddress() : String
+setAddress(String) : void
+getPhonesNo() : int
+setPhone(int) : vpid

11
NewCust oldCust
+a : int Btok,btproceed,btcance : Button
+x : Boolean Detail : GridPane
Btproceed,btcances : Button Want,go : HBox
Reg : GridPane Name,phonee,address,history :
Wants : HBox Label
newCust : scene oldCust : Scene
windowNewCust : Stage windowOldCust : Stage
idNum,names,phones,addresses : idno : TextField
TextFiel display : VBox
+start(Stage) : void j,b : int
nweCust() w : boolean
nweCust(int,String,String,String) +start (Stage) : void
handle(ActionEvent) : void +handle(ActionEvent) : void
verify(String,String,String) : oldCust()
boolean oldCust(int,String,String,String)
+declare(ActionEvent) : void

Begin
btNwe,btOld : Button
welcome,well,idd :
GridPane
we,chose : HBox
wel : Label
scene : Scene
windows : Stage

+Begin()
+Start(Stage) : void
+loginPage() : GridPane
+handle(ActionEvent) :
void

12
Gym

+a,I : int
+total ,totalc,prices,pricesc: double
+package : TextField
+window,window2 : Stage
+Idnum,names,phones,addresses, : TextField
+Scene11,scene2,scene1c,scene2c : Scene
+Group2,groupc : ToggleGroup
+Selectpackage: VBox
+Btproceed2,btcancel2 : Button
+namee,phonee,address,history : Lable
+windowoldCust : Stage
+Idnum : TextFiled
+disply : VBox
+window : Stage
+choose : HBox
+root : GridPane
+handle(ActionEvent) : void
+handles() : GridPane
+handle2(ActionEvent) : void
+firstscene2() : GridPane
+Secondscene2() : void
+handle3(ActionEvent) : void
+calculateprice(int,double) : double
+receipt() : void
+hancel() : void
-handle3c(ActionEvent) : void
+Firstscenec() : GridPane
+Secondscene() : void
+handlec(ActtionEvent) : void
+caculateprice(double) : double
+recipt() : void
+reciept2(ActionEvent) : void
+recieptsceneM,recieptscene() : GridPane
+cancelc() : void
-secondscene (): void
+newClass1(ActionEvent) : void
+oldCust(ActionEvent) : void

13

You might also like