3 Technical Plan 1.1 Introduction This section will discuss the missing gap identified from the literature review on user identification method to assist users to communicate with another users or strangers without revealing their personal contact details. Furthermore, this section will include the use of Natural Language Processing (NLP) Technology in the mobile instant messaging application to ensure the safety of the users. In addition, the architecture design of the mobile application will also be presented here. 1.1.1 Functionality of the Proposed Solution For two users to message one another without sharing contact details or adding each other into their contact list, the Mobile Messaging Application should be able to achieve the following requirements: • • • 1.1.2 Allow users to identify and connect with other drivers or car owners using License Plate, and Allow users to message to other individual user in the application, and Prevent users to send lewd or inappropriate text messages to another user. Functionality: Communication between two users without The main intention of this application is to allow the user to communicate with the other users without revealing personal contact details and uses identification method such as car license plate to identify another user. Hence, this requires a database to store all the license plate registered by the user which enable other users to find and contact this user by entering the car license plate characters using the search bar in the MIM application. If the license plate characters entered by the user is not found in the database, then it will display an error message and it will not allow the user to compose any text messages. If the license plate details that is entered by the user is in the database, then the user will be directed to a chat User Interface (UI). The user can then type the content of the text message and send it to the user who can only be identified by the license plate characters. Furthermore, the receiver can only see either a nickname or the license plate details of the sender as this ensures that both users’ detail are protected and provide more privacy to users. When users are allowed to send text messages to other users without the need of knowing that person in real life, some users may take this benefit to send lewd, harassment or inappropriate text messages to other users and this may harm the user who receive these messages. To ensure the users in this MIM application does not receive any inappropriate messages, the MIM application will not deliver the message to another user if it detects any harassment or inappropriate content in the text messages. This feature uses Natural Language Processing (NLP) technology to perform text classification on the content of the text messages. This text classification process will automatically analyse and categorize the text messages into different groups according to the content of the message. The implementation of this technology can prevent the users from receiving inappropriate text messages which can retain the users as they feel safer using the application. While restraining the user to send inappropriate text it also allows the users to focus on the core purpose of this MIM application, which is to communicate with other users or strangers to discuss and resolve an incident or situation professionally. 1.1.3 System Requirements The system requirements section displays the functional and non-functional requirements of the Mobile Messaging Application to achieve the proposed features of the application. Functional Requirements a) The application should have a user registration function to allow user to register with their phone number. b) The application should have a user authentication (login) function that allow user to login with their phone number. c) The application should have a one to one message function. d) The application should have a push notification function to alert the user when there is an incoming message. e) The application should be able to prevent the user from sending lewd or inappropriate text messages. f) User should be able to send a message to another user via license plate number. g) User should be able to delete the entire message conversation with another user. h) User should be able to block another user. Non-Functional Requirements a) Accuracy: The application should be able to send the message accurately to the specific user. b) Availability: The application should be able to perform the license plate search and send a message when there is stable internet connection. 1.2 System Development Plan 1.2.1 System Flow of Information Use Case Diagram When the user launches the mobile application, a user must register and login to use the application. The account registration is essential for authentication and authorisation purposes. All user must register an account to store details such as, phone number, password, and vehicle license plate numbers in the application and all user must be prompted to register an account with their phone number. The user’s phone number will be used for login because phone number is a unique identifier of the user and it has been authenticated to ensure safety. Furthermore, account registration allows users to store the license plate detail and each user can only have a maximum of three license plate number tied to an account. However, the input of license plate number is optional as some user might not have a car, but they are still allowed to send a message to the car owner when they notice an incident. Once the user has successfully registered or logged in. The user can start messaging another user by performing a license plate number search. If the license plate number is found in the database, then the user will be able to message the specific user person using the license plate number. In contrast, if the license plate number searched by a user is not in the application’s server, then the application will display an error message and the user will not be directed to the chat UI page. Every time when there is a new connection between two users, the server will create a unique message ID for that specific connection. When the user sends a message, the message will be analysed in the background of the application. If the application recognizes any lewd or inappropriate text message, then the system will not send the message to the server, hence it will never reach the client application of the message receiver. Furthermore, it will alert the sender that the message is not sent or delivered to the receiver due to the existence of inappropriate content. In contrast, if the text message is clean, the message will be sent to the server and the server will deliver the message to the receiver’s client application. If the receiver does not have the application open, it will send a push notification to the receiver to alert the user on the incoming message. Once the user receives a message, both users can start messaging each other. In addition, the user can also delete the conversation with the stranger after the both parties have resolved the incident or the conversation is ended and the user may block another user and the blocked user are unable to send any message to the user even if they search the user using the license plate number. 1.3 System Models DFD or UML Diagram 1.4 System Development Plan 1.4.1 Development Methodology The entire development process will be split into 6 different steps and this ensures the development flow goes smoothly. A data flow diagram is shown in figure _. 1.Develop the interface of the mobile application 2. Develop the backend logic and architecture 3.Integrate Firebase server to the mobile application 6. Test the sentiment analysis tool 5. Develop the sentiment analysis tool 4. Test Messaging Function 1. Develop the User Interface (UI) It is necessary to develop the view layer of the MVC model first as it allows the developer to get a visualization on the overview of the mobile application after sketching out the UI /UX in the design phase. 2. Develop the back-end logic and architecture In this stage, it is important to develop the business logic of the application and then link it to the UI xml files. This stage is critical as it defines the basic functions of the application, for instance, the messaging logic, user authentication method, and add friend function. 3. Integrate server to the mobile application Next, to facilitate the message exchange between two users, a connection is required and to create a connection between two devices, a server is required. The most feasible method is to use cloud hosted server and integrate the relevant APIs and SDKs offered by them to create a connection between the two users. 4. Test Messaging function The messaging and chat function, user authentication and the add friend function will be tested at this stage, this is to ensure the core purpose of the application works before implementing the additional feature such as the sentiment analysis tool into the mobile application. 5. Develop the sentiment analysis tool At this stage, the datafiles that contain the positive words and negative words will be refined according to the use case of this project. Then, the development of the sentiment analysis code will be done in this stage. However, the development of the sentiment analysis tool will not be developed in the mobile application in the first place as this ensures the sentiment analysis feature does not affect the core function of the messaging app. 6. Test the Sentiment analysis tool The testing of the sentiment analysis tool will be done to check the functionality of the feature. After the test, the sentiment analysis tool will be integrated into the Android mobile application. SDLC The Software Development Life Cycle (SDLC) consists a detailed plan on building a software or application and the SDLC can be broken down into several stages to enable a better control over the application development process while ensuring the development of the project go as planned. In each stage of the SDLC has its own process and exit criteria that will be brought forward to the next phase. Furthermore, a detailed development methodology can ensure all the requirements and objective of the application are fulfilled. Analysis Requirement Specifications System Design Work Plan Development and Implementation Testing and Maintenance The chosen methodology for this project is the Waterfall development methodology due to various factors. The waterfall development methodology uses a sequential process approach on software development and all the tasks in the project are broken down into a sequence of tasks as shown in diagram __. The process starts with the analysis stage, followed by requirement specifications and system design stage and three of these processes are done in capstone 1. The development and implementation stage together with testing and maintenance stage will take place in capstone 2. All the deliverables at each stage will be used as a support for the next activity. One of the advantages of using waterfall model is that it ensures the project scope to stay static as the requirements of the application are specified before designing and developing the mobile application. This ensures quality end-result as the developer has analysed and understand the project requirements thoroughly prior to developing the application. The ability to commit to the initial requirement is important as it prevents the developer from adding additional features that are unrelated to the project scope and objective. In addition, the waterfall model is more appropriate in projects that has a fixed timeline as this ensures the developer to plan the work accordingly to hand in the end-product in time. 1.4.2 Programming Language Java As most of the native android application are developed with either Java or Kotlin, this android native application will be developed using Java. The reason of using Java over Kotlin is that it has more learning resources and support available than Kotlin as Java has a larger community on both Stack Overflow and GitHub [92]. Java will be used to define the basic business logic of the android native application. It is used to manage the flow of data from the UI to the back end (database, server) of the mobile application. The Java programming language will be used as the foundation of code in this application development as it can responds and control the events triggered when the user interacts with the UI. Extensible Mark-up Language (XML) Extensible Mark-up Language (XML) is a mark-up language used to describe the User Interface (UI) layout of the application. There are two main objects in developing the UI of the mobile application with XML, the ViewGroup object and View object. The ViewGroup object is a container that define the layout structure of the mobile application to contain other View objects. The View object are widgets to be put in the ViewGroup object, and some of the example of these widgets are Button, TextView and ProgressBar. Other than defining the UI layout, XML will also be used to link additional resource files such as icons, bitmaps, and strings of text to be displayed by default. 1.4.3 Tools and Techniques Wireframe Tool Figma is the chosen wireframe tool to design the User Interface (UI) and User Experience (UX) of the mobile messaging application. Figma is a cloud-based design tool that offers many functions and icons that is commonly used in designing the user interface of mobile application. Figma is chosen as it offers both UX wireframing and UI designing on the same platform. In addition, it is user friendly as it allows designer to drag and drop icons and frames to edit the design of the prototype. Operating System Platform The target audience of this project would be the Malaysian car owners or drivers. Hence, the mobile platform and its operating system needs to be decided. According to [77], as of September 2020, there are approximately 78.46% of smartphones in Malaysia that are running on Android and 20.4% smartphones are running on iOS. Therefore, it is decided that the development of the messaging application will be built on the Android Operating System as it has the largest operating system market share in Malaysia. Integrated Development Environment (IDE) The IDE used in this project is Android Studio because it is the official IDE for Android Native app development. Android Studio has plenty of features that can ease the development phase of this project. Firstly, it has a built-in Android emulator which can be used to test and run the mobile application. Secondly, Android Studio offers Lint tools to examine and find errors and bugs in the code and this tool can improve the performance and usability of the code. Nevertheless, it also offers the Gradle Build system that can automatically run the build process to compile resource files, source code and packages into Android Application Package (APK) to test and run the application. Server (Messaging Middleware) After analysing three different Cloud services, Firebase will be used as the back-end development platform due to multiple reasons. First, it offers more supports in terms of proper documentation, video and blog tutorials and it offers API and SDKs that can be easily implemented into a mobile application. In addition, it also offers a A/B testing feature, so the application can be tested on the Firebase platform before allowing the tester to evaluate the application. Furthermore, Firebase offers multiple features that can enhance the messaging experience for the application and it offers a range of Application Programming Interface (API), which enables the back end development process to be more efficient [64]. Other than that, Firebase also offers multiple features such as authentication feature, cloud messaging feature and a real-time database to store user information. The Firebase authentication offers Software Development Kit (SDK) and open-source UI that allow developer to easily implement an authentication system for end-users to authenticate and sign-in to the application [63]. Then, the Firebase Cloud Messaging features can handle all the queues and delivery of the upstream and downstream messages between the client and server application [61], [62]. Furthermore, the cloud messaging feature can also automatically handle and push notification to alert the user for any incoming message and this is a critical function in a messaging application[61]. Sentiment Analysis Tool The list of words approach will be used in the application. This sentiment analysis tool will be triggered every time when the user sends a text message, this sentiment analysis tool is used to prevents users from getting dirty and obscene text messages and keeping the core objective of this application on track. To achieve a faster message transfer, the list of words approach will be converted into Java and implement it in the Android Native application. Vader Sentiment is not chosen even though it can accurately analyse social media sentiment because it can only be implemented between the Firebase server and this will increase the time taken for the message to be transfer from one client application to another client application. Furthermore, the purpose of the sentiment analysis tool is to prevent users from sending harassment text and let the user to communicate on the car incidents and the list-of-words approach allow the developer to revise the word lists in order to make it suit this use case. On the other hand, Vader Sentiment uses a more general lexicons for social media sentiment and the accuracy may not be applied in this use case. Testing Tool It is essential to conduct software testing and proof of concept testing to evaluate the functionality and the idea of the mobile application. To evaluate the functionality of the mobile application, a Functional Testing will be conducted to validate the mobile application against the functional requirement listed above. In addition, to proof the idea of this mobile application in helping the society to solve the communication problem between strangers on and off the road using license plate number, a usability testing together with a proof of concept survey will be conducted on the target audience to evaluate the usability and helpfulness of the application in real life situations. 1.5 Specification of User Interface This section discusses the User Interface (UI) and the flow of the Mobile Instant Messaging (MIM) application. UI Frame Description Main UI This is the main page of the MIM application, and it will only be displayed when the user did not login to the application or just installed the application. The application logo and a brief description will be presented. Furthermore, there are two buttons, a sign-up button and a login button for the user to take further action on the application. Sign Up UI Once the user selects “Sign Up”, they will be directed to the sign-up page. The sign-up page is for users who do not have an account. The user is required to enter a valid phone number, username and set the password for authorization purposes. In addition, the user can enter their license plate number, but the input of license plate number is optional. Sign In UI Once the user selects “Sign In”, they will be directed to the sign in page. The sign-in page is for the users who have an account. Therefore, they can login to the account immediately with the phone number and password set in the registration stage. Home UI The application will redirect the user to the home page of the application once the registration or login process is successful. In the home page, a navigation bar will be displayed at the bottom of the screen to allow easy navigation in the mobile app. The main function of the home page is to allow user to perform a license plate number search and if the search is successful it will bring the user to the chat UI, else it will display toast stating the license plate is not in the database. Chat list UI The Chat page UI will display all the conversation the user had with other users. The rubbish bin icon on the top menu bar is used to delete the conversations easily. Furthermore, the title of each conversation varies according to different circumstances. The user who has a license plate number linked to the account will display their license plate number. On the contrary, the user who does not have a license plate linked to the account it will show a random code as the title of the user. On the right side of each conversation, there is a timestamp of the latest message sent and the blue dot is used to notify the user for any unread messages. Chat UI Once the user selects one of the conversations from the chat list, the user will be able to see the conversation history with that specific user displayed on a simple chat UI. The title of the user will be displayed on the top of the UI together with a back button to allow easier navigation. The black arrow button is used to send a message after the user has entered the text in the text input box located at the bottom of the chat UI. Chat UI (Sentiment Analysis) The sentiment analysis tool will be triggered once the user tap the send button. If the sentiment analysis tool recognizes any lewd or inappropriate words in the message, it will display a toast warning the sender on the content. Profile UI The user can view their profile details such as phone number and the existing license plate number. Furthermore, the user can also edit or add additional license plate number in their profile page.