Professional Documents
Culture Documents
1
PROJECT PROPOSAL
2
2. Project proposal
Executive Summary
The project entitled “MOBILE APPLICATION FOR CODEC” is being developed for
all users. This mobile application is provided to send a Short Message Service (SMS) to their
friends, neighbors, relatives and so on. This application will be vary from other Messaging
Service applications. If the user needs to send a message to their friend the user should type the
message in text area. It will convert as encrypted format. When the other user got the message
he/she should open the message it will be decrypted and it will asks password to decrypt the
message. So the user should give a password after that it will be decrypted and shows the
original message.
INTRODUCTION
About Yourself
As an academic requirement this project is done for graduate students as a final year
project. This project is mainly done for the all users those who are using mobile phones. The
project entitles “MOBILE APPLICATION FOR CODEC” is open source application which
can be used by any graduate for their communication.
Problem Statement:
The “MOBILE APPLICATION FOR CODEC” faces some problem on sending
messages to others. If the user sends a SMS to anyone it can read by all. So there is no defense to
send the message to others. The secret messages will passed out. So the users feel uncomfortable
and not secured to send their message.
3
Proposed Solution
I develop an official mobile application for the above problem. The solution for this
problem is to create a new mobile application on “MOBILE APPLICATION FOR CODEC”.
It will provide a more protection to the messaging system. It will encrypt the message and the
other user should enter the password and it will decrypt the message automatically if the
password is correct.
TECHNOLOGY REQUIREMENTS
Hardware:
RAM : 512 MB
Storage : 20 GB
Output : Monitor
Software:
1. Project Duration: The duration of the academic project is three months from the
date of agreement.
2. Project Initiation: Student upon receiving approval from the Project Guide shall
start the requirement study and analysis and complete it as per the project
schedule agreed upon by the Department.
3. Development: 100% of Project development will be done in the college lab.
4
VISION DOCUMENT
5
3. VISION DOCUMENT
Purpose:
The main purpose of this document is to define requirements of “MOBILE APPLICATION
FOR CODEC”. The supplementary specification lists the requirements that are not readily
specification and case model together to capture a complete set requirement of all information.
Scope:
Use case and other supplementary documents can be prepared by having this vision
document.
Positioning:
Product Statement:
Who Public.
6
SYSTEM
REQUIREMENTS
7
4.1 SYSTEM STUDY
Introduction
This system study enables us to identify the purpose of input that has to be given, the
Entry criteria and Exit criteria.
System Overview
The project is called “MOBILE APPLICATION FOR CODEC”. This application
contains the following information, the events which are held by the Messaging Services.
List of module
1. Text
Description of Modules:
The System is mainly created to share the information to their friends by using this
CODEC mobile application. The public can type their messages in text area. It will encrypt the
message automatically and it will asks the password when the user open the message. After
entering the correct password it will decrypt and open the message automatically. This system is
created by using ECLIPSE.
Module 1: Text
Purpose
The main purpose of the “TEXT” module is used to do the messaging system. Users can
send and receive the messages to each other. It will encode and decode the message
automatically, if the password is correct.
Entry Criteria
If the users need to send their messages with secure format they should click on CODEC
application.
8
Input
Public users should download the application and open it. And they should type secured
message on text area.
Output
Exit Criteria
The user can click on exit button or back button.
9
4.2 Use case Specification
Message:
Sending
Message
Send
User 1
Receive Receive
Message
User 2
1. Description:
This page is used to send the message to other users.
10
2. Flow of events:
2.1Basic Flow
The application displays the text page.
They should enter the text message in text area.
It will encrypt the message automatically.
Then the user should send the message.
Receiver can open the message now.
It will ask password to the receiver.
Receiver should enter the password which was stored in database.
Click OK button. If the password is correct it will show the message else it
displays error message to the receiver.
11
ANALYSIS AND DESIGN
12
5.1 Architecture Diagram
13
5.2 Activity Diagram
Home
CODEC
Encrypted Message
Decryption
Process
Password
Original Message
14
5.3 Sequence Diagram
Encrypt text
Ringer
attention text
Device Ringing
15
5.4 Class Diagram
CODEC
SMS:smsManager Text:String
My Receiver()
Decrypt()
On Receive: void()
Sender()
Onsend:Void() Send()
16
5.5 Database Design
Table Name
createpassword
Description
Table Name
updatepassword
Description
17
5.6 Entity Relationship Diagram
Phone no
name Text
Encrypt Send
Users
text message
Password
Message
Decrypt
Receive
message
Receiver
18
5.7 Data Flow Diagram
Level 0:
Sender CODEC
Level 1:
Level 2:
Decrypt the
Receiver Password message
19
Level 3:
20
TEST CASE
DESIGN
21
Test Case - 1
Module: Text
Revision History
Sl. Version
Date Modification details
No No
1. C1.1 16-3-18
Scenario: If all the fields are entered correctly then click on Encrypt button.
Description: Check whether “Text” is working or not.
# Procedure Test Test Data Expected Result Status
Condition
1 1.Open the Text module Check whether To 9442391338 Record should get
from application Text field saved to the data
2.Click on mobile accepts Text base
number Values Message Hello Friend
Encrypted
3.Click on "Encrypt" message Jaud6@#%klm
Enter
Password 1992
4.Encrypted message Your
5.Click on Decrypt Message
6.Enter Password is Hello Friend
22
Test Case - 2
Module: Text
Revision History
Sl. Version
Date Modification details
No No
1. C1.1 16-3-18
Scenario: If all the fields are entered correctly then click on Encrypt button.
Description: Check whether “Text” is working or not.
# Procedure Test Test Data Expected Result Status
Condition
1 1.Open the Text module Check whether To 9442391338 Record should get
from application Text field saved to the data
2.Click on mobile accepts Text Have a nice base
number Values Message day
Encrypted
3.Click on "Encrypt" message Iuye r iuhf kjf
Enter new
Password Vasudevan
Confirm
new
password Vasudevan
Password
created Successfully
Enter
password Vasudevan
4.Encrypted message Your
5.Click on Decrypt Message Have a nice
6.Enter Password is day
23
USER INTERFACE
DESIGN
24
Send Message:
Encrypted Text:
25
Enter Password:
26
Update Password:
Received Message:
27
IMPLEMENTATION
28
8.1 Sample code
Message:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MessageActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="26dp"
android:layout_marginTop="32dp"
android:text="To"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="49dp"
android:text="Encrypt" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/textView1"
android:layout_marginLeft="17dp"
android:layout_toRightOf="@+id/textView1"
android:ems="10" />
29
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/editText2"
android:layout_alignParentLeft="true"
android:text="Enter text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_marginTop="31dp"
android:layout_toRightOf="@+id/textView2"
android:ems="10"
android:inputType="textEmailAddress" >
<requestFocus />
</EditText>
</RelativeLayout>
Enter Password:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".EnterpwdActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="34dp"
android:layout_marginTop="101dp"
android:text="Enter Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
30
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/editText1"
android:layout_marginTop="42dp"
android:text="OK" />
</RelativeLayout>
Encrypted text:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".EntextActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="54dp"
android:layout_marginTop="75dp"
android:text="Your encrypted text is"
android:textAppearance="?android:attr/textAppearanceMedium" />
31
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="62dp"
android:ems="10"
android:inputType="textMultiLine" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="Decrypt" />
</RelativeLayout>
Create Password:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".CreatepwdActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="65dp"
32
android:text="Enter your new password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="47dp"
android:ems="10" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_centerVertical="true"
android:text="Confirm your new password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="24dp"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText2"
android:layout_below="@+id/editText2"
android:layout_marginLeft="60dp"
android:layout_marginTop="30dp"
android:text="Create" />
</RelativeLayout>
33
Update Password:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".UpdatepwdActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="42dp"
android:layout_marginTop="50dp"
android:text="Old password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="30dp"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_below="@+id/editText1"
android:layout_marginTop="32dp"
android:text="New Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
34
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="20dp"
android:ems="10" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText2"
android:layout_below="@+id/editText2"
android:layout_marginTop="22dp"
android:text="Confirm your new password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView3"
android:layout_below="@+id/textView3"
android:layout_marginTop="33dp"
android:ems="10" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_alignParentBottom="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="46dp"
android:text="Update" />
</RelativeLayout>
35
Receive:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ReceiveActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="42dp"
android:layout_marginTop="50dp"
android:text="Your message is"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="68dp"
android:ems="10"
android:inputType="textMultiLine" />
</RelativeLayout>
36
CONCLUSION
37
9. Conclusion
38
FUTURE
ENHANCEMENT
39
10. Future Enhancement
40
BIBLIOGRAPHY
41
11. Bibliography
1. https://www.developer.com/ws/android/encrypting-with-android-cryptography-api.html
2. https://github.com/facebook/conceal/issues/49
3. https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwjSnr_4
6uDYAhVIbVAKHQDkC8oQFggoMAE&url=https%3A%2F%2Fwww.androidtutorialpoint.com%2Fb
asics%2Fsend-sms-programmatically-android
tutorial%2F&usg=AOvVaw1Q38oQldJwEC3v55IAZyd5
4. http://www.tutorialsface.com/2015/08/building-your-own-android-chat-messenger-app-
similar-to-whatsapp-using-xmpp-smack-4-1-api-from-scratch-part-2/
5. https://www.appsrox.com/android/tutorials/instachat/
6. https://stackoverflow.com/questions/40123319/easy-way-to-encrypt-decrypt-string-in-android
7. https://gist.github.com/FrankWu100/6737797
8. http://www.androprogrammer.com/2016/04/data-encryption-and-decryption-in.html
9. http://www.codejava.net/coding/file-encryption-and-decryption-simple-example
10. https://www.ibm.com/developerworks/websphere/tutorials/i-mqrad1/i-mqrad1.html
42