You are on page 1of 23

ABSTRACT

Students and teachers do faces issues to access data from outside


department; most likely faculty notes are needed and can only be
accessible within their department. If teachers want to update some data
from outside the department i.e. from home, so it is not possible for them
to access the faculty notes. So they use other cloud applications every
teacher chooses their own service, which is difficult for students to
bookmark or remember every teacher’s links of shared folders.

With the advancement of micro systems technologies reason behind this to


unite the students and teachers on the single platform on which both
teachers and students can access their files and folders from anywhere so
that the teachers can upload their files and folders and their class related
lectures, books and other stuff and the students can download their course
related content uploaded by their respected teachers.

i
ACKNOWLEDGEMENT

In the name of Allah, the most Gracious and the Most Merciful.

Peace and blessing of Allah be upon Prophet Muhammad ‫ﷺ‬

First, praise of Allah, for giving us this opportunity, the strength and the
patience to complete our FYP finally, after the challenges and difficulties.
We would like to thank our supervisor _____________________________
for his guidance, motivation and most his significant contribution in this
project, expert _______________________ and
_______________________ for giving us the opportunity to work on this
project. We would also like to thanks our parents for financial and moral
support and our friends who have helped and motivated us throughout.
May Allah reward them all abundantly. Ameen

ii
DEDICATION

This report is dedicated to PAF-KIET University, our Teacher, our


Supervisor, our Parents, our fellow colleagues and the hard-working
students of PAF-KIET, with a hope that they will succeed in every aspect
of their Academic Career and this project may help them in any aspect of
their life.

iii
TABLE OF CONTENTS

ABSTRACT.....................................................................................................................i

ACKNOWLEDGEMENT.............................................................................................ii

DEDICATION...............................................................................................................iii

TABLE OF CONTENTS..............................................................................................iv

LIST OF FIGUERS.......................................................................................................vi

LIST OF TABLES........................................................................................................vii

CHAPTER 1....................................................................................................................1

1. Introduction...........................................................................................................1

1.1. Motivations..............................................................................................................1
1.2. Problem Statement..................................................................................................1
1.3. Objectives and Contributions..................................................................................1
1.4. Project Scope...........................................................................................................2
1.5. Organization of the Report......................................................................................2
CHAPTER 2....................................................................................................................4

2. Literature Review/Process Review........................................................................4

2.1. Introduction.............................................................................................................4
2.2. Literature Review....................................................................................................4
2.3. Functional and Non Functional Requirements........................................................7
2.4. Project Significance.................................................................................................8
2.5. Software Platform....................................................................................................8
2.6. Scalability................................................................................................................8
2.7. Services...................................................................................................................8
CHAPTER 3..................................................................................................................10

3. Projects diagrams.................................................................................................10

3.1. Use Case Diagrams...............................................................................................10


3.2. Activity diagram (diagram correction)..................................................................10
3.3. System Block Diagram..........................................................................................11

iv
3.4. System Architecture..............................................................................................11
3.5. ER Diagram [9].....................................................................................................12
3.6. Inside Project.........................................................................................................13
3.7. Used Technologies................................................................................................15
Chapter NO 4................................................................................................................19

4. Project Planning...................................................................................................19

4.1. Project Timeline Summary....................................................................................19


4.2. Project Timeline Details........................................................................................19
4.3. Black-box Testing.................................................................................................23
4.4. Test Cases..............................................................................................................25
CHAPTER NO 5...........................................................................................................27

5. GUI of Android Application................................................................................27

5.1. Login Interface......................................................................................................27


5.2. Sign up Interface...................................................................................................27
5.3. Student Panel.........................................................................................................28
5.4. Teacher Panel........................................................................................................28
CHAPTER 6..................................................................................................................29

6. Conclusion and Future Work...............................................................................29

6.1. Limitation..............................................................................................................29
6.2. Conclusion.............................................................................................................29
6.3. Future Works.........................................................................................................29
References......................................................................................................................30

Appendix........................................................................................................................31

A. Coding – Server Side Coding..........................................................................31

B. Coding – JASON Package...............................................................................39

C. Coding – Login File.........................................................................................40

D. Gantt chart........................................................................................................49

v
LIST OF FIGUERS
S.NO Figure No. Figure Name Page No.
1 Figure 1.4 Project Scope 5
2 Figure 2.2 Cloud Computing Model 7
3 Figure 3.1 Use Case Diagram - Android Application 13

4 Figure 3.2 Activity Diagram 14

5 Figure 3.3 System Block Diagram 14

6 Figure 3.4 System Architecture 15


7 Figure 3.5 ER Diagram 16

8 Figure 3.6.1 Raspberry pi Model B 18

9 Figure 3.6.2 WIFI Router 18


10 Figure 3.6.3 Android Phone 19

11 Figure 3.7.1 LAMP Server 19

