Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 30

Software Project Work Phase-I Report submitted for partial fulfillment of the

Requirements for the award of

Diploma in Computer Science and Engineering


BY THE BOARD OF TECHNICAL EXAMINATIONS, KARNATAKA

Submitted by:

[Student Name with Register Number]


……………………….
………………………..

Guide:
Sri. B.N. Nagaraja B.E. (CSE) M.I.S.T.E.
Lecturer/HOD
Department of Computer Science & Engineering
Siddaganga Polytechnic, Tumkur-3

Department of Computer Science & Engineering


Siddaganga Polytechnic
Batawadi, Tumkur-572 103

2021-2022
SIDDAGANGA POLYTECHNIC
Batawadi, Tumkur-572103
Department of Computer Science&Engineering

PROJECT WORK PHASE-I (For Vth Semester CSE)

Title of the Project:


Name: Register No:442CS
LOG SHEET
Initials of
Sl. Progress Evaluation
Date Task staff in
No. of Task (05 Marks)
charge
1. Synopsis/Objectives
Hardware /Software
2.
Requirements
3. Introduction
Data collection &
4.
Data Analysis
5. Data base Tables
E-R / Process
6.
Diagrams
Form /Front End
7.
Design/ Model
8. Report Generation

Internal Assessment (IA) Marks:

Sl. No. Particulars Max Marks Marks Scored

1 Log Activity 05
2 Synopsis 10
3 Presentation 10
Total 25
Signature of Guide Signature of HOD

Siddaganga Polytechnic
Tumkur-572103
(Recognized by the Board of Technical Examinations,
Govt. of Karnataka and approved by A.I.C.T.E. New Delhi.)

Department of Computer Science &Engineering

Certificate
This is to certify that the Project Work Phase-I of

Institute Messaging System


Has been carried out jointly by
…………
………...
…………
…………
In partial fulfillment of the requirements for the award of Diploma in
Computer Science and Engineering, by the Board of Technical
Examinations, Govt. of Karnataka during the academic year 2021-2022.
Guide:

Sri/Smt. ……………. B.E. (CSE)


Lecturer in Dept. of Computer Science & Engineering

Sri. B.N. Nagaraja B.E. (CSE) M.I.S.T.E.


Head of the Department
SYNOPSYS
An android based Virtual Keyboard application project to control pc keyboard functions
through an android mobile phone.

As we all know, keyboard is used for gaming purpose and available in various types in
today’s market like in the form of USB or Wi-Fi enables or Bluetooth enabled. But to
purchase these type of keyboard, you have to make extra payment. But with the help of
Android standard input method, we have successfully able to make our smart phone as
Keyboard. Now, using your android based phone, through the help of Wi-Fi or Bluetooth, it
will act as a gamepad and play your game from specific distance using your phone. Your
android phone will act as a gamepad and the controlling functions will be transmitted
through the Bluetooth technology.

The project idea presents the design and implementation of turning Android smart
phones into computer remote controllers, which allow users to wirelessly operate a
computer via Bluetooth connectivity. The application provides users with different keys
of laptop keyboard. In comparison to the existing systems, the proposed solution has an
advantage of being more user-friendly, provides a stable Bluetooth connection and has
minimum delay in performing remote control operations.

Project Associates
CONTENTS

Sl .No. Chapters Page No.s

1. About the Project 1

2. Hardware and Software Requirements

3. Introduction to Android/ASP.NET

4. Introduction to MYSQL/ SQL server

5. Introduction to Java

6. Data Collection Documents

7. Data Base Tables

8. ER -Diagram / Process Flow diagram

9. Form Designs

10. Project Model

11. Bibliography
CHAPTER- 1

About the Project


Introduction
As we all know, sometimes finding the right time-management tools can turn out to be a
real challenge, even when certain solutions can be right in front of us.
Android phone’s versatile touchscreen lets it effortlessly morph into a spacious trackpad
and a virtual keyboard for your Windows PC or laptop.

