MINISTRY OF EDUCATION AND TRAINING FPT UNIVERSITY DETAILED DESIGN DOCUMENT CRMS Group 5 HE151387 - Hoàng Trung Hiếu HE153286 - Lê Tuấn Anh Group Member HE153629 - Nguyễn Hà Quốc Duy HE151065- Lê Vũ Long ID - Name Supervisor Mr.Sang Ext. Supervisor Project Code CRMS - Hanoi, 02/2023 - 1 CRMS | Detailed Design FPT University | School of Engineering Table of Contents 1 2 3 1.1 3 1.2 3 1.2.1 Class Diagram 3 1.2.2 Class Description 3 1.2.3 Screen Design 4 1.2.4 Sequence Diagram 5 126 2.1 Ошибка! Закладка не определена. 2.2 126 2.3 126 2.3.1 126 2.3.2 127 CRMS | Detailed Design 1 FPT University | School of Engineering DETAILED DESIGN 1.1 Common Design <Phần mô tả thiết kế cho các thành phần chung của tất cả các chức năng> 1.2 <UC xx- Use case name> 1.2.1 Class Diagram <Sơ đồ quan hệ giữa các lớp của chức năng> 1.2.2 Class Description <Phần mô tả chi tiết các lớp của chức năng> 1.2.2.1 <Class Name> Class <Class Name> Description Base Class Constructor Prototype Source File Namespace Attributes Name Type Description Methods Name Input Output Description CRMS | Detailed Design 1.2.2.2 FPT University | School of Engineering <Class Name> Class <Class Name> Description Base Class Constructor Prototype Source File Namespace Attributes Name Type Description Methods Name Input Output ...... 1.2.3 Screen Design <Screen Layout - Manage news- Delete news > Description CRMS | Detailed Design FPT University | School of Engineering <Screen Definition> Table 4-x: Manage news- Delete news Object/Cont N orol Name 1 Object/Control Name in English 2 3 4 1.2.4 1.2.4.1 Sequence Diagram <Use-case ID - Use case name> ... 1.2.4.2 <Use-case ID - Use case name> ................ Type Required Length Descriptio n CRMS | Detailed Design FPT University | School of Engineering 1.3 UC 01- User register 1.3.1 Class Diagram 1.3.2 Class Description 1.3.2.1 User Class User Description Define the attribute and method in user oject Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods 1.3.2.2 FPT University | School of Engineering Name Type userId int userName String dob Date address String role String email String password String status String Name Input Description Output Description RegisterController Class RegisterController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/RegisterController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter CRMS | Detailed Design FPT University | School of Engineering value send in URL and call DAO doPost req,res void handle Http POST request. call doGet 1.3.2.3 UserDAOImpl Class UserDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database CRMS | Detailed Design FPT University | School of Engineering updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account 1.3.3 Screen Design Table 4-1: User register CRMS | Detailed Design Object/Control N Name o Full name 1 Date of2 birth Phone 3number Gender4 Address Email Password Confirm password 1.3.4 1.3.4.1 Sequence Diagram UC01-User Register FPT University | School of Engineering Type Required Length Description Input text Date Yes 50 None Yes None None Input text Input text Input text Input email Input text Input text Yes None None Yes None None Yes 100 None Yes 50 None Yes 8-16 None Yes 8-16 None CRMS | Detailed Design FPT University | School of Engineering 1.4 UC 02- Sign in 1.4.1 Class Diagram 1.4.2 Class Description 1.4.2.1 User Class User Description Define the attribute and method in user oject Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods 1.4.2.2 FPT University | School of Engineering Name Type userId int userNme String dob Date address String role String email String password String status String Name Input Description Output Description SignInController Class SignInController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/SignInController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from CRMS | Detailed Design FPT University | School of Engineering bowser get filter value send in URL and call DAO doPost req,res void handle Http POST request. call doGet 1.4.2.3 UserDAOImpl Class UserDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to dababase getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database CRMS | Detailed Design FPT University | School of Engineering updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void Use to update void Use to update mation user information in database deleteAccount user:User void Use to delete user’s account 1.4.3 Screen Design Table 4-2: Sign in Object/Cont N orol Name Email 1 Object/Control Name in English Email Type Required Length Input text Yes 8-16 Descriptio n None CRMS | Detailed Design 1.4.4 1.4.4.1 FPT University | School of Engineering Password 2 Password Remmember me Remmember me Sequence Diagram UC02 - Sign In Input text Check box Yes 8-16 None None None None CRMS | Detailed Design FPT University | School of Engineering 1.5 UC 03- Change password 1.5.1 Class Diagram 1.5.2 Class Description 1.5.2.1 User Class User Description Define the attribute and method in user oject Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods 1.5.2.2 FPT University | School of Engineering Name Type userId int userNme String dob Date address String role String email String password String status String Name Input Description Output Description ChangePasswordController Class ChangePasswordController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ChangePasswordController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from CRMS | Detailed Design FPT University | School of Engineering bowser get filter value send in URL and call DAO doPost req,res void handle Http POST request. call doGet 1.5.2.3 UserDAOImpl Class UserDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to dababase getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database CRMS | Detailed Design FPT University | School of Engineering updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account 1.5.3 Screen Design Table 4-3: Change Password CRMS | Detailed Design 1.5.4 1.5.4.1 FPT University | School of Engineering Object/Cont N orol Name Old Password 1 Object/Control Name in English Old Password Type Required Length Yes 8-16 New Password Input text Date Descriptio n None New 2 Password Confirm password Yes 8-16 None Confirm password text Yes 8-16 None Sequence Diagram UC 03 - Change Password CRMS | Detailed Design FPT University | School of Engineering 1.6 UC 04- Reset password 1.6.1 Class Diagram 1.6.2 Class Description 1.6.2.1 User Class User Description Define the attribute and method in user oject Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods 1.6.2.2 FPT University | School of Engineering Name Type userId int userNme String dob Date address String role String email String password String status String Name Input Description Output Description ResetPasswordController Class ResetPasswordController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ResetPasswordController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter CRMS | Detailed Design FPT University | School of Engineering value send in URL and call DAO doPost req,res void handle Http POST request. call doGet 1.6.2.3 UserDAOImpl Class UserDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to dababase getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database CRMS | Detailed Design FPT University | School of Engineering updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account 1.6.3 Screen Design CRMS | Detailed Design FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering Table 4-4: Reset Password 1.6.4 1.6.4.1 Object/Cont N orol Name Email 1 Object/Control Name in English Email OTP 2 OTP Password 3 Password Confirm 4 password Confirm password Sequence Diagram UC 04 - Reset Password Type Required Length Input text Input text Input text Input text Yes 50 Descriptio n None Yes 50 None Yes 50 None Yes 8-16 None CRMS | Detailed Design FPT University | School of Engineering 1.7 UC 05- User profile 1.7.1 Class Diagram 1.7.2 Class Description 1.7.2.1 User Class User Description Define the attribute and method in user object Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods 1.7.2.2 FPT University | School of Engineering Name Type userId int userName String dob Date address String role String email String password String status String Name Input Description Output Description UpdateUserController Class UpdateUserController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UpdateUserController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from CRMS | Detailed Design FPT University | School of Engineering bowser get filter value send in URL and call DAO doPost req,res void handle Http POST request. call doGet 1.7.2.3 UserDAOImpl Class UserDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database CRMS | Detailed Design FPT University | School of Engineering updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account 1.7.3 Screen Design Table 4-5: User profile CRMS | Detailed Design Object/Cont N orol Name Full name 1 Object/Control Name in English Full name Date of2 birth Date of birth Phone 3 number Gender4 Phone number Address Address Email Email Password User Id 1.7.4 1.7.4.1 FPT University | School of Engineering Gender Password User Id Sequence Diagram UC 05 - User profile Type Required Length Input text Date Yes 50 Descriptio n None Yes None None Input text Select Yes None None Yes None None Input text Input email Yes None None Yes 50 None Input text Input text hide Yes Yes 50 None None None CRMS | Detailed Design FPT University | School of Engineering 1.8 UC-06-Delete Account 1.8.1 Class Diagram 1.8.2 Class Description 1.8.2.1 User 1. Class User Description Define the attribute and method in user object Base Class Constructor Prototype Model Source File Model/User.java Namespace CRMS:Model Attributes Name Type Description CRMS | Detailed Design Methods FPT University | School of Engineering userId int userName String dob Date address String role String email String password String status String Name Input Output Description 2. 1.8.2.2 DeleteAccountController 3. Class DeleteAccountController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/DeleteAccountController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description CRMS | Detailed Design FPT University | School of Engineering doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGest 1.8.2.3 UserDAOimpl 4. Class UserDAOImpl Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database CRMS | Detailed Design FPT University | School of Engineering getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account from user 1.8.3 Screen Design CRMS | Detailed Design 1.8.4 FPT University | School of Engineering Sequence Diagram 1.9 UC-07-User Management 1.9.1 Class Diagram CRMS | Detailed Design 1.9.2 1.9.2.1 FPT University | School of Engineering Class Description User 5. Class User Description This class use to save user information Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model Attributes Name Type userId int userName String dob Date address String role String email String password String status String Name Input Methods Description Output Description CRMS | Detailed Design FPT University | School of Engineering 6. 1.9.2.2 UserManagementController 7. Class UserManagementController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UserManagementController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGest 1.9.2.3 UserDAOimpl 8. Class UserDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to handle with request from web page Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account CRMS | Detailed Design getAllUser FPT University | School of Engineering void Use to get all information of all user 1.9.3 Screen Design CRMS | Detailed Design 1.9.4 Sequence Diagram 2. 1.10 UC-08- Add user 2. 1.10.1 Class Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.10.2 Class Description 1.10.2.1 User 1. Class User Description This class use to save user information Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model Attributes Name Type userId int userName String dob Date address String role String email String password String status String Name Input Methods Description Output Description CRMS | Detailed Design FPT University | School of Engineering 2. 1.10.2.2 AddUserController 3. Class AddUserController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/AddCarController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGest 1.10.2.3 UserDAOimpl 4. Class UserDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to handle with request from web page Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account CRMS | Detailed Design FPT University | School of Engineering getAllUser User object Use to get all information of all user addUser user: User void Use to add account to database 1.10.3 Screen Design CRMS | Detailed Design 1.10.4 Sequence Diagram 3. 1.11 -09- Update user 4. 1.11.1 Class Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.11.2 Class Description 1.11.2.1 User 1. Class User Description Define the attribute and method in admin object Base Class Constructor public User() Prototype Model Source File Model/User.java Namespace CRMS:Model Attributes Name Type userId int userName String dob Date address String role String email String password String status String Name Input Methods Description Output Description CRMS | Detailed Design FPT University | School of Engineering 2. 1.11.2.2 UpdateUserController 3. Class UpdateUserController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UpdateCarController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGest 1.11.2.3 UserDAOimpl 4. Class UserDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to handle with request from web page Base Class Constructor UserDAO() Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account CRMS | Detailed Design FPT University | School of Engineering getAllUser User object Use to get all information of all user addUser user: User void Use to add account to database updateUser user:User void Use to update user’s information CRMS | Detailed Design 1.11.3 Screen Design 5. 1.11.4 Sequence Diagram 6. 1.12 -10- Delete user 1.12.1 Class Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.12.2 Class Description 1.12.2.1 User 1. Class User Description Define the attribute and method in admin object Base Class Constructor Prototype Model Source File Model/User.java Namespace CRMS:Model Attributes Name Type userId int Description CRMS | Detailed Design Methods FPT University | School of Engineering userName String dob Date address String role String email String password String status String Name Input Output Description 2. 1.12.2.2 DeleteAccountController 3. Class DeleteAccountController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/DeleteAccountController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description CRMS | Detailed Design FPT University | School of Engineering doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGest 1.12.2.3 UserDAOimpl 4. Class UserDAOImpl Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UserDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description checkUserExist email: String User object Use email to check user exist in database or not AddNewUser user: User void Use to add new user to database CRMS | Detailed Design FPT University | School of Engineering getUserWithEma email : String, User object Use email and ilAndPassword password : password to get String user exist in database updateUserPassw newPassword : ord String, user : user password in User database updateUserInfor user : User void void mation Use to update Use to update user information in database deleteAccount user:User void Use to delete user’s account from user 1.12.3 Screen Design CRMS | Detailed Design 1.12.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.13 UC-11- Car Management 1.13.1 Class Diagram 1.13.2 Class Description 1.13.2.1 Car 5. Class Car Description Define the attribute and method in car object Base Class Constructor public Car() Prototype Model CRMS | Detailed Design FPT University | School of Engineering Source File Model/Car.java Namespace CRMS:Model Attributes Name Type carId int lisencePlate String carType String carColor String carBrand String private rentalRate double private seatingCapacity int private Description private private private private 6. 1.13.2.2 CatalogCarController Class CatalogCarController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/CatalogCarController.java Namespace CRMS:Controller Methods Name Input Output Description CRMS | Detailed Design FPT University | School of Engineering doGet req,res void receipt Http GET request from bowser get filter value send in URL and call BO to get list catalog car doPost req,res void handle Http POST requests. call doGest 1.13.2.3 CarDAOImpl Class CarDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor CarBO Prototype Source File DAO/CarDAO/Impl/CarDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity getAllCar car:Car car list Use to get all car from database addCar updateCar car:Car car:Car add a new Use to add car to car database update car Use to update information to a car CRMS | Detailed Design deleteCar FPT University | School of Engineering car:Car delete car Use to delete car from database 1.13.3 Screen Design CRMS | Detailed Design 7. FPT University | School of Engineering Sequence Diagram CRMS | Detailed Design 8. FPT University | School of Engineering UC-12- Add Car 1.13.4 Class Diagram 1.13.5 1.13.6 Class Description 1.13.6.1 Car 1. Class Car Description Define the attribute and method in car object Base Class Constructor public Car() CRMS | Detailed Design FPT University | School of Engineering Prototype Model Source File Model/Car.java Namespace CRMS:Model Attributes Name Type carId int lisencePlate String carType String carColor String carBrand String private rentalRate double private seatingCapacity int private Description private private private private 2. 1.13.6.2 CatalogCarController Class CatalogCarController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/CatalogCarController.java Namespace CRMS:Controller Methods Name Input Output Description CRMS | Detailed Design FPT University | School of Engineering doGet req,res void receipt Http GET request from bowser get filter value send in URL and call BO to get list catalog car doPost req,res void handle Http POST requests. call doGest 1.13.6.3 CarDAOImpl 2 Class CarDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor CarBO Prototype Source File DAO/CarDAO/Impl/CarDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity getAllCar car:Car car list Use to get all car from database addCar updateCar car:Car car:Car add a new Use to add car to car database update car Use to update information to a car CRMS | Detailed Design deleteCar FPT University | School of Engineering car:Car delete car Use to delete car from database 2.1.1 Screen Design CRMS | Detailed Design 9. FPT University | School of Engineering Sequence Diagram CRMS | Detailed Design 3 UC-13- Update Car 4 Class Diagram FPT University | School of Engineering 4.1.1 5 Class Description 5.1.1.1 Car 1. Class Car Description Define the attribute and method in car object Base Class Constructor public Car() Prototype Model CRMS | Detailed Design 6 FPT University | School of Engineering Source File Model/Car.java Namespace CRMS:Model Attributes Name Type carId int lisencePlate String carType String carColor String carBrand String private rentalRate double private seatingCapacity int private Description private private private private CatalogCarController Class CatalogCarController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/CatalogCarController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and CRMS | Detailed Design FPT University | School of Engineering call BO to get list catalog car doPost req,res void handle Http POST requests. call doGest 7 CarDAOImpl 2. Class CarDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor CarBO Prototype Source File DAO/CarDAO/Impl/CarDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity getAllCar car:Car car list Use to get all car from database addCar car:Car add a new Use to add car to car database update car Use to update 3. updateCar car:Car information to a car CRMS | Detailed Design deleteCar FPT University | School of Engineering car:Car delete car Use to delete car from database CRMS | Detailed Design 8 FPT University | School of Engineering Screen Design 2. 10. Sequence Diagram CRMS | Detailed Design 9 FPT University | School of Engineering UC-14- Delete Car 10 Class Diagram 11 Class Description 11.1.1.1 Car 1. Class Car Description Define the attribute and method in car object Base Class Constructor public Car() Prototype Model CRMS | Detailed Design FPT University | School of Engineering Source File Model/Car.java Namespace CRMS:Model Attributes Name Type carId int lisencePlate String carType String carColor String carBrand String private rentalRate double private seatingCapacity int private Description private private private private 11.1.1.2 CatalogCarController Class CatalogCarController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/CatalogCarController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and CRMS | Detailed Design FPT University | School of Engineering call BO to get list catalog car doPost req,res void handle Http POST requests. call doGest 11.1.1.3 CarDAOImpl 12 Class CarDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor CarBO Prototype Source File DAO/CarDAO/Impl/CarDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity getAllCar car:Car car list Use to get all car from database addCar updateCar car:Car car:Car add a new Use to add car to car database update car Use to update information to a car deleteCar car:Car delete car Use to delete car from database CRMS | Detailed Design FPT University | School of Engineering 12.1.1 Screen Design 11. Sequence Diagram CRMS | Detailed Design FPT University | School of Engineering 12.2 UC-15- Catalog car 12.2.1 Class Diagram 12.2.2 Class Description 12.2.2.1 Car Class Car Description Define the attribute and method in car object Base Class Constructor public Car() Prototype Model Source File Model/Car.java Namespace CRMS:Model Attributes Name Type carId int lisencePlate String Description private private CRMS | Detailed Design FPT University | School of Engineering private carType String carColor String carBrand String private rentalRate double private seatingCapacity int private private 12.2.2.2 CatalogCarController Class CatalogCarController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/CatalogCarController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call BO to get list catalog car doPost req,res void handle Http POST request. call doGest CRMS | Detailed Design FPT University | School of Engineering 12.2.2.3 CarBOImpl Class CarBOImpl Description Define method to solve the business logic behind the user required as crud Base Class Constructor CarBO Prototype Source File BO/CarBO/Impl/CarBOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity 12.2.2.4 CarDAOImpl Class CarDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor CarBO Prototype Source File DAO/CarDAO/Impl/CarDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getCarList filterEntity ResponseEnti Receipt the the filter ty value and return list car CRMS | Detailed Design FPT University | School of Engineering that bound inside response entity 12.2.3 Screen Design Table 4-x: Catalog Car- View Catalog car Object/Control Name Type Required Length Description 1 Search field Input text String regex 50 Search car value 2 Filter field Select None None Select tag that allow user select filter field car CRMS | Detailed Design FPT University | School of Engineering 12.2.3.1 Sequence Diagram 12.2.3.2 UC-15 CatalogCarView 12.3 UC-16- Contract list 12.3.1 Class Diagram x 12.3.2 Class Description 12.3.2.1 Bill Class Bill Description Define the attribute and method of bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java Namespace CRMS:Model CRMS | Detailed Design Attributes FPT University | School of Engineering Name Type id int totalAmount Double issueDate Date Description private private private status String private rentalContract RentalContr act private 1. 12.3.2.2 RentalDetail Class RentalDetail Description Define the attribute and method in rental car object Base Class Constructor public RentalDetail() Prototype Model Source File Model/RentailDetail.java Namespace CRMS:Model Attributes Name Type bill Bill Description private rentalCars List private CRMS | Detailed Design FPT University | School of Engineering 12.3.2.3 FeeRecord Class FeeRecord Description Define the attribute and method of fee record object Base Class Constructor public FeeRecord() Prototype Model Source File Model/FeeRecord.java Namespace CRMS:Model Attributes Name Type feeId int feeType String feeDate Date amount Double status String Description private private private private private 12.3.2.4 RentalContract Class RentalContract Description Define the attribute and method of contract Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model CRMS | Detailed Design Attributes FPT University | School of Engineering Name Type rentalContractId int createAt Date status String user User startDate Date endDate Date Description private private private private private private 2. 3. 12.3.2.5 ContractListController Class ContractListController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ContractController/ContractListController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call BO to get list catalog car CRMS | Detailed Design FPT University | School of Engineering doPost req,res void handle Http POST request. call doGest 12.3.2.6 ContractBOImpl Class ContractBOImpl Description Define method to sovle the business logic behind the user required as crud Base Class Constructor public ContractBO(); Prototype Source File BO/ContractBO/Impl/ContractBOImpl.java Namespace CRMS:Controller Methods Name Input Output Description getContractList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity 12.3.2.7 CarDAOImpl Class ContractDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor ContractDAO() Prototype Source File DAO/ContractDAO/Impl/ContractDAOImpl.java CRMS | Detailed Design FPT University | School of Engineering Namespace CRMS:Controller Methods Name Input Output Description getContractList filterEntity ResponseEnti Receipt the the filter ty value and return list car that bound inside response entity CRMS | Detailed Design FPT University | School of Engineering 12.3.3 Screen Design 12. 12.3.4 Sequence Diagram 1. 12.4 UC-17-AddContract CRMS | Detailed Design FPT University | School of Engineering 12.4.1 Class Diagram 12.4.2 Class Description 12.4.2.1 Bill Class RentalContractDetail Description Define the attribute and method of contract Base Class Constructor public RentalContractDetail() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type rentalContractId int Description private CRMS | Detailed Design FPT University | School of Engineering createAt Date status String user User startDate Date endDate Date bill Bill rentalCars List private private private private private private private 12.4.2.2 ContractAddController 1. Class ContractAddController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ContractController/ContractListController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call BO to get list catalog car CRMS | Detailed Design FPT University | School of Engineering doPost req,res void handle Http POST request. call doGest 12.4.2.3 ContractBOImpl Class ContractBOImpl Description Define method to sovle the business logic behind the user required as crud Base Class Constructor public ContractBO(); Prototype Source File BO/ContractBO/Impl/ContractBOImpl.java Namespace CRMS:Controller Methods Name Input Output Description addContract Contract void Receipt the the contract info and execute validate, add operation 12.4.2.4 ContractDAOImpl Class ContractDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor ContractDAO() Prototype Source File DAO/ContractDAO/Impl/ContractDAOImpl.java Namespace CRMS:Controller Methods Name Input Output Description CRMS | Detailed Design addContract FPT University | School of Engineering contract void Receipt contract info and execute sql statement to add it into database 2. 12.4.3 Screen design 3. 12.4.4 Sequence diagram CRMS | Detailed Design FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 12.5 UC-17-UpdateContract 12.5.1 Class Diagram 12.5.2 Class Description 12.5.2.1 Bill Class RentalContractDetail Description Define the attribute and method of contract Base Class Constructor public RentalContractDetail() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description CRMS | Detailed Design FPT University | School of Engineering rentalContractId int createAt Date status String user User startDate Date endDate Date bill Bill rentalCars List private private private private private private private private 12.5.2.2 ContractUpdateController 1. Class ContractAddController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ContractController/ContractListController.java Namespace CRMS:Controller Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and CRMS | Detailed Design FPT University | School of Engineering call BO to get list catalog car doPost req,res void handle Http POST request. call doGest 12.5.2.3 ContractBOImpl Class ContractBOImpl Description Define method to sovle the business logic behind the user required as crud Base Class Constructor public ContractBO(); Prototype Source File BO/ContractBO/Impl/ContractBOImpl.java Namespace CRMS:Controller Methods Name Input Output Description updateContract Contract void Receipt the the contract info and execute validate, add operation 12.5.2.4 ContractDAOImpl Class ContractDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor ContractDAO() Prototype Source File DAO/ContractDAO/Impl/ContractDAOImpl.java Namespace CRMS:Controller CRMS | Detailed Design Methods FPT University | School of Engineering Name Input Output Description updateContract contract void Receipt contract info and execute sql statement to add it into database 4. 12.5.3 Screen design 5. 12.5.4 Sequence diagram CRMS | Detailed Design FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 12.6 UC-17-DeleteContract 12.6.1 Class Diagram 12.6.2 Class Description 12.6.2.1 ContractAddController Class ContractDeleteController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/ContractController/ContractListController.java Namespace CRMS:Controller CRMS | Detailed Design Methods FPT University | School of Engineering Name Input Output Description doGet req,res void do not thing doPost req,res void handle Http POST request to receive contract id 12.6.2.2 ContractBOImpl Class ContractBOImpl Description Define method to sovle the business logic behind the user required as crud Base Class Constructor public ContractBO(); Prototype Source File BO/ContractBO/Impl/ContractBOImpl.java Namespace CRMS:Controller Methods Name Input Output Description deleteContract contractId void Receipt the the contract info and execute validate, add operation 12.6.2.3 ContractDAOImpl Class ContractDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor ContractDAO() Prototype Source File DAO/ContractDAO/Impl/ContractDAOImpl.java CRMS | Detailed Design FPT University | School of Engineering Namespace CRMS:Controller Methods Name Input Output Description deleteContract contract_id void Receipt contract info and execute sql statement to add it into database 6. 12.6.3 Screen design 7. 12.6.4 Sequence diagram CRMS | Detailed Design FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.1 UC 21- Bill Management 1.1.1 Class Diagram 1.1.2 Class Description 1.1.2.1 Bill Class Bill Description Define the attribute and method in bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods FPT University | School of Engineering Name Type Description id int private totalAmount Double private issueDate Date private status String private rentalContract RentalContract private Name Input Output Description 1.1.2.2 Rental Contract Class RentalContract Description Define the attribute and method in rental contract object Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description rentalContractId int private createAt Date private status String private startDate Date private endDate Date private user User private Name Input Output Methods Description CRMS | Detailed Design FPT University | School of Engineering 1. 1.1.2.3 BillListController Class BillListController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/BillListController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGet 1.1.2.4 BillDAOImpl Class BillDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to prepare and execute sql statement Base Class Constructor BillDAO() Prototype Source File DAO/BillDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description getBillList filterEntity: FilterEntity ResponseEntity Receipt the the filter value and return list bill that bound inside response entity CRMS | Detailed Design 1.1.3 Screen Design 1.1.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.2 UC 22- View Bill Detail 1.2.1 Class Diagram 1.2.2 Class Description 1.2.2.1 Bill Class Bill Description Define the attribute and method in bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods FPT University | School of Engineering Name Type Description id int private totalAmount Double private issueDate Date private status String private rentalContract RentalContract private Name Input Output Description 1.2.2.2 Rental Contract Class RentalContract Description Define the attribute and method in rental contract object Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description rentalContractId int private createAt Date private status String private startDate Date private endDate Date private user User private Name Input Output Methods Description CRMS | Detailed Design FPT University | School of Engineering 2. 1.2.2.3 BillDetailController Class BillDetailController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/BillDetailController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGet 1.2.2.4 BillDAOImpl Class BillDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to prepare and execute sql statement Base Class Constructor BillDAO() Prototype Source File DAO/BillDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description getBillById billId: int void get bill id and return bill information detail. CRMS | Detailed Design 1.2.3 Screen Design 1.2.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.3 UC 23- List Bill History 1.3.1 Class Diagram 1.3.2 Class Description 1.3.2.1 Bill Class Bill Description Define the attribute and method in bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java CRMS | Detailed Design FPT University | School of Engineering Namespace CRMS:Model Attributes Name Type Description id int private totalAmount Double private issueDate Date private status String private rentalContract RentalContract private Name Input Output Methods 1.3.2.2 Rental Contract Class RentalContract Description Define the attribute and method in rental contract object Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description rentalContractId int private createAt Date private status String private startDate Date private endDate Date private user User private Description CRMS | Detailed Design Methods FPT University | School of Engineering Name Input Output Description 3. 1.3.2.3 BillHistoryController Class BillHistoryController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/BillHistoryController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGet CRMS | Detailed Design FPT University | School of Engineering 1.3.2.4 BillDAOImpl Class BillDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor BillDAO() Prototype Source File DAO/BillDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description getBillList filterEntity: FilterEntity ResponseEntity Receipt the the filter value and return list bill that bound inside response entity getBillById billId: int void get bill id and return bill information detail. CRMS | Detailed Design 1.3.3 Screen Design 1.3.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.4 UC 24- Update Bill 1.4.1 Class Diagram 1.4.2 Class Description 1.4.2.1 Bill Class Bill Description Define the attribute and method in bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java Namespace CRMS:Model CRMS | Detailed Design Attributes Methods FPT University | School of Engineering Name Type Description id int private totalAmount Double private issueDate Date private status String private rentalContract RentalContract private Name Input Output Description 1.4.2.2 Rental Contract Class RentalContract Description Define the attribute and method in rental contract object Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description rentalContractId int private createAt Date private status String private startDate Date private endDate Date private user User private Name Input Output Methods Description CRMS | Detailed Design FPT University | School of Engineering 4. 1.4.2.3 UpdateBillController Class UpdateBillController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/UpdateBillController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGet 1.4.2.4 BillDAOImpl Class BillDAOImpl CRMS | Detailed Design Description FPT University | School of Engineering Define method to prepare and execute sql statement Base Class Constructor BillDAO() Prototype Source File DAO/BillDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description updateBill bill: Bill void Use to update bill information in database CRMS | Detailed Design 1.4.3 Screen Design 1.4.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 1.5 UC 25- Delete Bill 1.5.1 Class Diagram 1.5.2 Class Description 1.5.2.1 Bill Class Bill Description Define the attribute and method in bill object Base Class Constructor public Bill() Prototype Model Source File Model/Bill.java CRMS | Detailed Design FPT University | School of Engineering Namespace CRMS:Model Attributes Name Type Description id int private totalAmount Double private issueDate Date private status String private rentalContract RentalContract private Name Input Output Methods 1.5.2.2 Rental Contract Class RentalContract Description Define the attribute and method in rental contract object Base Class Constructor public RentalContract() Prototype Model Source File Model/RentalContract.java Namespace CRMS:Model Attributes Name Type Description rentalContractId int private createAt Date private status String private startDate Date private endDate Date private user User private Description CRMS | Detailed Design Methods FPT University | School of Engineering Name Input Output Description 5. 1.5.2.3 DeleteBillController Class DeleteBillController Description Define method to handle with request from web page Base Class Constructor Prototype Source File Controller/DeleteBillController.java Namespace CRMS:Controller Attributes Name Type Description Methods Name Input Output Description doGet req,res void receipt Http GET request from bowser get filter value send in URL and call DAO doPost req,res void handle Http POST requests. call doGet CRMS | Detailed Design FPT University | School of Engineering 1.5.2.4 BillDAOImpl Class BillDAOImpl Description Define method to prepare and execute sql statement Base Class Constructor BillDAO() Prototype Source File DAO/BillDAOImpl.java Namespace CRMS:DAO Attributes Name Type Description Methods Name Input Output Description deleteBill billId: int void Use to delete bill get away of database CRMS | Detailed Design 1.5.3 Screen Design 1.5.4 Sequence Diagram FPT University | School of Engineering CRMS | Detailed Design FPT University | School of Engineering 13 DATABASE DESIGN 13.1 Database Diagram 13.2 Table Descriptions 13.2.1 Table User No. 1 Attribute Type Constraints primary key id int 2 full_name nvarchar(50) Not null 3 dob date 4 address nvarchar(100) not null 5 phone_number varchar(10) not null 6 email varchar(50) not null, unique 7 password varchar(50) not null not null Description CRMS | Detailed Design 8 role FPT University | School of Engineering varchar(20) not null 13.2.2 Table car No. 1 Attribute Type Constraints Description Primary key car_id int 2 lisence_plate varchar(10) not null, unique 3 car_type varchar(50) not null 4 car_color varchar(50) not null 5 car_brand varchar(50) not null 6 seating_capacity int >0 7 rental_rate double >0 rental fee per hour 13.2.3 Table rental contract No. 1 Attribute Type Constraints Description primary key rental_contract_id int 2 create_at date not null 3 start_date date not null 4 end_date date not null 5 status varchar(20) not null 6 user_id int foreign key to user 13.2.4 Table bill No. 1 Attribute Type Constraints Description primary key bill_id int 2 issue_date date not null 5 status varchar(20) not null 6 rental_contract_id int foreign key reference to rental contract 13.2.5 Table rental detail No. Attribute Type Constraints Description CRMS | Detailed Design 1 FPT University | School of Engineering primary key renta_id int 2 unit_price double not null rented car price 3 rental_contract_id int foreign key reference to rental contract 4 car_id int foreign key reference to car 13.2.6 Table FeeRecord No. 1 Attribute Type Constraints primary key fee_id int 2 fee_date date not null 3 fee_type varchar(50) note null 5 status varchar(20) not null 5 amount double >0 6 rental_id int foreign key 8. Description reference to rental contract