FINAL REPORT-App For Prisoners
FINAL REPORT-App For Prisoners
A PROJECT REPORT
Submitted by
POOJA M (111420104077)
SAKSHI KUMARI P (111420104086)
YUVALAKSHMI G (111420104106)
of
BACHELOR OF ENGINEERING
in
THIRUVALLUR-602 025
APRIL 2024
ANNA UNIVERSITY :: CHENNAI 600 025
BONAFIDE CERTIFICATE
Certified that this project report “APP FOR PRISONERS REHABILITATION” is the
bonafide work of “POOJA (111420104077), SAKSHI KUMARI P (111420104086)
YUVA LAKSHMI (111420104106)” who carried out the project work under my
supervision.
SIGNATURE SIGNATURE
Dr. THAMBA MESHACH W, MS. SRIPRIYA . N,
ASSOCIATE PROFESSOR, ASSISTANT PROFESSOR,
HEAD OF THE DEPARTMENT, SUPERVISOR,
Department of CSE, Department of CSE,
Prathyusha Engineering College, Prathyusha Engineering College,
Thiruvallur-602 025. Thiruvallur- 602 025.
Place: Thiruvallur
Date:
Our sincere thanks to Shri. P. RAJARAO, Chairman, Shri. CHARAN TEJA, Vice
Chairman and Smt. P. PRATHYUSHA, CEO, Prathyusha Engineering College for
facilitating us to do this project.
We are sincerely thanking Dr. P. M. BEULAH DEVAMALAR, Director(A&D) for
inspiring us.
We would like to express our heartfelt gratitude to Dr. B. R. RAMESH BAPU,
Principal of Prathyusha Engineering College, for supporting our efforts on this initiative.
We are sincerely thanking Dr. THAMBA MESHACH W, Associate Professor, Head
of the Department, our internal guide for supporting us in all stages of project conduction and
for his guidance for the successful completion of this project.
We are grateful to our project coordinator Mr. CHRISTAL ANAND S, Assistant
Professor, for her valuable suggestions and guidance.
We are more thankful to our project guide Ms. Sripriya. N , Assistant Professor, for
assisting us with her suggestions to complete our project.
We also wish to extend our sincere thanks to all the committee members for their
constant support throughout the review.
We wish to express our sincere gratitude to PARENTS AND FRIENDS for valuable
help, cooperation, and encouragement during this project work.
Last but not least, we wish to express our sincere thanks to the entire teaching faculty
and non-teaching staff for their support.
ABSTRACT
According to the latest available data compiled by the National Crime Records
Bureau (NCRB) for 2020, about 76% of all prison inmates in the country were
undertrials, of which about 68% were either illiterate or school dropouts. An
undertrial is an accused person who is being held in custody by a court of law and is
awaiting trial for a crime. Many prisoners are unable to get bail due to lack of
economic resources. Most of them face problems of overcrowding and shortage of
adequate space to lodge prisoners in safe and healthy conditions.
The prime objective of this project –“App for prisoners rehabilitation.” is to design
an app connecting undertrial prisoners with lawyers and able to apply for legal aid.
The user can connect with the lawyers through the chat room available in the app.
The user can record their message instead of texting, for their ease. They can also
connect with clinical doctors for healthcare assistance. This app will assist users with
rehabilitation like mental health support, education, vocational training by allowing
them to choose their topic of interest for enhancing their knowledge.
In conclusion, this app stands as a beacon of hope in the realm of criminal justice
reform, demonstrating the potential for technology to positively impact the lives of
undertrial prisoners. By combining legal aid, healthcare support, and avenues for
educational and vocational training, the project strives to create a more holistic and
rehabilitative environment for individuals within the criminal justice system.
i
TABLE OF CONTENTS
LIST OF SYMBOLS x
1 INTRODUCTION
1.1 OVERVIEW 1
1.2 OBJECTIVE 1
2 SYSTEM ANALYSIS
2.1.1 DISADVANTAGES 5
2.2.1 ADVANTAGES 5
ii
CHAPTER TITLE PAGE
NO NO
3 SYSTEM REQUIREMENTS
3.1 HARDWARE REQUIREMENTS 6
3.2 SOFTWARE REQUIREMENTS 6
4 SYSTEM DESIGN
iii
CHAPTER TITLE PAGE
NO NO
6 TESTING
ANNEXURE
APPENDIX 1 SOURCE CODE 31
APPENDIX 2 OUTPUT SCREENSHOT 43
REFERENCES 48
iv
LIST OF FIGURES
15
16
19
v
LIST OF TABLES
rehabilitaton app 24
vi
LIST OF SYMBOLS
Represents a collection of
similentities grouped
together.
1. Class
Associations represent
2. Association NAME static relationships
between classes.
vii
S.NO NOTATION NOTATION DESCRIPTION
NAME
viii
S.N NOTATION NOTATION DESCRIPTION
O NAME
ix
CHAPTER 1
INTRODUCTION
1
CHAPTER 1
INTRODUCTION
1.1 OVERVIEW
In many countries, the issue of undertrial prisoners remains a significant concern within the
criminal justice system. According to the latest available data compiled by the National
Crime Records Bureau (NCRB) for 2020, about 76% of all prison inmates in the country
were undertrials, of which about 68% were either illiterate or school dropouts. An undertrial
is an accused person who is being held in custody by a court of law and is awaiting trial for
a crime. Many prisoners are unable to get bail due to lack of economic resources. Most of
them face problems of overcrowding and shortage of adequate space to lodge prisoners
in safe and healthy conditions. Historically, undertrial prisoners have encountered barriers in
accessing legal assistance due to factors such as financial constraints, lack of information,
and inefficiencies within the legal system. This results in prolonged detention periods,
overcrowded prisons, and systemic injustices. Similarly, undertrial prisoners frequently
experience inadequate healthcare services, leading to untreated medical conditions,
exacerbation of illnesses, and compromised well-being. Moreover, the absence of
rehabilitation programs within correctional facilities hinders the reintegration process,
perpetuating cycles of recidivism and social marginalization.
Against this backdrop, the "App for Undertrial Prisoners" project emerges as a proactive
response to mitigate these challenges and promote the rights and welfare of undertrial
prisoners.Thus, this app stands as a beacon of hope in the realm of criminal justice reform,
demonstrating the potential for technology to positively impact the lives of undertrial
prisoners. By combining legal aid, healthcare support, and avenues for educational and
vocational training, the project strives to create a more holistic and rehabilitative
environment for individuals within the criminal justice system.
2
1.2 OBJECTIVE
The objective of this application is to facilitate undertrial prisoners with access to legal aid,
healthcare, and rehabilitation services. Streamline communication between prisoners, legal
professionals, healthcare providers, and support organizations.
3
support for the successful implementation of rehabilitation programs within the
criminal justice system.
[3] “Rehabilitation Programs in Prison: Helping the Self wounded to Heal " by
Prativa Poude, Vol 36, in March 2023.
The paper explores the current system of Central Jail (NAKHU JAIL), emphasizing
the need for rehabilitation programs, identifying challenges faced, and proposing methods to
enhance their effectiveness.
4
CHAPTER 2
SYSTEM ANALYSIS
5
CHAPTER 2
SYSTEM ANALYSIS
The system study is to provide the description about the existing system,
and proposed system of the project.
2.1.1 DISADVANTAGES
➢ AI algorithms are not infallible and may produce errors or
inaccuracies, especially when interpreting complex legal documents or
statutes. Relying solely on AI for legal advice without human oversight
could lead to incorrect conclusions or recommendations.
➢ While some features of Practo are free to use, certain services
such as online consultations or booking appointments with premium
healthcare providers may incur fees. This could pose a barrier to access for
individuals with limited financial resources.
● Appointment Booking System: This app will facilitate the booking of appointments
with legal professionals, streamlining the process of scheduling consultations and
6
meetings.
● AI-Powered Legal Assistance: The app will leverage artificial intelligence (AI)
technology to provide users with legal guidance, document analysis, and case
research, enhancing efficiency and accuracy in legal decision-making via chatbots.
● Feedback and Rating System: It will incorporate a feedback and rating system,
enabling users to provide feedback on their experiences with legal professionals,
promoting transparency and accountability.
● Chat and video conferencing: It will allow users to search for doctors based on
specialty, location, availability, and patient reviews, facilitating easy booking of
appointments. consult with doctors remotely via video calls or chat, providing
convenient access to medical advice and treatment.
● Vocational Training Resources: The app will provide educational resources and
training materials on various legal topics, empowering users with knowledge and
skills to navigate the legal system effectively.
2.2.1 ADVANTAGES
• Comprehensive Healthcare and Legal Assistance: App provides a one-stop solution
for users to access both legal and medical assistance within a single platform. This
integration allows users to address both legal and health-related concerns efficiently
and effectively, saving time and effort.
• Stay informed : Keep up-to-date with legal news,changes, and notable case studies via
personalized notifications.
7
CHAPTER 3
SYSTEM REQUIREMENTS
8
CHAPTER 3
SYSTEM REQUIREMENTS
INTRODUCTION
The system requirements for implementing application for prisoners rehabilitation depend
on the specific use case and the technology used. Here are some general system
requirements to consider when implementing application:
• Hardware: It should be accessible on various devices such as smartphones, tablets,
and computers to ensure compatibility with different user preferences and
technological capabilities.
• Software: It should be compatible with populoperating systems such as iOS, Android,
and Windows to reach a wide user base. A robust database management system
should be used to store and manage user data securely.
• Network Requirements: Sufficient bandwidth is necessary to support video calls,
document uploads/downloads, and other data-intensive activities without latency or
interruptions.
• User Interface Requirements: The platform should feature an intuitive and user-
friendly interface with easy navigation, clear layouts, and intuitive controls to enhance
user experience and accessibility.It should support multiple languages to cater to
diverse user populations, providing language options for user interfaces, content, and
communication.
9
3.2 SOFTWARE REQUIREMENTS
Software Description is a technical specification of requirements of software
products. The following are the softwares we are using in our project:
✓ Android Studio
✓ Android Emulator
✓ Flutter SDK
✓ Dart SDK
4. Code Editing and Refactoring: The IDE offers powerful code editing capabilities,
including syntax highlighting, code completion, and intelligent code analysis. Developers
can easily refactor code, rename variables, and extract methods to improve code quality and
maintainability.
5. Performance Profiling Tools: Android Studio offers performance profiling tools to
analyze app performance, identify bottlenecks, and optimize CPU, memory, and network
usage. Developers can diagnose performance issues, measure app startup time, and improve
app responsiveness.
11
✓ Accessibility features
✓ Real-time communication
✓ Document management
✓ Feedback and rating system
The Dart SDK's support for asynchronous programming and reactive patterns empowers
developers to build responsive and scalable applications capable of handling complex
user interactions.Dart's native support for internationalization and localization simplifies
the process of creating multilingual applications, making it easier to reach a global
audience.The Dart SDK's seamless interoperability with JavaScript enables developers to
leverage existing JavaScript libraries and frameworks, expanding the capabilities of their
applications
Dart's hot reload feature, available in development environments like Flutter, enables
developers to instantly see changes to their code reflected in the application, speeding up
the iteration process and enhancing productivity.
Dart's strong ecosystem of development tools, including code analyzers, linters, and
formatters, ensures consistent code quality and adherence to best practices. The Dart
SDK's support for code splitting and tree shaking allows developers to optimize the size
of their applications, reducing load times and improving performance.
Dart's support for isolates enables developers to write concurrent and parallel code,
leveraging multi-core processors to improve application performance.
Dart's support for dependency injection and inversion of control patterns simplifies
application architecture and promotes code modularity and testability.
13
CHAPTER 4
SYSTEM DESIGN
14
CHAPTER 4
SYSTEM DESIGN
15
4.2 UML DIAGRAM
Use Cases are used to describe the visible interactions that the system will
have with users and external systems. They are used to describe how a user would
perform their role using the system. In our project, the user can register as either
lawyer,doctor,consultant or under trial prisoners.User entity interacts with the
system and performs desired operations.
16
4.2.2 ACTIVITY DIAGRAM
Activity diagram is defined as a UML diagram that focuses on the executionand flow of the
behavior of a system instead of implementation. It is also called object-oriented flowchart.
The user opens the application on their device. The users can book appointments for video
conferencing .They can chat with them and get their queries resolved.Users can make use of
AI assisted chatbots for asking legal aid queries.
17
4.2.3 SEQUENCE DIAGRAM
18
CHAPTER 5
SYSTEM IMPLEMENTATION
1
CHAPTER 5
SYSTEM IMPLEMENTATION
1. Book appointments
4. Rehabilitation services
✓ Upon registration, users create their profiles, providing necessary details such as name,
contact information, and role (e.g., undertrial prisoner, lawyer, doctor, consultant).
✓ Next, Users can select the type of appointment they require (legal consultation, medical
check-up, rehabilitation session) from the available options.
✓ Users choose a convenient date and time for their appointment from the available slots
displayed by the system. Administrators have access to a dashboard where they can
manage appointment slots, view booking details, and resolve scheduling conflicts.
✓ After the appointment, users have the option to provide feedback on their experience,
helping to improve the system's services..
20
chat or video conferencing interface provided by the system.
✓ Consultation Session: Users and professionals engage in a real-time chat or video
conversation, discussing the relevant legal or medical matters.
✓ Feedback Collection: Users and professionals have the option to provide feedback
on the consultation session, helping to improve the quality of service.
AI Chatbot Interaction: Users initiate a chat session with the AI-powered legal
assistant by selecting the "Legal Assistance" option from the menu.
Intelligent Questioning: The AI chatbot engages users in conversation, using natural
language processing (NLP) algorithms to understand user queries and provide relevant
responses.
Language Support: The AI chatbot supports multilingual capabilities, allowing users to
interact in their preferred language for improved accessibility.
This module offers a range of services including vocational training, counseling, and
community support programs. Users can access resources and participate in skill-building
workshops tailored to their interests and needs, promoting personal growth and
development.
21
CHAPTER 6
TESTING
22
CHAPTER 6
TESTING
Unit testing focuses verification efforts on the smallest unit of software design in
the module. This is also known as module testing. The module of the system is tested
separately. First the user module is tested by choosing the input option and giving model
of the specific user credentials as input and the system receives it successfully. Next each
model of the user details is mapped to its and it is tested. After mapping, the specific user
details is projected successfully .
23
nsultant)
System testing is a type of software testing that aims to test the entire software application
as a whole, rather than individual components or modules. In the case of this cross platform
application, system testing would involve testing the entire application to ensure that it
meets the requirements and specifications, and that it is free of any bugs or issues that could
impact the user experience. System testing for cross platform application would typically
involve testing the following areas:
➢ Functionality testing
➢ Performance testing
➢ Usability testing
➢ Compatibility testing
➢ Security testing
25
CHAPTER 7
RESULTS AND DISCUSSION
26
CHAPTER 7
RESULTS AND DISCUSSION
7.1 RESULTS
7.2 DISCUSSION
The app presents a significant opportunity for addressing systemic challenges within
the justice system and improving the welfare of undertrial prisoners. By leveraging
technology to facilitate access to legal aid, medical consultations, and rehabilitation
services, the app has the potential to streamline processes, enhance communication,
and empower individuals who are navigating complex legal proceedings.
Overall , the app can best serve the needs of undertrial prisoners, promote fairness and
equity in the justice system, and contribute to their successful rehabilitation and
reintegration into society.
27
CHAPTER 8
CONCLUSION AND FUTURE ENHANCEMENT
28
CHAPTER 8
CONCLUSION AND FUTURE ENHANCEMENT
8.1 CONCLUSION
29
ANNEXURE
30
ANNEXURE
APPENDIX I
SOURCE CODE
Main.dart
// ignore_for_file: deprecated_member_use
import 'dart:convert';
import 'package:appcode3/VideoCall/managers/call_manager.dart';
import
'package:appcode3/VideoCall/managers/push_notifications_manager.dart';
import 'package:appcode3/VideoCall/utils/platform_utils.dart';
import 'package:appcode3/VideoCall/utils/pref_util.dart';
import 'package:appcode3/views/ChatListScreen.dart';
import 'package:appcode3/views/DLC/loginAsDoctor.dart';
import 'package:appcode3/views/HomeScreen.dart';
import 'package:appcode3/views/AboutScreen.dart';
import 'package:appcode3/views/MoreScreen.dart';
import 'package:appcode3/views/SplashScreen.dart';
import 'package:appcode3/views/UserPastAppointments.dart';
import
'package:connectycube_flutter_call_kit/connectycube_flutter_call_kit.dart
';
import 'package:connectycube_sdk/connectycube_calls.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
//import 'package:flutter_native_admob/native_admob_controller.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:appcode3/CustomAds.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'VideoCall/utils/consts.dart';
import 'VideoCall/utils/configs.dart' as config;
import 'notificationHelper.dart';
31
import 'package:http/http.dart' as http;
import 'en.dart';
int LANGUAGE_TYPE = 0;
//0 ---> English
//1 ---> Arabic
32
String TOKENIZATION_KEY = "";
String RAZORPAY_KEY = "";
@override
State<App> createState() => _AppState();
}
initConnectycube() {
init(
33
config.APP_ID,
config.AUTH_KEY,
config.AUTH_SECRET,
onSessionRestore: () {
return SharedPrefs.getUser().then((savedUser) {
return createSession(savedUser);
});
},
);
}
@override
Widget build(BuildContext context) {
return GetMaterialApp(
home: Builder(builder: (context) {
CallManager.instance.init(context);
return SplashScreen();
}),
debugShowCheckedModeBanner: false,
theme: ThemeData(
timePickerTheme: TimePickerThemeData(
dayPeriodTextColor: Colors.cyanAccent.shade700,
//hourMinuteColor: Colors.cyanAccent.shade700,
helpTextStyle: GoogleFonts.poppins(),
),
hintColor: Colors.cyanAccent.shade700,
primaryColor: Colors.cyanAccent,
backgroundColor: Colors.white,
primaryColorDark: Colors.grey.shade700,
primaryColorLight: Colors.grey.shade200,
//highlightColor: Colors.amber.shade700,
textTheme: TextTheme(
headline1: GoogleFonts.poppins(),
headline2: GoogleFonts.poppins(),
headline3: GoogleFonts.poppins(),
headline4: GoogleFonts.poppins(),
headline5: GoogleFonts.poppins(),
headline6: GoogleFonts.poppins(),
subtitle1: GoogleFonts.poppins(),
subtitle2: GoogleFonts.poppins(),
caption: GoogleFonts.poppins(
fontSize: 10,
),
34
bodyText1:
GoogleFonts.poppins(fontSize: 13, fontWeight:
FontWeight.w500),
bodyText2:
GoogleFonts.poppins(fontSize: 13, fontWeight:
FontWeight.w300),
button: GoogleFonts.poppins(),
),
),
localizationsDelegates: [
// ... app-specific localization delegate[s] here
// GlobalMaterialLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''),
// English, no country code
const Locale('he', ''),
// Hebrew, no country code
const Locale('ar', ''),
// Hebrew, no country code
const Locale.fromSubtags(languageCode: 'zh'),
// Chinese *See Advanced Locales below*
// ... other locales the app supports
],
);
}
}
35
];
int index = 0;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: screens[index],
bottomNavigationBar: Container(
decoration: BoxDecoration(
color: Colors.grey.shade200,
//borderRadius: BorderRadius.only(topLeft: Radius.circular(15),
topRight: Radius.circular(15)),
),
child: ClipRRect(
borderRadius: BorderRadius.only(
topRight: Radius.circular(15), topLeft: Radius.circular(15)),
child: BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: .asset(
index == 0
? "assets/homeScreens/home_active.png"
: "assets/homeScreens/home_unactive.png",
height: 25,
width: 25,
),
label: HOME,
),
BottomNavigationBarItem(
icon: .asset(
index == 1
? "assets/homeScreens/appointment_active.png"
: "assets/homeScreens/appointment_unactive.png",
height: 25,
width: 25,
fit: BoxFit.cover,
),
36
label: APPOINTMENT,
),
// Remove the Doctor Login BottomNavigationBarItem
BottomNavigationBarItem(
icon: .asset(
index == 2
? "assets/homeScreens/rehab_active.png"
: "assets/homeScreens/rehab.png",
height: 35,
width: 35,
),
label: KNOWLEDGE,
),
BottomNavigationBarItem(
icon: .asset(
index == 3
? "assets/homeScreens/chat fill.png"
: "assets/homeScreens/chat unfill.png",
height: 25,
width: 25,
),
label: RECENT_CHATS,
),
BottomNavigationBarItem(
icon: .asset(
index == 4
? "assets/homeScreens/more_active.png"
: "assets/homeScreens/more_unactive.png",
height: 25,
width: 25,
fit: BoxFit.cover,
),
label: MORE,
),
],
selectedLabelStyle: GoogleFonts.poppins(
color: Colors.black,
fontSize: 8,
),
type: BottomNavigationBarType.fixed,
unselectedLabelStyle: GoogleFonts.poppins(
color: Colors.black,
fontSize: 7,
37
),
unselectedItemColor: Colors.grey.shade500,
selectedItemColor: Colors.black,
onTap: (i) {
setState(() {
index = i;
});
},
currentIndex: index,
),
),
),
);
}
}
'${event.data['notificationType']}:${event.data['ccId']}:${event.data['myi
d']}:${event.data['myUserName']}';
if (event.data['signal_type'] == 'endCall') {
// Eraser.clearAllAppNotifications();
ConnectycubeFlutterCallKit.reportCallEnded(
sessionId: event.data['session_id']);
ConnectycubeFlutterCallKit.setOnLockScreenVisibility(isVisible:
false);
}
if (payloadData.split(":")[0].toString() == '1') {
vtmpOppId = int.parse(event.data['$PARAM_CALL_OPPONENTS']);
CallEvent callEvent = CallEvent(
sessionId: event.data['$PARAM_SESSION_ID'],
callType: int.parse(event.data['$PARAM_CALL_TYPE']),
callerId: int.parse(event.data['$PARAM_CALLER_ID']),
callerName: event.data['$PARAM_CALLER_NAME'],
38
opponentsIds: {tmpOppId},
userInfo: {'token': '${event.data['mytoken']}'});
ConnectycubeFlutterCallKit.showCallNotification(callEvent);
} else if (payloadData.split(":")[0].toString() == '3') {
notificationHelper.showNotification(
title: 'Call Rejected',
body: event.notification!.body,
// payload:
"${message.data['ccId']}:${message.data['myid']}:${message.data['myUs
erName']}:",
payload: payloadData,
id: "124",
// context2: context
);
try {
print('success on reject call ');
CallManager.instance.reject(event.data['sessionId']);
} catch (e) {
print('error on reject call $e');
}
}
// else {
// notificationHelper.showNotification(
// title: event.notification!.title,
// body: event.notification!.body,
// // payload:
"${message.data['ccId']}:${message.sdata['myid']}:${message.data['myU
serName']}:",
// payload: payloadData,
// id: "124",
// // context2: context
// );
// }
}
39
'Content-Type': 'application/json',
'Authorization':
'key=$serverToken',
},
body: jsonEncode(
<String, dynamic>{
'priority': 'high',
'notification': <String, dynamic>{
'android': <String, String>{},
'title': "Call Reject",
},
'data': <String, String>{
'notificationType': 3.toString(),
'sessionId': callEvent.sessionId,
},
'to': callEvent.userInfo!['token'],
},
),
)
.then((value) async {
print('send to ${callEvent.userInfo!['token']}');
print("\n\nMessage sent thround on reject: ${value.body}");
}).catchError((onError) {
print("\n\nMessage sent thround on reject catch error: ${onError}");
});
} catch (e) {
print('error on reject call $e');
}
print(
'[PushNotificationsManager][onCallRejectedWhenTerminated]
callEvent: $callEvent');
return sendPushAboutRejectFromKilledState({
PARAM_CALL_TYPE: callEvent.callType,
PARAM_SESSION_ID: callEvent.sessionId,
PARAM_CALLER_ID: callEvent.callerId,
PARAM_CALLER_NAME: callEvent.callerName,
PARAM_CALL_OPPONENTS: callEvent.opponentsIds.join(','),
}, callEvent.callerId);
}
40
await
SharedPreferences.getInstance().then((value) {
value.setString("callSessionCS",
callEvent.sessionId);
});
} catch (e) {
print('error Shared preg $e');
}
print(
'[PushNotificationsManager][onCallRejectedWhenTerminate
d]callEvent: $callEvent');
return Future.value()
41
APPENDIX 2
OUTPUT SCREENSHOTS
42
Splash screen Home screen
43
Edit Profile screen Book Appointment screen
44
Location Service Rehabilitation Section
45
Chatbot screen Speciality Lists
46
REFERENCES
47