428
Introduction to Object Oriented Programming
Hotel Booking System
Learning Objectives
· Experience planning and developing software in a team
· Understand how to use the features of Java to implement a maintainable application through object oriented programming (inheritance, polymorphism, encapsulation, ...)
· An ability to analyze a problem, and to identify and define the computing requirements appropriate to its solution
· An ability to design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of object oriented programming
Hotel Management System
Each student is to design a robust customer facing hotel management system to be sold to hotels. The system will be designed to support users who are customers, employees, and management
Customer Uses
· Manage Customer Account
· Manage Reservations by way of a calendar system
· Submit Payments(fake it) and view transaction history
· Perform No Employee or Management Tasks
Employee Uses
· Check In/Out Customers
· Apply Room Discounts
· View Employee Level Reports
· Perform No Management Tasks
Management Uses
· Manage Pricing (Weekday, Weekend, Event)
· Reserve Rooms for Repairs and Relocate Displaced Customers
· View Management Level Reports
· Perform all Employee Tasks
· Load Room Layout File
Classroom Requirements
· Java SE 8 is language to be used. No additional outside Libraries.
· Program needs no installation other than the Java Virtual Machine and .class files(no databases, no servers, etc)
· All data and setting files must be human readable(except passwords). CSV, XML, JSON, or custom.
· Assume your data files have the security of a real database
· Do not worry about concurrency/parallelism
Grading Rubric 100 Points Total.
Program Compiles and Runs
Maximum grade of 70 if program does not run as mentioned in syllabus
PowerPoint Presentation / Demonstration XX Points
· 20 Minute Presentation
· UML Class Diagram of entire system perhaps across multiple slides
· Screen Shots, Embedded Video, or Live Demonstration(If classroom technology allows)
· No walls of text
360 Degree Evaluation XX Points
Each team member will evaluate all others and themselves on participation, professionalism, and growth
Robustness XX Points
· Each Class has a ClassDriver/ClassTest with a main that runs basic tests except for abstract classes and program entry-point.
· Inheritance, Polymorphism, and Encapsulation are used to make the system maintainable and expandable
Javadoc, Comments, Readability XX Points
· All classes and functions must have a Javadoc file. Additional non javadoc comments are also expected in source code.
· All code must be readable and have similar style across member’s contributions. (Use eclipse to format project before submission is easiest)
Meets Minimum Use Requirements XX Points
Successfully implements minimum use requirements listed in project briefing
Swing GUI – XX Points
Entire user experience is from a Swing GUI not just JoptionPane popups.