Personal computers are a backbone for our daily work and also provide recreational use as
per our interests. They have become an inseparable part of our quotidian life. This is also
applicable to the smart phones, which have transformed into multifunctional devices with
almost same features as computers have. Remote control of a desktop computer is a
convenient feature that could be performed by handheld devices.

The proposed application can ease the use of many applications giving the user the ability
to control them from any place in the room wirelessly. It is suitable for implementing
advanced interaction techniques. Furthermore the proposed application is a convenient
substitution for the costly wired joysticks. The customization of the joystick provides
flexibility and ease of access for the user controlling the desktop remotely.

You can wirelessly control your computer from your phone. Whether you want your phone
to act as a full-screen trackpad or simply need it to display media controls for quick access.
Once the app is installed on computer and Android phone, it takes seconds for you to
connect both devices since it automatically works over Bluetooth. The app on phone
connects to the server app on your PC, which allows it to send keyboard control-type input.

Existing System:
If we have to play PC enabled game or control your PC remotely, then we have to purchase
USB based gamepad or Bluetooth enabled gamepad. As far wireless system is fantastic but
the problem with USB is that, we cannot enjoy our game by sitting at particular location
that is far away from our PC. Again in Bluetooth enabled gamepad, if there is problem with
Bluetooth, your gamepad goes in vein. We have to do various manual settings and other
software installation to use this wireless technology over our system.
Proposed System
The proposed system enables the user to use their Android mobile as the keyboard for
Laptop or PC. This is very useful if one or more keys of the laptop is not working fine.
Replacing laptop keyboard will incur heavy cost in which case this will be very useful.
Also the touch screen of mobile gives a smooth touch for the user to navigate through the
keyboard giving user-friendly experience.
CHAPTER- 2

Hardware
And
Software
Requirements

Hardware Requirements

1. Smartphone with Android OS version 6.0 (Marshmallow) or higher


2. Minimum 512 MB of RAM
3. A processor with speeds above 1.2 GHz (any make)
4. 16 MB of storage for the app and extra for the data stored, the size of the app increases as
the number of entries are increased
5. Android API version 19
6. Permission to install applications over USB and installation from unknown sources from
‘Developer Options’

Software Requirements

Android Application Development is possible with a couple of software and development


kits to support the software and execution, they are as follows,
1. Android Studio: Android studio is the official Integrated Development
Environment (IDE) for designing, coding, debugging and executing applications for
Google’s Smartphone operating system, Android. It has all keywords inbuilt for
ease in back-end programming and also design statements, for ease in designing as
well. The version of Android Studio used to design the application is 1.4.1.to 3.1 as
we are working on studios 3.1.
2. Java Development Kit (JDK): Since Android applications require Java
programming for its backend programming; it needs a JAVA environment to
support its functions, executions and syntax.
3. Xml: The front-end design of the application involves xml statements for the
Relative layouts, Radio buttons, Radio Group, buttons, text boxes and text views.
CHAPTER- 3

Introduction to Android

The Android operating system is the largest installed base among various mobile platforms
across the globe. Hundreds of millions of mobile devices are powered by Android in more
than 190 countries of the world. It conquered around 75% of the global market share by the
end of 2020, and this trend is growing bigger every other day. The company named Open
Handset Alliance developed Android for the first time that is based on the modified version
of the Linux kernel and other open-source software. Google sponsored the project at initial
stages and in the year 2005, it acquired the whole company. In September 2008, the first
Android-powered device launched in the market. Android dominates the mobile OS
industry because of the long list of features it provides. It’s user-friendly, has huge
community support, provides a greater extent of customization, and a large number of
companies build Android-compatible smartphones. As a result, the market observes a sharp
increase in the demand for developing Android mobile applications, and with that
companies need smart developers with the right skill set. At first, the purpose of Android
was thought of as a mobile operating system. However, with the advancement of code
libraries and its popularity among developers of the divergent domain, Android becomes an
absolute set of software for all devices like tablets, wearables, set-top boxes, smart TVs,
notebooks, etc.

Features of Android
Android is a powerful open-source operating system that open-source provides immense
features and some of these are listed below.
 Android Open Source Project so we can customize the OS based on our requirements.
 Android supports different types of connectivity for GSM, CDMA, Wi-Fi, Bluetooth, etc. for
