FINAL REOPRT Template
FINAL REOPRT Template
FINAL REOPRT Template
i
ACKNOWLEDGEMENT
In the name of Allah, the most Gracious and the Most Merciful.
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
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.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
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
6.1. Limitation..............................................................................................................29
6.2. Conclusion.............................................................................................................29
6.3. Future Works.........................................................................................................29
References......................................................................................................................30
Appendix........................................................................................................................31
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
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
CHAPTER 2
2. Literature Review/Process Review
2.1. Introduction
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.5. ER Diagram
3.6.2. ROUTER
3
My SQL:
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.
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 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.
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).
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
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.
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.
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).
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.
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 # 2
9
TEST CASE # 3
10
CHAPTER NO 5
5. GUI of Android Application
5.1. Login Interface
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
There is always a chance of improvement, following are the aspects where the system
requires some time to be analyzed and modified
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 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';
//Handle Dependencies
$container = $app->getContainer();
try{
$db = $c['settings']['db'];
);
$db['username'], $db['password'],$options);
return $pdo;
14
C. Coding – Login File
D. Gantt chart
15