12 Figure 4.1 Project Timeline 23


13 Figure 4.1 Gantt Chart Summary 23
14 Figure 4.2 Gantt Chart Details 26
15 Figure 5.1 Login Interface 33

16 Figure 5.2 Sign Up Interface 33


17 Figure 5.3 Student Panel 34

18 Figure 5.4 Teacher Panel 34

LIST OF TABLES
S.NO TABLE NO. TABLE NAME PAGE NO.

vi
1 Table No. 2.2 Comparison Chart of Different Devices 10

vii
CHAPTER 1
1. Introduction
.

1.1. Motivations

1.2. Problem Statement

1.3. Objectives and Contributions

1.4. Project Scope

1.5. Organization of the Report

1
CHAPTER 2
2. Literature Review/Process Review
2.1. Introduction

2.2. Literature Review

2.3. Functional and Non Functional Requirements

2.3.1. Functional Requirements

2.3.2. Non-Functional Requirements

2.4. Project Significance

2.5. Software Platform

2.6. Scalability

2.7. Services

2
CHAPTER 3
3. Projects diagrams
Based on the above literature review and project scope here are some diagrams, which
illustrates that what will be our project or the system is capable to reach the desired results.

3.1. Use Case Diagrams

3.2. Activity diagram (diagram correction)

3.3. System Block Diagram

3.4. System Architecture

3.5. ER Diagram

3.5.1. ERD Table Dictionary

3.6. Inside Project

3.6.1. Raspberry PI as a server

3.6.2. ROUTER

3.6.3. ANDROID SMART PHONE

3.7. Used Technologies

3.7.1. LAMP SERVER:

PHP (PERSONAL HOME PAGE):

PHP is a general-purpose scripting language that is especially suited to server-side web


development, in which case PHP generally runs on a web server. Any PHP code in a
requested file is executed by the PHP runtime, usually to create dynamic web page content or
dynamic images used on websites or elsewhere.

3
My SQL:

MySQL is an open source relational database management system. Information in a MySQL


database is stored in the form of related tables. MySQL databases are typically used for web
application development (often-accessed using PHP). A MySQL database can be accessed
(queried) directly using; C, C++, Eiffel, Java, Perl, PHP and Python computer languages.
There is also third party support for connection in a Windows environment. MySQL
databases are queried using a subset of the standard Structured Query Language (SQL)
commands.

3.7.2. REACT NATIVE JS

React Native lets you build mobile apps using only JavaScript. It uses the same design as
React, letting you compose a rich mobile UI from declarative components. With React
Native, you do not build a “mobile web app”, an “HTML5 app”, or a “hybrid app”. You build
a real mobile app that is indistinguishable from an app built using Objective-C or Java. React
Native uses the same fundamental UI building blocks as regular iOS and Android apps. You
just put those building blocks together using JavaScript and React.

React Native combines smoothly with components written in Objective-C, Java, or Swift. It's
simple to drop down to native code if you need to optimize a few aspects of your application.
It is also easy to build part of your app in React Native, and part of your app using native
code directly - that is how the Facebook app works.

3.7.3. JWT (JASON WEB TOKEN)

JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-
contained way for securely transmitting information between parties as a JSON object. This
information can be verified and trusted because it is digitally signed. JWTs can be signed
using a secret (with the HMAC algorithm) or a public/private key pair using RSA.

This is the most common scenario for using JWT. Once the user is logged in, each
subsequent request will include the JWT, allowing the user to access routes, services, and
resources that are permitted with that token. Single Sign On is a feature that widely uses JWT
nowadays, because of its small overhead and its ability to be easily used across different
domains.

4
3.7.4. SLIM FRAMEWORK:

Slim is a PHP micro framework that helps you quickly write simple yet powerful web
applications and APIs. Slim provides a fast and powerful router that maps route callbacks to
specific HTTP request methods and URIs. It supports parameters and pattern matching. Build
your application with concentric middleware to tweak the HTTP request and response objects
around your Slim App. Slim supports any PSR-7 HTTP message implementation so you may
inspect and manipulate HTTP message method, status, URI, headers, cookies, and body. Slim
supports dependency injection so you have complete control of your external tools. Use any
Container-Interop container.

3.7.5. JAVASCRIPT

JavaScript is a programming language commonly used in web development. It was originally


developed by Netscape as a means to add dynamic and interactive elements to websites.
While JavaScript is influenced by Java, the syntax is more similar to C and is based on
ECMAScript, a scripting language developed by Sun Microsystems.

JavaScript is a client-side scripting language, which means the source code is processed by
the client's web browser rather than on the web server. This means JavaScript functions can
run after a webpage has loaded without communicating with the server. For example, a
JavaScript function may check a web form before it is submitted to make sure all the required
fields have been filled out. The JavaScript code can produce an error message before any
information is actually transmitted to the server.