telephonic conversation or data transfer.
 Using wifi technology we can pair with other devices while playing games or using other
applications.
 It contains multiple APIs to support location-tracking services such as GPS.We can manage
all data storage related activities by using the file manager.
 It contains a wide range of media supports like AVI, MKV, FLV, MPEG4, etc. to play or
record a variety of audio/video.
 It also supports different image formats like JPEG, PNG, GIF, BMP, MP3, etc.
 It supports multimedia hardware control to perform playback or recording using a camera
and microphone.
 Android has an integrated open-source WebKit layout based web browser to support User
Interface like HTML5, CSS3.

 Android supports multi-tasking means we can run multiple applications at a time and can
switch in between them.
 It provides support for virtual reality or 2D/3D Graphics

Android Versions

Google launched the first version of the Android platform on Nov 5, 2007. Since then,
Google released a lot of android versions such as Apple Pie, Banana Bread, Cupcake,
Donut, Éclair, Froyo, Gingerbread, Jellybeans, Kitkat, Lollipop, marshmallow, Nougat,
Oreo, etc. with extra functionalities and new features
CHAPTER- 5
Introduction to Java

JAVA was developed by James Gosling at Sun Microsystems Inc


in the year 1991, later acquired by Oracle Corporation. It is a
simple programming language. Java makes writing, compiling,
and debugging programming easy. It helps to create reusable code
and modular programs.

Java is a class-based, object-oriented programming language and


is designed to have as few implementation dependencies as
possible. A general-purpose programming language made for
developers to write once run anywhere that is compiled Java code
can run on all platforms that support Java. Java applications are
compiled to byte code that can run on any Java Virtual Machine.
The syntax of Java is similar to c/c++.
Primary/Main Features of Java.

1. Platform Independent: Compiler converts source code to


bytecode and then the JVM executes the bytecode generated by the
compiler. This bytecode can run on any platform be it Windows,
Linux, macOS which means if we compile a program on
Windows, then we can run it on Linux and vice versa. Each
operating system has a different JVM, but the output produced by
all the OS is the same after the execution of bytecode. That is why
we call java a platform-independent language.

2. Object-Oriented Programming Language: Organizing the


program in the terms of collection of objects is a way of object-
oriented programming, each of which represents an instance of the
class

The four main concepts of Object-Oriented programming are


 Abstraction
 Encapsulation
 Inheritance
 Polymorphism

3. Simple: Java is one of the simple languages as it does not have


complex feature

4. Robust: Java language is robust that means reliable. It is


developed in such a way that it puts a lot of effort into checking
errors as early as possible, that is why the java compiler is able to
detect even these errors that are not easy to detect by another
programming language. The main features of java that make it
robust are garbage collection. Exception Handling, and memory
allocation.

5. Secure: In java, we don't have pointers, and so we cannot access


out-of-hound arrays ie it shows ArrayIndexOutOfBound Exception
if we try to do so. That's why several security flaws like stack
corruption or buffer overflow is impossible to exploit in Java

6. Distributed: We can create distributed applications using the


java programming language. Remote Method Invocation and
Enterprise Java Beans are used for creating distributed applications
in java. The java programs can be easily distributed on one or
more systems that are connected to each other through an internet
connection.

7. Multithreading: Java supports multithreading. It is a Java


feature that allows

concurrent execution of two or more parts of a program for


maximum utilization of

CPU.

8. Portable: As we know, java code written on one machine can


be run on another machine. The platform-independent feature of
java in which its platform-independent bytecode can be taken to
any platform for execution makes java portable.

9. High Performance: Java architecture is defined in such a way


that it reduces. overhead during the runtime and at some time java
uses Just In Time (JIT) compiler. where the compiler compiles
code on-demand basics where it only compiles those methods that
are called making applications to execute faster.

10. Dynamic flexibility: Java being completely object-oriented


gives us the flexibility to add classes, new methods to existing
classes and even creating new classes through sub-classes. Java
even supports functions written in other languages such as C, C++
which are referred to as native methods.

