Chapter 1
Introduction
1 Introduction
We are going to develop a secured android app. “File sharing” is designed to share files between two same devices through Wi-Fi. Wi-Fi sharing is equipped with encryption. By using this encryption their personnel information will remain unreadable until the information is not decrypted by using the similar passphrase.
This app will also help the user to cut, delete and rename the file name and move these
files inside the app from one folder to another.
1.1 Existing System
There are some app like ‘share it’ which share files over the Wi-Fi but they do not share files over the Bluetooth. These app also don’t have capabilities of secure file sharing between devices over Bluetooth. The smart phones provide traditional folder locks and patterns to make the folders secured.
But these locks and patterns are not useful to protect all files.
1.1.1 Examples:
i. Share it
Share it app help the user to transfer files between two devices over the Wi-Fi. It also help the user to change your files location from one folder to another also help the user to view the history of file transfer.
1.1.2 Issues with Existing Systems:
(1) Most of the applications do not provide Wi-Fi sharing and Bluetooth sharing option in a single app, therefore users have to use more than one application to fulfil their requirements.
(2) The existing systems lack the feature of Bluetooth and secured file sharing over Wi-Fi.
(3) Most of the existing systems are either paid applications or only allow limited features on their free account or shows a lot of advertisement in the app.
1.2 Problem Statement
Most of the times, we need to transfer files from one device to another. There are some traditional methods to share files but that did not support all types of formats. We develop this app which share most of the files.
Basic aim of the app is to share files between two devices through Wi-Fi. It also has a feature of encryption and decryption for better protection.
Bluetooth is also supported which help when Wi-Fi is not available.
1.3 Solution:
File sharing is an application which is easy to use and have all features. It is an android mobile application; therefore, it becomes easy to use everywhere. One can easily share files between two device over the Wi-Fi as well as Bluetooth. I have used ‘AES’ semantic algorithm for encryption and decryption.
1.4 Advantages of Proposed System
1. Users will be able to share files through Wi-Fi.
2. Users will also be able to share files through Bluetooth.
3. Users will be able to rename, delete or cut files.
4. Users will be able to share secure files over Wi-Fi.
Chapter 2
Requirements and System Analysis
2 Requirements and System Analysis
Requirements Analysis is also called requirements engineering, a process in which “what is to be done” is elicited, modeled and communicated. The descriptions of the services and constraints are the requirements for the system the process of finding, analyzing, documenting and checking these services and constraints. The first use of the term ‘requirements engineering’ was probably in 1979 in a TRW technical report but did not come into general use until the 1990s with the publication of an IEEE Computer Society tutorial and the establishment of a conference series on requirements engineering. In the waterfall model, requirements engineering is presented as the first phase of the development process.
In the following pages we have inserted the Use Case Model for the system and detailed use case descriptions for the system.
2.1 ¬Use Case Model
Use case model gives us information in a visual form about the system and its environment. In a quick glance it can give us the idea about how the user is interacting with the system. This generally include a UML use case diagram to show the name of use case and actors, and their relationships.
2.1.1 Use Case Diagram
Fig. 2.1 – Use Case Diagram
2.2 Use Case Brief Detail
2.2.1 Sign Up
Use Case ID: UC-001
Use Case Name: Sign Up
Description: This use case describes the process by which users can Sign up for the first time
Actors: User
2.2.2 Log In
Use Case ID: UC-002
Use Case Name: Log In
Description: This use case describes the process by which users can login
Actors: User
2.2.3 Profile
Use Case ID: UC-003
Use Case Name: Profile
Description: This use case describes how user can view his profile and also his history.
Actors: User
2.2.4 Select File
Use Case ID: UC-004
Use Case Name: Select File
Description: This use case describes the process by which user can select a file on which he want to apply any operation
Actors: User
2.2.5 Encrypt
Use Case ID: UC-005
Use Case Name: Encrypt
Description: This use case describes the process by which user can encrypt the file
Actors: User
2.2.6 Share
Use Case ID: UC-006
Use Case Name: Share
Description: This use case describes the process by which user can share file over Wi-Fi and Bluetooth.
Actors: User
2.2.7 Decrypt
Use Case ID: UC-007
Use Case Name: Decrypt
Description: This use case describes how user can Decrypt file.
Actors: User
2.2.8 Log out
Use Case ID: UC-008
Use Case Name: Log out
Description: This use case describes how user can log out from the application
Actors: User
2.3 Use Case Description Detail
2.3.1 Sign Up
Use Case ID: UC-001
Use Case Name: Sign Up
Description: This use case describes the process by which users can Sign up for the first time
Actors: User
Pre-condition: 1. Working internet connection
2. Facebook/Gmail account or an Email account
3. App is fully loaded
Post-condition: User will be redirected to Main screen.
Includes: App, SQLite
Flow: 1. User will click on sign up
2. Signup Activity will appear.
3. User will enter credentials
4. After verification user is logged in
Exception: N/A
Frequency of use: Once per session
2.3.2 Log In
Use Case ID: UC-002
Use Case Name: Log In
Description: This use case describes the process by which users can login
Actors: User
Pre-condition: 1. Working internet connection
2. An Email account
Post-condition: User will be redirected to main screen
Includes: App, SQLite
Flow: 1. User will click on login
2. User will enter credentials
3. App will verify the user from database
4. After verification user is logged in
Exception: N/A
Frequency of use: Once per session
2.3.3 Profile
Use Case ID: UC-003
Use Case Name: Profile
Description: This use case describes the process by which user can change in his profile
Actors: User
Pre-condition: 1. Working internet connection
2. User is logged in
3. App is fully loaded
Post-condition: Profile will be changed as per user’s need
Includes: App, SQLite
Flow: 1. User will go to profile page
2. Web App will display the profile of the user
3. User can make selected changes
Exception: 1. Internet stops working.
2. SQLite not working
Frequency of use: Numerous
2.3.4 Select File
Use Case ID: UC-004
Use Case Name: Select File
Description: This use case describes the process by which user can select the file on which he want to do any operation.
Actors: User
Pre-condition: 1. Working internet connection
2. App is fully loaded
Post-condition: User will see all files on the app.
Includes: App, SQLite
Flow: 1. User will go to home page
2. User will select the file on which he want to do any operation.
Exception: SQLite is not working
Frequency of use: Numerous
2.3.5 Encrypt
Use Case ID: UC-005
Use Case Name: Encrypt
Description: This use case describes the process by which user can encrypt the file which he wanted.
Actors: User
Pre-condition: 1. Working internet connection
2. App is fully loaded
Post-condition: File is encrypted successfully
Includes: App, SQLite
Flow: 1. User will go to home screen
2. User will select the file
3. User will encrypt the selected file
Exception: SQLite is not working. Wi-Fi signal lost
Frequency of use: Numerous
2.3.6 Share
Use Case ID: UC-006
Use Case Name: Share
Description: This use case describes the process by which user can share the files over the Wi-Fi and Bluetooth
Actors: User
Pre-condition: Working internet connection
Web App is fully loaded
Post-condition: Share file is successful
Includes: App, SQLite
Flow: 1. User will go to homepage
2. User will select the file
3. User will select to share
4. User will select to share through Wi-Fi or Bluetooth
Exception: SQLite is not working. Wi-Fi signal lost
Frequency of use: Numerous
2.3.7 Decrypt
Use Case ID: UC-007
Use Case Name: Decrypt
Description: This use case describes how user can decrypt the file
Actors: User
Pre-condition: 1. Working internet connection
2. User is logged in
3. App is fully loaded
Post-condition: File is decrypted successfully
Includes: App, SQLite
Flow: 1. User will go to homepage
2. User will select the file
3. User will decrypt the file
Exception: SQLite is not working
Frequency of use: Numerous
2.3.8 Log out
Use Case ID: UC-008
Use Case Name: Log out
Description: This use case describes how user can logout from the app.
Actors: User
Pre-condition: 1. User is logged in
2. App is fully loaded
Post-condition: user will be log out
Includes: App, SQLite
Flow: Log out
Frequency of use: Numerous
2.4 Domain Model
A domain model contains domain classes and domain relationships. Domain classes represent the different types of objects in the domain, and domain relationships represent information about a relationship between two domain classes.
Fig. 2.4 – Domain Model Diagram
2.5 Activity Diagram
Fig. 2.5 – Main Activity Diagram
2.5.1 Wi-Fi Sharing
Fig. 2.5.1 – Wi-Fi Sharing Activity
2.6 Class Diagram
Fig. 2.6 – Class Diagram
2.7 ERD Diagram
Fig. 2.7 – ERD Diagram
Chapter 3
System Design
3 System Design
We have designed our system in a way that it consists of user and application. The following diagram shows different components of the system:
Figure 3.1 – System Design
3.1 Sequence Diagrams
A sequence diagram is a kind of interaction diagram that shows how processes operate with one other and in what order. It is a construct of a message Sequence Chart. A sequence diagram shows object interaction arrange in time sequence.
3.1.1 Sign Up
This sequence diagram describes the process by which user can sign up to the system.
Fig 3.2 – Sign Up
3.1.2 Log In
This sequence diagram describes how the user can log in to the system.
Fig. 3.3 Log In
3.1.3 Encryption
This sequence diagram describes how the user can encrypt the file.
Fig. 3.4 – Encryption
3.1.4 Decrypt
This sequence diagram describes how the user can decrypt the file.
Fig. 3.5 – Decrypt
3.1.5 Wi-Fi Sharing
This sequence diagram describes how the user can share the file.
Fig. 3.6 –Wi-Fi Sharing
Chapter 4
System Implementation
4 System Implementation
System implementation is the process of defining how the information system should be built ensuring that the information system is operational and used and meets quality standard. Implementation is the process of realizing the design as a program.
We have implemented our application using new technologies that have been using by millions of user. Our application is android based and we have used Android studio tool and in the backend we have used java. We have used SQLite as our central database.
Now with the technologies implemented the system design diagram that we have shown in chapter 3 looks like this:
Fig. 4.1 – System Design
4.1 Details of Implementation Tools and Technologies
The details of the languages, tools and technologies we used are following:
4.1.1 Java
Java is a programming language. Java differs from most other programming languages in that programs written in Java can generally be run on many different types of computers, not only the type of computer it was written on. This is because Java is run in what is known as a runtime environment- a separate program that interprets the Java code. Runtime environments are specific to the machine being used. Any computer (or other device, such as a cell phone) that has a Java runtime environment can run Java code, assuming that the runtime environment supports the version of the code the program was written in.
Java was invented by Sun Microsystems with the intention of creating a “Write once, run anywhere” programming language. The first release, Java 1.0, was not quite as interoperable across platforms as expected, which led to the joke “Write once, debug everywhere. Also, as the code had to be interpreted, programs written in Java ran slowly compared to other languages. The current version addresses these issues and adds new functionality, making Java one of the most popular and supported programming languages on personal computers, cell phones, PDA’s and other small devices. Recently, Java was released under the GPL open source license.
Another technology with a similar name, JavaScript, is not related in any way with Java. JavaScript is often confused with Java as JavaScript is a programming language designed to manipulate Web Pages, and Java applets are commonly embedded in web pages. Also, the similar names cause understandable confusion. Furthermore, both JavaScript and Java are innovations of Sun Microsystems.
4.1.2 Android Studio
Android is a software platform and operating system for mobile devices, based on the Linux kernel, and developed by Google and later the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google developed Java libraries. Android is available as open source. Android is a freely downloadable open source software stack for mobile devices that includes an operating system, middleware and key applications based on Linux and Java. Google purchased the developer of Android in 2005, and Android was unveiled in 2007. Google released the Android code as open-source under the Apache License. Android has numerous developers writing applications (apps) all over the world. First of all the developers write their script in Java, and then download the apps from the third party sites or online stores.
4.2 Deployment Diagram
Fig. 4.2 – Deployment Diagram
Chapter 5
System Testing
5 System Testing
5.1 Software Quality Assurance
A set of activities designed to evaluate the process by which products are developed or manufactured.
5.2 Software Quality Control
Software Quality Control is the function that checks whether the software project follows its standards processes, and procedures, and that the project produces the desired internal and external (deliverable) products i.e. output.
5.2.1 Black Box Testing
Black box testing is also known as specification-based testing. Black box testing refers to test activities using specification-based testing methods and criteria to discover program errors based on program requirements and product specifications.
The major testing focuses:
(1) Specification-based function errors
(2) Specification-based component/system behavior errors
(3) Specification-based performance errors
(4) User-oriented usage errors
(5) Black box interface errors
5.3 Test Case
Following are the Test Cases for our project (File Sharing):
5.3.1 Sign Up
TC1: Sign Up
Test Case ID: UC-001
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to successfully sign up
Operation procedure: 1. Go to home Screen of File Sharing
2. Click on the sign up
3. Clicking on signup will open a modal which allows options to sign up from Facebook, Gmail or Email address.
4. Using Auth0, the user is authenticated and the Mob App takes credentials from Auth0 and saves them in DB
5. Mob App redirects to home screen.
Pre-conditions: Internet is required and App must be running
Post-conditions: The credentials are verified and stored in DB
Required test scripts: No
5.3.2 Login
TC2: Log In
Test Case ID: UC-002
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to successfully log in
Operation procedure: 1. Go to main screen of file sharing
2. Click on the login
3. Clicking on login will open a modal which allows options to login from Facebook, Gmail or Email address.
4. The user is verified and his credentials is sent to the Mob App.
5. Mob App redirects to home Screen.
Pre-conditions: Internet is required, User must have created an account on App
Post-conditions: Mob App redirects to main screen.
Required test scripts: No
5.3.3 Profile
TC3: Profile
Test Case ID: UC-003
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to view and make changes to Profile
Operation procedure: 1. User goes to Profile page
2. User views the profile.
3. User can edit his description.
4. User can delete his account.
Pre-conditions: Internet is required, Mob App must be fully loaded and user must be logged in
Post-conditions: Description changed or User deleted and app loads back to homepage.
Required test scripts: No
5.3.4 Select file
TC4: Select file
Test Case ID: UC-004
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to successfully select new file
Operation procedure: 1. User goes to main screen
2. Mob App will display all files.
3. User can select any file.
Pre-conditions: Internet is required and Mob App must be running
Post-conditions: A File will be selected.
Required test scripts: No
5.3.5 Encrypt
TC5: Encrypt
Test Case ID: UC-005
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to allow user to encrypt a file.
Operation procedure: 1. User goes to main screen
2. User select the file.
3. User encrypt the file.
Pre-conditions: Internet is required, Mob App must be fully loaded and user must be logged in
Post-conditions: File will be encrypted
Required test scripts: No
5.3.6 Share
TC6: Share
Test Case ID: UC-006
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to Share a file
Operation procedure: 1. User goes to main screen
2. User select a file to share.
3. User then use to sharing option.
Pre-conditions: Internet is required, Mob App must be fully loaded and user must be logged in
Post-conditions: The file will be share.
Required test scripts: No
5.3.7 Decrypt
TC7: Decrypt
Test Case ID: UC-007
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to decrypt a file
Operation procedure: 4. User goes to main screen
5. User select the file.
6. User decrypt the file.
Pre-conditions: Internet is required, Mob App must be fully loaded and user must be logged in
Post-conditions: File will be decrypted
Required test scripts: No
5.3.8 Log out
TC8: logout
Test Case ID: UC-008
Wrote By: Muhammad Haseeb Arshad
Test Type: Black box testing
Product Name: File Sharing
Test Item: Mob App
Documented Date: 15/10/2017
Test Suite: 1a
Version Number: 1.0
Test case description: This test case is designed to log out from the app.
Operation procedure: 1. User goes to main screen
2. User select the log out
Pre-conditions: Internet is required, App must be fully loaded and user must be logged in
Post-conditions: User will be log out
Required test scripts: No
Chapter 6
Conclusion
6 Conclusion
In this project we have developed a system in the form of android application that provides user easy way to share secure files. Users can sign up to our application using Google, Facebook or an Email Address. User can search different files. User can share these files either through Wi-Fi or Bluetooth. The package is proved to be a powerful in fulfilling the basic requirements of a user who is interested to share secure file. We have used modern technologies to make the app concurrent, highly responsive and easy to manage.
6.1 Project Screenshots
Below are some of the screenshot of our project:
6.1.1 Login
Figure 6.1.1 Login
6.1.2 Home
Figure 6.1.2 Home screen
6.1.3 Select File
Figure 6.1.3 This screen tells to Select the file
6.1.4 List View
Figure 6.1.4 This is list view
6.1.5 Grid view
Figure 6.1.5 This screen shows Grrid view
6.1.6 Wi-Fi share
Figure 6.1.6 This screen shows wifi starting
6.2 Future Work
The work I did in this project presents many opportunities for future work. The following is a list of ideas that can improve upon this project and provide a guideline in this heading.
6.2.1 Video Calling
A conference call functionality can be added between users where user can share his video live with other users.
6.2.2 Screen sharing
This feature would allow users to share screens with other users in the group. One user can remotely view the screen of other users in the group.