Skip to content

rmanch/BillingSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Problem Statement:

On a retail website, the following discounts apply: 
1. If the user is an employee of the store, he gets a 30% discount 
2. If the user is an affiliate of the store, he gets a 10% discount 
3. If the user has been a customer for over 2 years, he gets a 5% discount. 
4. For every $100 on the bill, there would be a $ 5 discount (e.g. for $ 990, you get $ 45 as a discount). 
5. The percentage based discounts do not apply on groceries. 
6. A user can get only one of the percentage based discounts on a bill.  

Write a program with test cases such that given a bill, it finds the net payable amount. 

Please note the stress is on object oriented approach and test coverage.

======================================================================================
Solution:

Classes Hierarchy*:

				Discount 
							DiscountDecorator*
BillingDiscount				EmployeeDiscount 	AffiliateDiscount 	LoyalCustomerDiscount

---------------------------------------------------------------------------------------
					User(Discount)
	RegularCustomer		 LoyalCustomer  		 Employee 			Affiliate
	(BillingDiscount)   (LoyalCustomerDiscount)		(EmployeeDiscount)		(AffiliateDiscount)		 
	
=========================================================================================
* Read Javadocs for details around the purpose of each class.

** The class files are not required in VCS.

About

BillingSystem

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published