11. Sandbox Execution: Java programs run in a separate space


that allows user to execute their applications without affecting the
underlying system with help of a verifier. Bytecode verifier also
provides additional security as it's role is to check the code for any
violation access.

12. Write Once Run Anywhere: As discussed above java


application generates 'class' file which corresponds to our
applications(program) but contains code in binary format. It
provides ease 1 architecture-neutral ease as bytecode is not
dependent on any machine architecture. It is the primary reason
java is used in the enterprising IT industry globally worldwide.

CHAPTER- 6

Data Gathering Documents


As for the remote keyboard control, the keystrokes read from the inbuilt android
smartphone keyboard are sent asynchronously to the PC application which then uses the
native PC keyboard controller to handle the respective key functions. Smart Input also
supports the trivial remote mouse control using smartphone touchscreen. The entire packet
transmission operation (for both remote mouse and keyboard control) from the Android
smartphone to the PC is carried out over a secured channel so as to thwart man-in-the-
middle (MITM [1]) attacks.

It is trivial that we would be able to remotely control the mouse by fusing accelerometer
and gyroscope data in real-time [2]. It should be noted that, 2D projection of the 3D points
is sufficient for mouse control. But an application can take advantage of the 3D movement
data in order to provide more immersive experience than typical mouse to the user.
A typical example would be gaming and virtual reality applications. Currently gaming
controllers with inbuilt IMU (Inertial Measurement Unit [3]) and complicated hardware are
commercially available to perform the similar task but they are very expensive and are
often found to be miscalibrated. With our proposed system, a user can experience the same
using his/her smartphone only. Moreover users can use their android device as a full-
fledged multi-input device performing all the tasks of both mouse and keyboard. Setting up
our proposed system is meant to be easy and hassle free. A user only needs to connect the
PC and the smartphone to the same LAN. The proposed system takes advantage of the
Zeroconf (Zero Configuration Networking [4]) where a user does not need to manually
connect to a specified server. Moreover, knowledge of the IP address of the server (PC) is
not required in order to connect. The Android application is able to detect the available
servers (in this case PCs) running in the local network.

The two most popular applications in this domain are KDE Connect [9] and Monect [10].
Both of these applications provide a rich set of features like remote mouse and keyboard
control, speaker control, file transfer etc. However, KDE Connect is only limited to Linux
(PC) and Android (smartphone). Although Monect provides a mobile platform
independent application (Android, iOS, Windows), its PC side application is restricted to
Windows only. Providing end-to-end security is one of the most important aspects in this
domain. KDE Connect being open sourced, it can be verified that it provides end-to-end

security. However such verification is not possible for Monect since it is closed
source.

Currently Smart Input only supports remote mouse and keyboard control from Android
smartphones and enforces a strong end-to-end security. The PC side application of Smart
Input, however, is platform independent. The mouse control feature comprises of both 2D
and 3D mouse movements along with mouse buttons. The keyboard control feature
comprises of predictive text input, auto-correct text and also supports the full functionality
of a standard PC keyboard. KDE Connect does not provide any 3D mouse movement
feature, predictive text or auto-correct text. Although Monect supports 3D mouse
movement feature, it also does not support predictive and auto-correct text. The keyboard
features provided by both KDE Connect and Monect simply emulate the traditional PC
keyboard. As of now, no other related applications provide predictive text and auto-correct
text support. These two features are unique to Smart Input.
CHAPTER- 7

Data Base Tables


SQLite database built to store information about students, examiner, and questions. The
database was SQL database (it is a free website that offers space to upload database) Then
used xml and Java language to deal with information stored in database and connect it with
android studio,

SQLite designs the database. When admin enters the information, it will be stored in the

database as well as studentsmarks.

Database Design is worried with the detection of

. tables that used in the system, and the relationship between these tables and their attributes
has six tables as in figure (6)

Admin table: Contain admin id as a primary key, admin name, username and password.

Student table: Contain Student id as a primary key, student name, username, and password.

. Question table: Contain question id as a primary key, Examiner Id, question,

answer1, answer2, answer3, correct answer. Exam table: include exam id as a primary key,
examine rid, date. .