3.7.6. NAVICAT by PREMIUMSOFT CYBER TECH Ltd.

Navicat is a series of graphical database management and development software produced by


Premium Soft CyberTech Ltd. for MySQL, Maria DB, Oracle, SQLite, PostgreSQL and
Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple
database connections for local and remote databases. Its design is made to meet the needs of a
variety of audiences, from database administrators and programmers to various
businesses/companies that serve clients and share information with partners.

3.7.7. VISUAL STUDIO CODE

5
Visual Studio Code is a lightweight but powerful source code editor, which runs on your
desktop and is available for Windows, MacOS and Linux. It comes with built-in support for
JavaScript, Typescript and Node.js and has a rich ecosystem of extensions for other
languages (such as C++, C#, Python, PHP, Go) and runtimes (such as .NET and Unity).

3.7.8. ANDROID STUDIO

Visual Studio Code is a lightweight but powerful source code editor, which runs on your
desktop and is available for Windows, MacOS and Linux. It comes with built-in support for
JavaScript, Typescript and Node.js and has a rich ecosystem of extensions for other
languages (such as C++, C#, Python, PHP, Go) and runtimes (such as .NET and Unity).

6
CHAPTER NO 4
4. Project Planning
4.1. Project Timeline Summary

4.2. Project Timeline Details

4.3. Black-box Testing

Black Box Testing, also known as Behavioral Testing, is a software testing method in which
the internal structure/ design/ implementation of the item being tested is not known to the
tester. These tests can be functional or non-functional, though usually functional. Testing,
either functional or non-functional, without reference to the internal structure of the
component or system.

This technique is the procedure to derive and/or select test cases based on an analysis of the
specification, either functional or non-functional, of a component or system without reference
to its internal structure.

Black Box testing method is applicable to the following levels of software testing:

 Integration Testing
 System Testing
 Acceptance Testing

The higher the level, and hence the bigger and more complex the box, the more black box
testing method comes into use.

4.3.1. System Testing

System Testing is a level of the software testing where a complete and integrated software is
tested. The purpose of this test is to evaluate the system’s compliance with the specified
requirements. The process of testing an integrated system to verify that it meets specified
requirements. System testing is the testing of a complete and fully integrated software
product. Usually software is only one element of a larger computer based system. Ultimately,
software is interfaced with other software/hardware systems. System testing is actually a
series of different tests whose sole purpose is to exercise the full computer based
system. System testing involves testing the fully integrated applications including external

7
peripherals in order to check how components interact with one another and with the system
as a whole. This is also called End-to-End testing scenario. Verify thorough testing of every
input in the application to check for desired outputs. Testing of the user's experience with the
application. . 

That is a very basic description of what is involved in system testing. You need to build
detailed test cases and test suites that test each aspect of the application as seen from the
outside without looking at the actual source code.

4.3.2. Integration Testing

Integration Testing is a level of software testing where individual units are combined and
tested as a group. The purpose of this level of testing is to expose faults in the interaction
between integrated units. Test drivers and test stubs are used to assist in Integration Testing.
Testing performed to expose defects in the interfaces and in the interactions between
integrated components or systems. Component integration testing, system integration testing.
Component integration testing performed to expose defects in the interfaces and interaction
between integrated components. System integration testing the integration of systems and
packages; testing interfaces to external organizations (e.g. Electronic Data Interchange,
Internet).

4.3.3. Unit Testing

Unit testing is a level of software testing where individual units/ components of a software
are tested. The purpose is to validate that each unit of the software performs as designed. Unit
is the smallest testable part of software. It usually has one or a few inputs and usually a single
output. In procedural programming, a unit may be an individual program, function,
procedure, etc. In object-oriented programming, the smallest unit is a method, which may
belong to a base/ super class, abstract class or derived/ child class. Unit testing frameworks,
drivers, stubs, and mock/ fake objects are used to assist in unit testing. Unit Testing is
normally performed by software developers themselves or their peers. In rare cases,
independent software testers may also perform it.

8
4.3.4. User Acceptance Testing

User acceptance testing (UAT) is the last phase of the software testing process. During UAT,
actual software users test the software to make sure it can handle required tasks in real-world
scenarios, according to specifications. UAT is one of the final and critical software project
procedures that must occur before newly developed software is rolled out to the market. UAT
is also known as beta testing, application testing or end user testing. UAT directly involves
the intended users of the software. UAT can be implemented by making software available
for a free beta trial on the internet or through an in-house testing team comprised of actual
software users.

4.4. Test Cases

A test case is a set of conditions or variables under which a tester will determine whether a
system under test satisfies requirements or works correctly. The process of developing test
cases can also help find problems in the requirements or design of an application.

TEST CASE # 1

Test Case Title:


Preconditions
Actions
Expected Results
Tested By
Result Pass/Fail

TEST CASE # 2

Test Case Title:


Preconditions
Actions
Expected Results
Tested By
Result Pass/Fail

9
TEST CASE # 3

Test Case Title:


Preconditions
Actions
Expected Results
Tested By
Result Pass/Fail
TEST CASE # 4

Test Case Title:


Preconditions
Actions
Expected Results
Tested By
Result Pass/Fail

10
CHAPTER NO 5
5. GUI of Android Application
5.1. Login Interface

5.2. Sign up Interface

5.3. Student Panel

5.4. Teacher Panel

11
CHAPTER 6
6. Conclusion and Future Work
6.1. Limitation

 Raspberry pi is not sync able with other pi devices but it can be done as a future work.
 This project is deployed locally not globally.
 Teacher are not able to upload file on specific file format.
 If data exceeds more than 64 GB on pi there will be no more data insertion on raspberry
pi.

6.2. Conclusion
In conclusion, we have developed an android based system which allow the users (i.e.
students or teachers) to get on a single platform which is android based through where
teacher can download there data remotely from anywhere and for the students to download
there important data at their native places. We have used raspberry pi as our cloud server and
data center as it covers multiple advantageous criteria price, power consumption
performance, scalability and complex data processing

6.3. Future Works

There is always a chance of improvement, following are the aspects where the system
requires some time to be analyzed and modified

 Improve quality of design.


 Improve quality if database management systems.
 Enhance code structure.
 Enhance application functionality.

12
REFERENCES
[1] https://www.nist.gov/programs-projects/cloud-computing
[2] http://www.zdnet.com/search/
[3] V.L.Divya: ‘Mobile Application Platform on Cloud Server’, International Conference
on Advancements in Information Technology, 2011, 20
[4] ‘Global Journal of Computer Science and Technology’
[5] V.L.DIVYA: ‘MOBILE APPLICATION WITH CLOUD COMPUTING ’,
International Journal of Scientific and Research Publications, 2012, 2, (4)

[6] https://en.wikipedia.org/wiki/Use_case_diagram
[7] https://en.wikipedia.org/wiki/Activity_diagram
[8] https://www.smartdraw.com/entity-relationship-diagram/
[9] drcurzon, "Raspberry Pi Web Server," [Online]. Available:
http://www.instructables.com/id/Raspberry-Pi-Web-Server/.
[10] "Raspberry PI Hadoop Cluster," 23 october 2014. [Online]. Available:
http://www.widriksson.com/raspberry-pi-hadoop-cluster/.
[11] A. Allan, "Build a Compact 4 Node Raspberry Pi Cluster," 26 august 2015. [Online].
Available: http://makezine.com/projects/build-a-compact-4-node-raspberry-pi-cluster/.
[12] L. Orsini, "How To Host A Website With Raspberry Pi," 27 june 2014. [Online].
Available: http://readwrite.com/2014/06/27/raspberry-pi-web-server-website-hosting/.
[13] D. R. W. S. J. J. S. D. P. P. Fung Po Tso, "The Glasgow Raspberry Pi Cloud: A Scale
Model for Cloud Computing Infrastructures".
[14] M. A. S. Waqas Anwaar, "Energy Efficient Computing: A Comparison of Raspberry
PI with Modern Devices," International Journal of Computer and Information Technology ,
vol. 04, no. 02, 2015.
[15] D. A. J. S. Prince Sharma, "A Green-Cloud Network Scenario: Towards Energy
Efficient Cloud Computing," vol. 02, no. 10, 2012.
[16] M. v. d. Vegt, "Raspberry Pi 2 as an Feasible Alternative for Cloud Based Parallel
Computing Solutions".
[17] [Online]. Available: https://jwt.io/.
[18] "Native navigation," 13 march 2017. [Online]. Available:
http://www.reactnative.com/.

13
APPENDIX
A. Coding – Server Side Coding
<?php

use \Psr\Http\Message\ServerRequestInterface as Request;

use \Psr\Http\Message\ResponseInterface as Response;

use Firebase\JWT\JWT;

use Slim\Middleware\TokenAuthentication;

//https://www.programmableweb.com/news/how-to-create-rest-api-using-slim-
framework/how-to/2017/02/28?page=2

require 'vendor/autoload.php';

include 'config.php';

require './functions.php';

$app = new \Slim\App(["settings" => $config]);

//Handle Dependencies

$container = $app->getContainer();

$container['db'] = function ($c) {

try{

$db = $c['settings']['db'];

$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

);

$pdo = new PDO("mysql:host=" . $db['servername'] . ";dbname=" .


$db['dbname'],

$db['username'], $db['password'],$options);

return $pdo;

B. Coding – JASON Package


{
"name": "AwesomeProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js
start",
"test": "jest"

14
C. Coding – Login File
D. Gantt chart

15

You might also like