Object Oriented
Development with
JAVA
• Group Members:
•Rachit
Bhandari(NPI000289)
•Rabin
Bastola(NPI000288)
•Sulav
Shrestha(NPI000304)
•Sudhir
Maharjan(NPI000303)
Addresses the need for digital hall
booking
GUI-based Java application using OOP
Introducti
Modular and functional design
on
Data stored in text files (no database)
Roles: Customer, Scheduler, Admin,
Manager
Objective
Objective:
• Build efficient GUI-based application
and Scope • Demonstrate OOP concepts
(Encapsulation, Inheritance, etc.)
• Secure and accessible data storage
• Implement key system functions:
booking, managing users, sales, etc.
Scope:
• Supports 4 user types with specific
functions
• Booking hours: 8 AM – 6 PM
• .txt file-based storage only
Functional Requirements
User Hall booking Hall
Issue reporting
registration and management
(customers)
and login cancellation (schedulers)
Sales tracking
User
and task Receipt
management Secure logout
assignment generation
(admins)
(managers)
Built in Java with GUI
Data stored in .txt files
Non- Input validation
Functional Modular and maintainable
Requireme code
nts Follows OOP principles
Operates 8 AM – 6 PM
Easy to extend in future
Software
Requirements
•Java-based development
•.txt file data storage
•GUI for user interaction
•Input validation to prevent errors
•Follows OOP principles
•Modular, maintainable design
Usecase Diagram
• Four main user roles: Customer,
Admin, Manager, Scheduler
• Customer: Register, login,
book/cancel halls, check
availability, update info, raise
issues
• Admin: View bookings, manage
users and data
• Manager: Handle issues, generate
reports, manage sales data
• Scheduler: Manage hall
availability, maintenance, and
assigned tasks
• Uses "include" and "extend" to
show mandatory and optional
functions
Class Diagram
•Central User class with roles: Customer,
Admin, Scheduler, Manager
•Each role has a dedicated service:
Customer Service, Admin Service, etc.
•Hall class includes ID, type, capacity, rate,
and description
•Booking Service handles booking creation,
cancellation, and availability
•Linked entities: Booking, Hall Availability,
Issue, Maintenance
•Modular, role-based design for clear
separation of responsibilities
Strengths:
• User-friendly interface
• Role-based access control
• Strong OOP design
SWOT • Offline capability using text files
Analysis Weaknesses:
• Limited scalability
• No real-time updates
• Basic security
Opportunities:
• Future database integration
• Mobile/web app expansion
• Advanced analytics for managers
Threats:
• Data loss/corruption risks
• Unauthorized access
• Market competition
Automation
Testing
•Reduces bugs and human error
•Faster and more accurate testing
•Boosts developer confidence
Test Files:
•TestLogin.java: Validates login
functionality
•TestBCrypt.java: Tests password
encryption
•TestApp.java: Tests general logic
and file handling
Extra Features
HASHED MULTI-OS LOGGER AUTO ROLE FORGOT
PASSWORDS COMPATIBILITY INTEGRATION DETECTION AT PASSWORD WITH
USING BCRYPT WITH JAVA APIS WITH LOGIN OTP
JAVA.UTIL.LOGGIN
G
MVC STRUCTURE
AND SOLID
PRINCIPLES
Encapsulation:
Private fields with public
getters/setters
Inheritance:
OOP Custom exceptions extending
Exception
Concepts Polymorphism:
Overriding start(Stage stage) in
JavaFX
Abstraction:
generateHallId() hides implementation
logic
Thank You
Questions?