• Mark table: include mark id as a primary key, exam id, student id, mark
CHAPTER- 8

ER -Diagram
or
Process Flow Diagram
The proposed application relies on a smart device running Android OS (smart phone or
tablet) and a Windows-based PC and offers a virtual keyboard that send commands to the
desktop OS in real time. Most of the commercially available desktop controllers have fixed
keyboard layouts for operating the desktops which confines the user to the standardized
options which the companies avail.

However the proposed android application allows the users to customize their virtual
joystick according to their needs without placing any standard layout constraints on the
users. In a distributed environment this application serves best for multiplayer gaming. Java
is the programming language used on both the desktop and the mobile devices, thus giving
the opportunity for easier porting to other desktop operating systems. The server application
needs to be installed on the desktop or personal computer that is to be controlled or
operated. The client android application needs to be installed on the device that will control
the remote pc. The software application proposed in this work consists of two main parts -
client (Android application) and server (desktop application). They communicate with a
simple text-based protocol via Bluetooth.

A. Server Application
The server application software resides on the desktop PC. When the server is started it
awaits connection through Bluetooth. Java SE API is used to provide remote control
functionality. The architecture follows the standard practices - a business logic layer that
comprises of Bluetooth stack implementation, key conversion and remote control
commands presented to the user with a simple GUI.
Fig. 1. Server Architecture

B. Client Application
The client application is launched by the user on the Android device. To remotely control
the desired pc, the application searches Bluetooth instances. In terms of architecture –it has
a user interface that interacts with the business logic layer which covers a small set of
different modules.

Fig. 2. Client Architecture

C. Client- Server Interaction


During remote communication, the Android device sends Echo requests to find a
controllable computer. Once the desktop with the server receives the echo request, it sends
an echo reply. Thus the client and server interact via different control commands when
sending different keyboard events.
Fig 3 Client-Server Interaction

Flowchart

Flowchart of the Android application development for Virtual keyboard is as shown below:
Figure 4. Flowchart of the application
CHAPTER- 9

Form Designs
CHAPTER- 10

Project Model
CHAPTER- 11

Bibliography
[1] Mauro Conti, Nicola Dragoni, Viktor Lesyk, “A Survey of Man In The Middle
Attacks”, IEEE Communications Surveys & Tutorials, vol. 18, issue 3, pp. 2027-2051, 29
March 2016.
[2] Ubejd Shala, Angel Rodriguez, Fredrik Frisk, Kamilla Klonowska, “Indoor Positioning
using Sensor-fusion in Android Devices”, School of Health and Society, Department
Computer Science, Kristianstad University, Sweden, September 2011.
[3] D.Hazry, M.Sofian, A. Zul Azfar, “Study of Inertial Measurement Unit Sensor”,
Proceedings of the International Conference on Man-Machine Systems (ICoMMS), 11
October 2009, Batu Ferringhi, Penang, Malaysia.
[4] Se Gi Hong, Suman Srinivasan, Henning Schulzrinne, “Accelerating Service Discovery
in Ad-Hoc Zero Configuration Networking”, IEEE Global Telecommunications
Conference, November 2007.
[5] “Announcing the Secure Hash Standard”, Federal Information Processing
Standards Publication 180-2, National Institute of Standards and Technology (NIST),
August 1, 2002.
[6] Microsoft (n.d), Bluetooth RFCOMM-API. Retrieved October 15, 2016, from
https://msdn.microsoft.com/en-us/windows/uwp/ devices-sensors/send-or-receive-files-
with-rfcomm
[7] Intel Research. (n.d.). Bluecove - Java library for Bluetooth. Retrieved October 15,
2016, from https://code.google.com/ p/bluecove/; http://bluecove.org/
[8] Oracle (Sun Microsystems). (n.d.). JavaDoc - Robot. Retrieved October 15, 2016, from
http://docs.oracle.com/javase/6/docs/ api/java/awt/Robot.html
[9] KDE Connect. Available: https://community.kde.org/KDEConnect
[10] Monect. Available: http://www.monect.com/

You might also like