Reference no: EM133697590
Object-oriented programming
Assessment Overview
Introduction
This assignment will be completed in groups.
INSTRUCTIONS:
This assignment is an extension of assignment 3 Part A, that is the team is working on the same case study as in assignment 3 Part A, and Implement a VIT Ride Management System in Java.
Using the feedback provided by the teaching instructor, update the requirements of the VIT Ride application. Based on the conceptual class diagram of the whole system showing all classes and relationships, you are expected first to develop software application in Java implementing functionalities 1 to 10.
The system should allow administrators to manage users, drivers, and ride requests. The application should include the following classes:
User:
Instance Variables :name (String): User's name.,userID (String): User's ID, contactInformation (String): User's contact information.
Methods: Constructors, getters, and setters. Methods for user-related functionalities (e.g., registering, removing, displaying).
Driver:
Instance Variables: name (String): Driver's name, licenseNumber (String): Driver's license number, vehicleInformation (String): Driver's vehicle information.
Methods:Constructors, getters, and setters.Methods for driver-related functionalities (e.g., registering, removing, displaying).
Ride:
Instance Variables: user (User): User associated with the rid, driver (Driver): Driver assigned to the ride, currentLocation (String): Current location for the ride, destination (String): Desired destination for the ride, status (String): Current status of the ride (e.g., ongoing, completed).
Methods: Constructors, getters, and setters, Methods for ride-related functionalities (e.g., requesting, allocating, displaying).
RideManager:
Instance Variables:users (List<User>): List of registered users.drivers, (List<Driver>): List of registered drivers.,ongoingRides (List<Ride>): List of ongoing rides.,rideHistory (List<Ride>): List of completed rides.
Methods: Constructors., Methods for registering, removing, and displaying users and drivers. Methods for ride management (e.g., requesting rides, allocating drivers, displaying ride history).
Main: Contains the main method for testing the functionalities. Creates an instance of the Ride Manager class and provides a menu system to allow administrators to interact with the system.
Register New Users:
Implement a method to register new users for the ride service, including details such as name, student ID, and contact information.
Remove Users:
Implement a feature to remove users from the system based on their student ID.
Display All Users:
Develop a method to display a list of all users registered for the ride service.
Register New Drivers:
Implement a feature to register new drivers for the ride service, including details such as name, driver's license number, and vehicle information.
Remove Drivers:
Develop functionality to remove drivers from the system based on their driver's license number.
Display All Drivers:
Implement a method to display a list of all registered drivers available for rides.
Request a Ride:
Design functionality that allows users to request a ride by providing their current location and desired destination.
Allocate Drivers to Rides:
Implement a method to allocate available drivers to ride requests based on factors such as proximity and availability.
Display Ongoing Rides:
Develop a feature to display a list of all ongoing rides, including details about the user, driver, and current status.
Display Ride History:
Implement functionality to display a list of all completed rides, including information such as starting point, destination, and feedback.
The classes should be designed using object-oriented principles such as inheritance, encapsulation, and polymorphism. The program should not use a graphical user interface (GUI) but should instead use a command-line interface.
Task 1: Implementation
Design in the code matches the design in the class diagram.
Coding standards. Applies to any code that has been touched by human hands (e.g. meaningful variable and method names, commenting, layout). We will look for meaningful
identifier names (variable, classes, methods), inline comments, method header comments, class/module comments, layout.
Functional Completeness: All features are fully implemented, and snapshots are included in the report.
Task 2: System Demonstrations
Please start the video by discussing the contribution of each team member (i.e., which team member was responsible for which component in the system).
Students demonstrate understanding of the system, the relationship between the code and the design documents of the system.
Students should point out where in their code the constructs shown in their design documents are implemented.