You are on page 1of 69

DEPLYSER(DEPARTMENT

RECORD ANALYSER)
A PROJECT REPORT

Submitted By:
Shreya Sinha
(Roll No.:1334210037)
Shatakshi Prakash
(Roll No.:1334210034)
Ninad Khot
(Roll No.:1334210019)
Saurabh Tiwari
(Roll No.:1334210031)

In partial fulfilment for the award of the degree


Of

BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE AND ENGINEERING
UNDER THE GUIDANCE OF:
Mr. Chetan Vyas
(Assistant Professor, Department of Computer Science and Engineering,
United College of Engineering and Management, Allahabad)
Mr. Dhananjay Sharma
(Assistant Professor, Department of Computer Science and Engineering,
United College of Engineering and Management, Allahabad)

United College of Engineering and Management, Naini, Allahabad


Dr. APJ Abdul Kalam Technical University, Lucknow
April, 2017
ACKNOWLEDGEMENT

We have taken efforts in this project. However, it would not have been possible without the
kind support and help of many individuals and organisations. I would like to extend my
sincere thanks to all of them.

We are highly indebted to Mr Chetan Vyas, Assisstant Professor, Department of Computer


Science and engineering, United college of engineering and management and Mr. Dhananjay
Sharma, Assisstant Professor, Department of Computer Science and engineering, United
college of engineering and management, for their guidance and constant supervision as well
as for providing necessary information regarding the project & also for their support in
completing the project.

We would like to express my gratitude towards my parents & members of United college of
engineering and management for their kind co-operation and encouragement which helped us
in completion of this project.

We would like to express our special gratitude and thanks to college persons for giving us
such attention and time.

Our thanks and appreciations also go to our colleague in developing the project and people
who have willingly helped us out with their abilities.

Submitted By:

Ninad Khot
Shatakshi Prakash
Shreya Sinha
Saurabh Tiwari
CERTIFICATE

This is to certify that this project report entitled “DEPLYSER (DEPARTMENT RECORD
ANALYSER” by Shreya Sinha(1334210037), Shatakshi Prakash (1334210034), Saurabh
Tiwari (1334210031) And Ninad Khot (1334210019) submitted in the partial fulfilment of
the requirements for the degree of Bachelor of Technology in Computer Science and
Engineering of Dr. APJ Abdul Kalam Technical University, Lucknow, during the academic
year 2013-17, is a bonafide record, carried out under the guidance and supervision of.

MR CHETAN VYAS MR DHANANJAY SHARMA


Assistant Professor, Assistant Professor,
Department of Computer Science and Department of Computer Science and
Engineering Engineering
United College of engineering and United College of engineering and
Management, Management,
Allahabad Allahabad
TABLE OF CONTENTS
1. Introduction
2. The Problem
3. The Solution
4. Objective
4.1 Notice
4.2 Attendance
4.3 Marks
4.4 Query
4.5 Notification via SMS
5. Methodology Used
6. Technology Used
6.1 Front End
6.1.1 Android
6.1.2 HTML
6.1.3 CSS
6.1.4 JavaScript
6.2 Back End
6.3 PHP
6.4 MySQL
6.5 JAVA
7. Hardware and Software Requirements
7.1 Software
7.2 Hardware
8. Feasibility Analysis
9. PERT Chart
10. Software Requirement Specification
11. Technical Specification
11.1 System Analysis
11.1.1 Input Requirement
11.1.2 Output Requirement
11.1.3 Functional Requirement
11.1.4 Internal Interface Requirement
11.1.5 Performance Requirement
11.1.6 Design Constraint
11.1.7 Hardware Constraint
12. User Based Interfaces
12.1 Introduction
12.2 User Interface Design Methodology
12.3Characteristics of Good Interface
13. Methodology and Life Cycle
13.1 Introduction
13.2 Analysis Methods
13.3 Design Methods
13.4 Coding Methods
13.5 Testing Methods
14. Database Design
15. Data Flow Diagram
15.1 Context Level Diagram
15.2 Level 1
16. Flow Chart
16.1Website
16.2 Android Application
17. Use Case Diagram
18. Entity Relationship Diagram
19. Modules
19.1. Administrator Module
19.2. Teacher Module
19.3. Student Module
20. User Interfaces
21. Coding
21.1. PHP:Notice creation
21.2. PHP:Notice updation
21.3. ANDROID: Notice
21.4. XML: Notice
22. Definitions Acronyms and Abbreviations
INTRODUCTION
In today’s fast paced life, it has become increasingly difficult to keep up to date with the
every day’s cognizance, at the same time your hardships are also increasing. Every day we
have new bulletin and sometimes it is just so difficult to matchup. Now the problem we face
is that the traditional notice board system is no longer constructive in the required scenario.
Moreover accessing all the news updates, assignment, and attendance percentage and college
notifications through the notice board is difficult. There is no automated system that would
provide this facility to any institution. Most people have several email accounts and mobile
numbers: one for home, and maybe another for a professional use, thus using email or mobile
will not provide any benefit in this case.

As there is a hike in the use of smartphones, which has led to increased connectivity, there is
a great need to make the information system handy and easy to access. This project is a
comprehensive information management portal designed for the department of computer
science of our college. This education edge information management system can be
implemented on android.

This application will help the student to get latest information related to marks, attendance
and also other necessary and updated news. The students can also seek help from the faculties
by asking queries and receiving reply. The faculties on the other hand can post the necessary
notices and can update attendance and marks of the exams conducted, which will help to
disseminate the information throughout.

THE PROBLEM

The present notice board in educational institutions cause you to misplace or lose required
update and not have a reliable way to share knowledge and information regarding daily
activities in colleges.

THE SOLUTION

An ANDROID based application, and a PHP MY-SQL based website which provides a
convenient way of getting news feed of the college’s daily chores, and a better medium for
the faculty members to communicate with students and manage their details like attendance
and marks.

1
OBJECTIVE
The main objectives of this project DEPLYSER are as follows:

• NOTICE

Teachers are responsible for updating notices, time to time, also they can
delete or edit.

Students are only allowed to view the uploaded notices that have been
uploaded.

• ATTENDANCE

Teachers can upload attendance of their respective lectures. Teachers can


update attendance of their respective lectures. Both the teachers and students
can view it. Debarred list will be generated according to the criteria. Debarred
list can be viewed by all the teachers.

• MARKS

Marks will be uploaded by the teachers. The subject teachers update the marks
of only the respective subject they teach. Marks can be viewed by the students
as well as teachers.

• QUERY

Students can ask queries from the teachers and Teachers can give a reply to
the queries, and the queries can be viewed by the users.

• NOTIFICATION via SMS

Teachers can notify students about their reducing attendance percentage by


sending a notification via SMS to the students or if they wish to inform
guardians about their ward’s low attendance they can do the same by sending
a notification message.

2
METHODOLOGY USED

The model we opted for our project is the evolutionary model. Of the many evolutionary
models the INCREMENTAL MODEL that has best suited our approach to the project
development. The software is first broken into several modules, which can be incremented
and constructed. The development team first develops the core modules of the system. This
initial project skeleton is defined into increasing level of capability by adding new functions
in successive version. Each model may be developed by iterative waterfall model. Each
successive version of the project is fully functional software, capable of performing more
useful work than the previous version. This model of development has several advantages. In
this model the user gets a chance to experiment with partially developed software, much
before the complete version of the system is released.

The incremental model combines elements of the linear sequential model (applied
repetitively) with the iterative philosophy of prototyping. Referring to Figure the incremental
model applies linear sequences in a staggered fashion as calendar time progresses. Each
linear sequence produces a deliverable “increment” of the software. For example, word-
processing software developed using the incremental paradigm might deliver basic file
management, editing, and document production functions in the first increment; more
sophisticated editing and document production capabilities in the second increment; spelling
and grammar checking in the third increment; and advanced page layout capability in the
fourth increment. It should be noted that the process flow for any increment can incorporate
the prototyping paradigm.

When an incremental model is used, the first increment is often a core product. That is, basic
requirements are addressed, but many supplementary features (some known, others unknown)
remain undelivered. The core product is used by the customer (or undergoes detailed review).
As a result of use and/or evaluation, a plan is developed for the next increment. The plan
addresses the modification of the core product to better meet the needs of the customer and
the delivery of additional features and functionality. This process is repeated following the
delivery of each increment, until the complete product is produced.
This model helps to accurate user requirements during the different version of the software
delivered and complexity is minimized after delivering the software. The main advantage of
the model is that it reduces the chance of errors or bugs.

3
TECHNOLOGY USED

FRONT END:

1. ANDROID

1.1 INTRODUCTION TO ANDROID

Android is a mobile operating system developed by Google, based on the Linux kernel and
designed primarily for touchscreen mobile devices such as smartphones and tablets.
Android's user interface is mainly based on direct manipulation, using touch gestures that
loosely correspond to real-world actions, such as swiping, tapping and pinching, to
manipulate on-screen objects, along with a virtual keyboard for text input. In addition to
touchscreen devices, Google has further developed Android TV for televisions, Android Auto
for cars, and Android Wear for wrist watches, each with a specialized user interface. Variants
of Android are also used on notebooks, game consoles, digital cameras, and other electronics.
Android has the largest installed base of all operating systems (OS) of any kind. Android has
been the best selling OS on tablets since 2013, and on smartphones it is dominant by any
metric.
Its open nature has encouraged a large community of developers and enthusiasts to use the
open-source code as a foundation for community-driven projects, which deliver updates to
older devices, add new features for advanced users or bring Android to devices originally
shipped with other operating systems. The success of Android has made it a target for patent
(and copyright) litigation as part of the so-called "smartphone wars" between technology
companies.
Until version 5.0, Android used Dalvik as a process virtual machine with trace-based just-in-
time (JIT) compilation to run Dalvik "dex-code" (Dalvik Executable), which is usually
translated from the Java bytecode. Following the trace-based JIT principle, in addition to
interpreting the majority of application code, Dalvik performs the compilation and native
execution of select frequently executed code segments ("traces") each time an application is
launched. Android 4.4 introduced Android Runtime (ART) as a new runtime environment,
which uses ahead-of-time (AOT) compilation to entirely compile the application bytecode
into machine code upon the installation of an application.
In Android 4.4, ART was an experimental feature and not enabled by default; it became the
only runtime option in the next major version of Android, 5.0.

1.2 DEVELOPMENT

Android is developed in private by Google until the latest changes and updates are ready to
be released, at which point the source code is made available publicly. This source code will
only run without modification on select devices, usually the Nexus series of devices. The
source code is, in turn, adapted by original equipment manufacturers(OEMs) to run on their
hardware. Android's source code does not contain the often proprietary device drivers that are
needed for certain hardware components.
In 2007, the green Android logo was designed for Google by graphic designer Irina Blok.
The design team was tasked with a project to create a universally identifiable icon with the
specific inclusion of a robot in the final design. After numerous design developments based

4
on science fiction and space movies, the team eventually sought inspiration from the human
symbol on restroom doors and modified the figure into a robot shape. As Android is open-
sourced, it was agreed that the logo should be likewise, and since its launch the green logo
has been reinterpreted into countless variations on the original design

1.3. USE JAVA 8 LANGUAGE FEATURES

Android supports all Java 7 language features and a subset of Java 8 language features that
vary by platform version. This page describes the new language features you can use, how to
properly configure your project to use them, and any known issues you may encounter.
Support for Java 8 language features requires a new compiler called JACK. Jack is supported
only on Android Studio 2.1 and higher. So if you want to use Java 8 language features, you
need to use Android Studio 2.1 to build your app.

Platform usage
Nougat (0.3%)
Marshmallow (24.0%)
Lollipop (34.1%)
KitKat (24.2%)
Jelly Bean (13.7%)
Ice Cream Sandwich (1.3%)
Gingerbread (1.3%)
Froyo (0.1%)

2. HTML:

2.1 INTRODUCTION TO HTML

Hypertext Markup Language (HTML) is the standard mark-up language for creating web
pages and web applications. With Cascading Style Sheets (CSS) and JavaScript it forms a
triad of cornerstone technologies for the World Wide Web. Web browsers receive HTML
documents from a webserver or from local storage and render them into multimedia web
pages.

The first publicly available description of HTML was a document called "HTML Tags",
first mentioned on the Internet by Tim Berners-Lee in late 1991. It describes 18 elements
comprising the initial, relatively simple design of HTML. Except for the hyperlink tag, these
were strongly influenced by SGMLguid, an in-house Standard Generalized Markup
Language (SGML)-based documentation format at CERN. Eleven of these elements still exist
in HTML 4. HTML is a markup language that web browsers use to interpret and
compose text, images, and other material into visual or audible web pages. HTML can
embed programs written in a scripting language such as JavaScript which affect the
behaviour and content of web pages. Inclusion of CSS defines the look and layout of content.

5
The World Wide Web Consortium (W3C), maintainer of both the HTML and the CSS
standards, has encouraged the use of CSS over explicit presentational HTML since 1997.

3. CSS

3.1 INRODUCTION TO CSS

Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation
of a document written in a markup language.Although most often used to set the visual style
of web pages and user interfaces written in HTML and XHTML, the language can be applied
to any XML document, including plain XML, SVG and XUL, and is applicable to rendering
in speech, or on other media. Along with HTML and JavaScript, CSS is a cornerstone
technology used by most websites to create visually engaging webpages, user interfaces for
web applications, and user interfaces for many mobile applications.

CSS was first proposed by Håkon Wium Lie on October 10, 1994. At the time, Lie was
working with Tim Berners-Lee at CERN.Several other style sheet languages for the web were
proposed around the same time, and discussions on public mailing lists and inside World
Wide Web Consortium resulted in the first W3C CSS Recommendation (CSS1)being
released in 1996. In particular, Bert Bos' proposal was influential; he became co-author of
CSS1 and is regarded as co-creator of CSS.

CSS is designed primarily to enable the separation of presentation and content, including
aspects such as the layout, colors, and fonts. This separation can improve content
accessibility, provide more flexibility and control in the specification of presentation
characteristics, enable multiple HTML pages to share formatting by specifying the relevant
CSS in a separate .css file, and reduce complexity and repetition in the structural content.

Separation of formatting and content makes it possible to present the same markup page in
different styles for different rendering methods, such as on-screen, in print, by voice (via
speech-based browser or screen reader), and on Braille-based tactile devices. It can also
display the web page differently depending on the screen size or viewing device. Readers can
also specify a different style sheet, such as a CSS file stored on their own computer, to
override the one the author specified.

Changes to the graphic design of a document (or hundreds of documents) can be applied
quickly and easily, by editing a few lines in the CSS file they use, rather than by changing
markup in the documents.

4. JAVASCRIPT

4.1 INRODUCTION TO JAVASCRIPT

JavaScript often abbreviated as "JS", is a high-level, dynamic, untyped, and interpreted run-
time language.It has been standardized in the ECMAScript language specification.Alongside
HTML and CSS, JavaScript is one of the three core technologies of World Wide Web content

6
production; the majority of websites employ it, and all modern Web browsers support it
without the need for plug-ins.JavaScript is prototype-based with first-class functions, making
it a multi-paradigm language, supporting object-oriented,imperative, and functional
programming styles. It has an API for working with text, arrays, dates and regular
expressions, but does not include any I/O, such as networking, storage, or graphics facilities,
relying for these upon the host environment in which it is embedded.

JavaScript is also used in environments that are not Web-based, such as PDF documents, site-
specific browsers, and desktop widgets. Newer and faster JavaScript virtual machines (VMs)
and platforms built upon them have also increased the popularity of JavaScript for server-side
Web applications. On the client side, developers have traditionally implemented JavaScript as
an interpreted language, but more recent browsers perform just-in-time compilation.
Programmers also use JavaScript in video-game development, in crafting desktop and mobile
applications, and in server-side network programming with run-time environments such as
Node.js.

Netscape Communications realized that the Web needed to become more dynamic. Marc
Andreessen, the founder of the company believed that HTML needed a "glue language" that
was easy to use by Web designers and part-time programmers to assemble components such
as images and plugins, where the code could be written directly in the Web page markup.

In 1995, the company recruited Brendan Eich with the goal of embedding the Scheme
programming language into its Netscape Navigator. Before he could get started, Netscape
Communications collaborated with Sun Microsystems to include in Netscape Navigator Sun's
more static programming language Java, in order to compete with Microsoft for user adoption
of Web technologies and platforms. All modern Web browsers support JavaScript with built-
in interpreters.

As with most scripting languages, JavaScript is dynamically typed; a type is associated with
each value, rather than just with each expression. For example, a variable that is at one time
bound to a number may later be re-bound to a string. JavaScript supports various ways to test
the type of an object, including duck typing. JavaScript has a small number of built-in
objects, including Function and Date.

7
BACK END:

1. PHP

1.1 INTRODUCTION TO PHP

PHP is a server-side scripting language designed primarily for web development but also
used as a general-purpose programming language. Originally created by Rasmus Lerdorf in
1994, the PHP reference implementation is now produced by The PHP Development Team.
PHP originally stood for Personal Home Page, but it now stands for the recursive acronym
PHP: Hypertext Preprocessor.

PHP code may be embedded into HTML code, or it can be used in combination with various
web template systems, web content management systems and web frameworks. PHP code is
usually processed by a PHP interpreter implemented as a module in the web server or as a
Common Gateway Interface (CGI) executable.

The web server combines the results of the interpreted and executed PHP code, which may be
any type of data, including images, with the generated web page. PHP code may also be
executed with a command-line interface (CLI) and can be used to implement standalone
graphical applications.

The standard PHP interpreter, powered by the Zend Engine, is free software released under
the PHP License. PHP has been widely ported and can be deployed on most web servers on
almost every operating system and platform, free of charge. The PHP language evolved
without a written formal specification or standard until 2014, leaving the canonical PHP
interpreter as a de facto standard. Since 2014 work has gone on to create a formal PHP
specification. The latest PHP version is PHP 7.1.Basic object-oriented programming
functionality was added in PHP 3 and improved in PHP 4. This allowed for PHP to gain
further abstraction, making creative tasks easier for programmers using the language. Object
handling was completely rewritten for PHP 5, expanding the feature set and enhancing
performance.

PHP 5 introduced private and protected member variables and methods, along with abstract
classes, final classes, abstract methods, and final methods. It also introduced a standard way
of declaring constructors and destructors, similar to that of other object-oriented languages
such as C++, and a standard exception handling model. Furthermore, PHP 5 added interfaces
and allowed for multiple interfaces to be implemented. There are special interfaces that allow
objects to interact with the runtime system.

PHP acts primarily as a filter, taking input from a file or stream containing text and/or PHP
instructions and outputting another stream of data. Most commonly the output will be HTML,
although it could be JSON, XML or binary data such as image or audio formats. Since PHP
4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine,
giving improved performance over its interpreter predecessor.

Originally designed to create dynamic web pages, PHP now focuses mainly on server-side
scripting, and it is similar to other server-side scripting languages that provide dynamic
content from a web server to a client, such as Microsoft's ASP.NET, Sun Microsystems'

8
JavaServer Pages, and mod_perl. PHP has also attracted the development of many software
frameworks that provide building blocks and a design structure to promote rapid application
development (RAD). Some of these include PRADO, CakePHP, Symfony, CodeIgniter,
Laravel, Yii Framework, Phalcon and Zend Framework, offering features similar to other
web frameworks.

Dynamic web page: example of server-side scripting (PHP and MySQL

1.2 USES

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. It can also be used for command-line
scripting and client-side graphical user interface (GUI) applications. PHP can be deployed on
most web servers, many operating systems and platforms, and can be used with many
relational database management systems (RDBMS).

Most web hosting providers support PHP for use by their clients. It is available free of
charge, and the PHP Group provides the complete source code for users to build, customize
and extend for their own use.

9
2. MY-SQL

2.1 INTRODUCTION TO MY-SQL

MySQL is an open-source relational database management system (RDBMS). Its name is a


combination of "My", the name of co-founder Michael Widenius' daughter, and "SQL", the
abbreviation for Structured Query Language. The MySQL development project has made its
source code available under the terms of the GNU General Public License, as well as under a
variety of proprietary agreements.

MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed
lexical analyzer. MySQL works on many system platforms, including AIX, BSDi, FreeBSD,
HP-UX, eComStation, i5/OS, IRIX, Linux, OS X, Microsoft Windows, NetBSD, Novell
NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO
OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.
The MySQL server software itself and the client libraries use dual-licensing distribution.
They are offered under GPL version 2, beginning from 28 June 2000 (which in 2009 has been
extended with a FLOSS License Exception)or to use a proprietary license.

Many programming languages with language-specific APIs include libraries for accessing
MySQL databases. These include MySQL Connector/Net for integration with Microsoft's
Visual Studio (languages such as C# and VB are most commonly used) and the JDBC driver
for Java. In addition, an ODBC interface called MySQL Connector/ODBC allows additional
programming languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion. The HTSQL – URL-based query method also ships
with a MySQL adapter, allowing direct interaction between a MySQL database and any web
client via structured URLs.

Command-line interfaces

A command-line interface is a means of interacting with a computer program where the user
issues commands to the program by typing in successive lines of text (command lines).
MySQL ships with many command line tools, from which the main interface is the mysql
client.

MySQL Utilities is a set of utilities designed to perform common maintenance and


administrative tasks. Originally included as part of the MySQL Workbench, the utilities are a
stand-alone download available from Oracle.

10
3. JAVA

3.1 INTRODUCTION TO JAVA

Java is a general-purpose computer programming language that is concurrent, class-based,


object-oriented, and specifically designed to have as few implementation dependencies as
possible. It is intended to let application developers "write once, run anywhere"
(WORA),meaning that compiled Java code can run on all platforms that support Java without
the need for recompilation. Java applications are typically compiled to bytecode that can run
on any Java virtual machine (JVM) regardless of computer architecture. As of 2016, Java is
one of the most popular programming languages in use, particularly for client-server web
applications, with a reported 9 million developers. Java was originally developed by James
Gosling at Sun Microsystems and released in 1995 as a core component of Sun
Microsystems' Java platform. The language derives much of its syntax from C and C++, but it
has fewer low-level facilities than either of them.

The original and reference implementation Java compilers, virtual machines, and class
libraries were originally released by Sun under proprietary licenses. As of May 2007, in
compliance with the specifications of the Java Community Process, Sun relicensed most of its
Java technologies under the GNU General Public License. Others have also developed
alternative implementations of these Sun technologies, such as the GNU Compiler for Java
(bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin
for applets). The latest version is Java 8 which is the only version currently supported for free
by Oracle, although earlier versions are supported both by Oracle and other companies on a
commercial basis. The latest Java version is Java 8 SE.

3.2 PRINCIPLES

There were five primary goals in the creation of the Java language:

1. It must be "simple, object-oriented, and familiar".


2. It must be "robust and secure".
3. It must be "architecture-neutral and portable".
4. It must execute with "high performance".
5. It must be "interpreted, threaded, and dynamic".

3.3 JAVA PLATFORM

One design goal of Java is portability, which means that programs written for the Java
platform must run similarly on any combination of hardware and operating system with
adequate runtime support. This is achieved by compiling the Java language code to an
intermediate representation called Java bytecode, instead of directly to architecture-specific
machine code. Java bytecode instructions are analogous to machine code, but they are
intended to be executed by a virtual machine (VM) written specifically for the host hardware.
End users commonly use a Java Runtime Environment (JRE) installed on their own machine
for standalone Java applications, or in a web browser for Java applets.

11
Standard libraries provide a generic way to access host-specific features such as graphics,
threading, and networking.The use of universal bytecode makes porting simple. However, the
overhead of interpreting bytecode into machine instructions made interpreted programs
almost always run more slowly than native executables. Just-in-time (JIT) compilers that
compile bytecodes to machine code during runtime were introduced from an early stage. Java
itself is platform-independent and is adapted to the particular platform it is to run on by a
Java virtual machine for it, which translates the Java bytecode into the platform's machine
language.

3.4 IMPLEMENTATIONS

Oracle Corporation is the current owner of the official implementation of the Java SE
platform, following their acquisition of Sun Microsystems on January 27, 2010. This
implementation is based on the original implementation of Java by Sun. The Oracle
implementation is available for Microsoft Windows (still works for XP, while only later
versions currently officially supported), macOS, Linux, and Solaris. Because Java lacks any
formal standardization recognized by Ecma International, ISO/IEC, ANSI, or other third-
party standards organization, the Oracle implementation is the de facto standard.

The Oracle implementation is packaged into two different distributions: The Java Runtime
Environment (JRE) which contains the parts of the Java SE platform required to run Java
programs and is intended for end users, and the Java Development Kit (JDK), which is
intended for software developers and includes development tools such as the Java compiler,
Javadoc, Jar, and a debugger.

OpenJDK is another notable Java SE implementation that is licensed under the GNU GPL.
The implementation started when Sun began releasing the Java source code under the GPL.
As of Java SE 7, OpenJDK is the official Java reference implementation.

The goal of Java is to make all implementations of Java compatible. Historically, Sun's
trademark license for usage of the Java brand insists that all implementations be
"compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the
Microsoft implementation did not support RMI or JNI and had added platform-specific
features of their own. Sun sued in 1997, and, in 2001, won a settlement of US$20 million, as
well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no
longer ships Java with Windows. Platform-independent Java is essential to Java EE, and an
even more rigorous validation is required to certify an implementation. This environment
enables portable server-side applications.

"Hello world" example

The traditional "Hello, world!" program can be written in Java as:

class HelloWorldApp {
public static void main(String[] args) {

System.out.println("Hello World!"); // Prints the string to the console.

12
}
}

3.5 AUTOMATIC MEMORY MANAGEMENT

Java uses an automatic garbage collector to manage memory in the object lifecycle. The
programmer determines when objects are created, and the Java runtime is responsible for
recovering the memory once objects are no longer in use. Once no references to an object
remain, the unreachable memory becomes eligible to be freed automatically by the garbage
collector. Something similar to a memory leak may still occur if a programmer's code holds a
reference to an object that is no longer needed, typically when objects that are no longer
needed are stored in containers that are still in use. If methods for a nonexistent object are
called, a "null pointer exception" is thrown.

One of the ideas behind Java's automatic memory management model is that programmers
can be spared the burden of having to perform manual memory management. In some
languages, memory for the creation of objects is implicitly allocated on the stack or explicitly
allocated and deallocated from the heap. In the latter case, the responsibility of managing
memory resides with the programmer.

If the program does not deallocate an object, a memory leak occurs. If the program attempts
to access or deallocate memory that has already been deallocated, the result is undefined and
difficult to predict, and the program is likely to become unstable and/or crash. This can be
partially remedied by the use of smart pointers, but these add overhead and complexity.

Note that garbage collection does not prevent "logical" memory leaks, i.e., those where the
memory is still referenced but never used.

Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is
guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new
object; this can cause a program to stall momentarily. Explicit memory management is not
possible in Java.

Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned
integers (usually long integers) can be used interchangeably. This allows the garbage
collector to relocate referenced objects and ensures type safety and security.

As in C++ and some other object-oriented languages, variables of Java's primitive data types
are either stored directly in fields (for objects) or on the stack (for methods) rather than on the
heap, as is commonly true for non-primitive data types (but see escape analysis). This was a
conscious decision by Java's designers for performance reasons.

Java contains multiple types of garbage collectors. By default, HotSpot uses the parallel
scavenge garbage collector.[46] However, there are also several other garbage collectors that
can be used to manage the heap. For 90% of applications in Java, the Concurrent Mark-
Sweep (CMS) garbage collector is sufficient. Oracle aims to replace CMS with the Garbage-
First collector (G1).

13
3.6 SPECIAL CLASSES

Applet

Java applets are programs that are embedded in other applications, typically in a Web page
displayed in a web browser.

Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {


public void paintComponent(final Graphics g) {
g.drawString("Hello, world!", 65, 95);
}
}

The import statements direct the Java compiler to include the javax.swing.JApplet and
java.awt.Graphics classes in the compilation. The import statement allows these classes to
be referenced in the source code using the simple class name (i.e. JApplet) instead of the fully
qualified class name (FQCN, i.e. javax.swing.JApplet).

The Hello class extends (subclasses) the JApplet (Java Applet) class; the JApplet class
provides the framework for the host application to display and control the lifecycle of the
applet. The JApplet class is a JComponent (Java Graphical Component) which provides the
applet with the capability to display a graphical user interface (GUI) and respond to user
events.

The Hello class overrides the paintComponent(Graphics) method (additionally indicated


with the annotation, supported as of JDK 1.5, Override) inherited from the Container
superclass to provide the code to display the applet. The paintComponent() method is passed
a Graphics object that contains the graphic context used to display the applet. The
paintComponent() method calls the graphic context drawString(String, int, int) method to
display the "Hello, world!" string at a pixel offset of (65, 95) from the upper-left corner in
the applet's display.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"


"http://www.w3.org/TR/html4/strict.dtd">
<!-- Hello.html -->
<html>
<head>
<title>Hello World Applet</title>
</head>
<body>
<applet code="Hello.class" width="200" height="200">
</applet>
</body>
</html>

14
Use outside of the Java platform

The Java programming language requires the presence of a software platform in order for
compiled programs to be executed. Oracle supplies the Java platform for use with Java. The
Android SDK is an alternative software platform, used primarily for developing Android
applications.

Android

The Android operating system makes extensive use of Java-related technology.

The Java language is a key pillar in Android, an open source mobile operating system.
Although Android, built on the Linux kernel, is written largely in C, the Android SDK uses
the Java language as the basis for Android applications. The bytecode language supported by
the Android SDK is incompatible with Java bytecode and runs on its own virtual machine,
optimized for low-memory devices such as smartphones and tablet computers. Depending on
the Android version, the bytecode is either interpreted by the Dalvik virtual machine or
compiled into native code by the Android Runtime.

Android does not provide the full Java SE standard library, although the Android SDK does
include an independent implementation of a large subset of it. It supports Java 6 and some
Java 7 features, offering an implementation compatible with the standard library (Apache
Harmony).

15
HARDWARE AND SOFTWARE REQUIRED

SOFTWARES

 operating system-windows 7 or above


 flash player with .NET Framework installed
 Php Framework (Php Storm,Adobe dreamweaver)
 Android Framework(Android studio)
 Java latest version installed
 PHP my admin
 Internet browsers(Safari,chrome or others)

HARDWARE

 Any 1.8 GHz (or above) processor


 1gb (or above) RAM
 On board graphics
 Suitable Mouse and keyboard devices
 Monitor at least 15”

 Support for printer (inkjet , laser ,etc)

16
FEASIBILITY ANALYSIS
Feasibility study is an examination of system’s proposal according to its functionality, impact
on the organization, ability to satisfy user requirement and effective utilization of resources.
The major objective of the feasibility study phase is to find out the answers to the following
questions:-
there a new way to do the job in a better way with provided resources that will benefit to
users?

imited resources.

Some distinct, but interrelated types of factors that the analysts will usually consider in the
conduct of the feasibility study are:-

1. TECHNICAL FEASIBILITY:-

We all know that android is a new and latest technology in IT field that’s why we acquired
this technology in our project. Because of this point our project is technically feasible.
android contains many forms, controls and built-in functions that help us to develop this site.

2. OPERATIONAL FEASIBILITY:-

Operational feasibility deals with human, organizational and social aspects. We have use the
ANDROID technology which is user friendly and easily acquired by any non-technical user
but some knowledge about internet browsing. The operational feasibility

3. ECONOMIC FEASIBILITY:-

Economic analysis is carried and savings that are expected from a network system and
compare with the cost. The networks which are used in this social networking site are not so
expensive and can be easily affordable because of fewer requirements of hardware and
software.

4. SOCIAL FEASIBILITY:-

This app and web site will provide some facility related to the social networks within your
friend circle, your colleague and your teachers .

5. LEGAL FEASIBILITY:-

Deplyser is legally feasible as it does not violate any cyber protocols.

17
PERT CHART
PERT stands for “Program Evaluation and Review Technique”, is used for project
scheduling, evaluation and review. It shows the precedence relationships among the tasks and
milestones of a project. It also shows the interrelationships among the tasks, sequences, and
has a means of monitoring progress on the project.

In PERT each task is limited by an identifiable event. An event has no duration; it simply
tells you that the activity has ended or begun. Each task must have been completed. PERT
does not allow “looking back” because a routine that goes back to a task does not end.
In addition to showing the interrelationships among project activities, PERT charts show the
following: -

1. The activities that must be completed before initiating a specific activity.

2. Inter dependencies of the tasks.

3. Other activities that can be completed while a given activity is in progress.

4. The activities that cannot be initiated until after other specific activities are
completed. This is called precedence relationships.

S.No. Activity Activity Code Duration(Days)


1. Conception Initiation AB 8
2. Communication with expert to AC 5
understand requirements
3. Functional Modelling AD 13
4. Data Analysis AE 14
5. Overall Design AF 12
6. Module Decomposition AG 8
7. Process Design AH 7
8. Process Interface Design AI 6
9. Module Design AJ 5
10. Functions Design AK 20
11. Interface Design AL 13
12. DFD Preparation AM 5
13. Flow Chart Preparation AN 4
14. Functions Coding AO 15
15. Testing of Programs AP 11
16. Unit Testing AQ 6
17. Module Testing AR 9
18. Setup Creation AS 10
19. Deployment to Storage Media AT 4
20. Project Report Development AU 7
Total Planned duration for project completion=182 days.

18
19
SOFTWARE REQUIREMENT SPECIFICATIONS
1. INTRODUCTION

As there is a hike in the use of smartphones, which has led to increased connectivity, there is
a great need to make the information system handy and easy to access. This project is a
comprehensive information management portal designed for the department of computer
science of our college. This education edge information management system can be
implemented on android and PHP.

This application will help the student to get latest information related to marks, attendance
and also other necessary and updated news. The students can also seek help from the faculties
by asking queries and receiving reply. The faculties on the other hand can post the necessary
notices and can update attendance and marks of the exams conducted, which will help to
disseminate the information throughout.

2.1 PURPOSE
The main purpose of this project is to automate the notification process and also manage the
attendance and marks of the students, and also to give the students a platform to put forward
their doubts and queries.

The main points to be considered are:

 Updating notices through the app and the website


 Updating marks and attendance of individual students
 Handling queries and giving a reply.
 Assigning subjects and classes to the teachers for the sessions.

2.2 SCOPE
This project is a mobile application and thus reduces the time of manually displaying notices,
also less use of paper is promoted in it. This project can be implemented in colleges for all
the departments and sessions which will help in proper dissemination of news. Also we can
increase the boundaries from not only attendance, notices and marks to complete
management system by merging it with the institution’s application.

2.3 REFRENCES
 Hello Android by Ed Brunette
 Fundamentals of Database Management System by Elmasri Navathe
 Programming PHP by Tatroe, MacItyre & Lerdorf

2.4 OVERVIEW
The user will enter all the information for a particular user profile. The user will submit their
user name, user id and secured password .The user will also have to submit their personal
details like mobile number and email ID.

20
3. THE OVERALL DESCRIPTION

This section describes the whole project, the project is based on Android and PHP platform
with MySQL for the backend. It is named DEPLYSER(Department Record Analyzer).

We have built a website and an android app for the users who are the teachers and students.
The user have to register on their preferred platform, either on the website or on the android
app in some cases the website admin will provide the LoginId and the Password.

The account activation request is sent to the admin after every new registration and when the
admin activates the account after that user can log in to the platform.

After logging in to the platform a home screen will appear which contains various
information like Notice, Attendance Details, Users can also edit their profile details after
registration. There are the details of the teachers which are going to teach the subject for the
session on the home screen of the students and after that there is a notice section on the home
screen which shows the uploaded notices according to the latest upload with the date and
time of the upload and the concerning faculty who created the notice after that the user can
also change the password of their account if they want to change. The users can also
update/upload their profile picture on the platform.

If the user is the teacher then there are plenty of other facilities for them on the website as
well as on the app. They can take attendance of students in their allotted lectures and can
create notice which will appear on the homescreen of the students and teachers. They can also
update the marks of the students in the sessional and they can also see the attendance
percentage of any student by entering the roll no. and subject in which the attendance is
required.

3.1 PRODUCT PERSPECTIVE

3.1.1 INTERFACES
The user interface of software is responsible for all the interactions with the users. User
interface always effect the user mind because how easy and how functional the site is
depends on the user point of view. That’s why website look and functioning always affect the
users mind. User interface or designing of website or an app is not an easy task for developers
because user doesn’t have any relation with coding part how code is prepared but the main
aim of user is on design or look of site, that’s why designing is done in several phases.
Development of a good user interface usually takes significant portion of the total system
development effort.

This website and app is developed keeping in mind the basic characteristics of a good user
interface. Some feature of this website can be stated as:-

21
functionality.

d user effort with the site provide full functionality with less time.

creativity while working with application and the website.

3.1.2 HARDWARE INTERFACES


 Microprocessor : 32 bit, 350 MHz
 RAM : 256 MB
 MEMORY : 600 MB
 MOUSE : PS/2/Scroll
 KEYBOARD : 101 key standard.
 Monitor : VGA 15``Colour For Development Work
 Microprocessor : 64 bit, 2.66 GB
 RAM : 1 GB
 MEMORY : 80 BG
 MOUSE : Optical
 KEYBOARD : 104 key standard.
 Printer : Laser Printer.
 Monitor : LCD or Compatible Software Platform Requirement

3.1.3 SOFTWARE INTERFACES


 Operating system : Windows 8.1
 PLATFORM USED : Android Studio 2.2.3 and PHPstorm
10.0.1
 FRONT END : HTML, JavaScript
 BACKEND : MySQL
 Web Browser : MS Internet Explorer

3.1.4 MEMORY CONSTRAINTS


512 MB RAM or higher, 40 GB Hard Disk Drive.

3.2 USER CHARACTERISTICS


After the user is logged in the User can see the notices uploaded in some case of user they
can also create the notice if the designation of the user is teacher. The user can also see their
attendance and marks in subjects of the current session.

They can also see the information related to their subjects like who is going to teach the
subjects of the session and who is the mentor of the class.If the user is a teacher they can take

22
attendance and view the attendance of any student they can add the sessional marks which
will appear in the students profile and they can also create notice on the notice creation
section of the platform.Users can also edit some of their personal details like mobile number
and email after logging in to the platform.

3.3 CONSTRAINTS

ite and app on their own internetwork on their local host.

website.

4. INTERFACES

4.1 EXTERNAL INTERFACES

Input from the user will be via keyboard input and mouse point and click. The user will
navigate through the app and the website by clicking on buttons and links. The buttons will
give appropriate responses to the given input

4.2 FUNCTIONS

This section provides a functional overview of the project. This project is on JetBrains
PHPstorm 10.0.1 and Android Studio 2.2.3 The detailed requirements are described below:

There are two types of user in the project:

 Student
 Teacher
Each of them are given a login ID which will be the university roll number in the case of
students and the Employee ID in the case of teacher’s. In some cases the user have to register
them on the platform, in that case they have to enter the below, mention details

 User Id
 Name
 User’s id
 Email
 Password
 Gender
 Designation

23
 Department
 Semester {in case of student}
 Section {in case of student}

The requirement of the Deplyser Project is mentioned below:

 User must have to create their user account for using our Deplyser App and Website.

 User must have to enter their designations according to their position.

 Primary e-mail address is necessary and user can give their mobile numbers also.

The information entered by the user can be changed/updated by the user in case of any false
information the user can change their mobile number email address.

4.3 PERFORMANCE REQUIREMENTS


The performance of our product is at its best if stored locally, as the response time will be
much faster. If the product accessed via Internet, the performance is limited by the
connection speed. The only foreseen limitation is that of web-server response.

4.4 DESIGN CONSTRAINTS


4.4.1 SOFTWARE CONSTRAINTS:-
This website browses or run with windows-XP operating system or all newer versions of
windows.

4.4.2 HARDWARE CONSTRAINTS:-


The website run on an Intel Workstation with 256 MB RAM, running on windows

4.5 USER INPUT VALIDATION

If the user leaves a mandatory field blank, he will be prompted to enter valid data in that
particular field. In the interface to input new items, when the item number is not auto-
generated, the number that the user enters should be checked against possible duplication.
Once a possible duplication is detected, the interface should prompt the user to select one of
the suggested numbers (smartly auto-generated basing on the user's initial entry). A list of
alternatives immediately will be given to the user.

24
TECHNICAL SPECIFICATIONS
SYSTEM ANALYSIS

Requirement analysis is a software engineering task that bridges the gap between system
level requirements engineering and software design, requirement engineering actives result in
the specification of software’s operational characteristics (function, data and behaviour),
indicate software’s interface with other system elements, and establish constraints that
software must meet.

The first commonly used requirements technique is to conduct a meeting or interview. The
first meeting between a software engineer (the analyst) and the customers can be likened to
the awkwardness of a first date between two adolescents. Neither person knows what to say
or ask; both want to get the thing over with, but at the same time, both want it to be a success.

The goal of the requirements gathering activity is to collect all relevant information from the
users. The requirements analysis activity is begun by collecting all relevant data regarding the
online banking through the different websites on the Internet. Some of the documents
collected are:- USERS PROFILE CREATION FORM: -

firstly, the users have to fill the registration form it contains details of the user’s like:-

ed when the user ought to login].

-mail ID

INPUT REQUIREMENTS:-
The user must have to specify his/her name, address, gender, date of birth, city, e-mail-id,
contact number etc.

OUTPUT REQUIREMENTS:-
The data that are entered by the users are stored in the tables at run time and will be used in
future if required for details of website.

25
FUNCTIONAL REQUIREMENT:-

alphanumeric or normal text.

INTERNAL INTERFACE REQUIREMENTS:-

The user interface of software is responsible for all the interactions with the users. User
interface always effect the user mind because how easy and how functional the site is
depends on the user point of view. That’s why website look and functioning always affect the
users mind. User interface or designing of website is not an easy task for developers because
user doesn’t have any relation with coding part how code is prepared but the main aim of user
is on design or look of site, that’s why designing is done in several phases. Development of a
good user interface usually takes significant portion of the total system development effort.
This website is developed keeping in mind the basic characteristics of a good user interface.
Some feature of this website can be stated as:-

ty with less time.

working with website.

PERFORMANCE REQUIREMENT:-
Performance of our website lies in working style and your hardware configuration. Speed of
data storage is more than good. Accurate data according to demand provide accurate results.
An accurate input provides reliable performance to user.

DESIGN CONSTRAINT:-
SOFTWARE CONSTRAINTS:- This website browses or run with windows-XP operating
system or all newer versions of windows.

HARDWARE CONSTRAINT:-
The website run on an Intel Workstation with 256 MB RAM, running on windows.

26
USER BASED INTERFACES

INTRODUCTION: -

The user interface portion of a software system is responsible for all interactions with the
users. In the early days of the computer, any software system or website don’t have graphical
interface only command user interface is made and user don’t have any better experience of
working on the site. The computers in early time are batch systems and no interactions with
the users were supported. Now, we know that things are very different almost every software
system or website is highly interactive. No wonder that many users judge the website on the
basis of the design or interface. Normally, when the designer designs the site they always
design a single module for each and every phase.

A USER INTERFACE DESIGN METHODOLOGY:


In our website designing and android app we chose the evolutionary module because this
model is always forwarded easily according to need. So, our design is based on this model
and we try to design the best one for user.
User centered design is designed with modern and high quality design tools with the help of
PHP and android. However, the user centered design does not mean design by user,one
should not get the users opinion of which design alternative is superior is always right.

CHARACTERISTICS OF A GOOD USER INTERFACE:


Systematic development of the user interface is also important from another consideration.
Development of a good user interface usually takes significant portion of the total system
development effort. In the following, we identify a new important characteristic of a good
user interface:- Firstly, the client would be interested to know various sorts of information
available i.e. about various types of functions like profile creation, profile updating, profile
deletion, making friends and sending scraps etc.

A part from all these kinds of information the clients may also be interested in knowing about
special features of website, terms and services of site and others manual documents. If the
user interested and wants to send a message to other friends then he/she must have that friend
in their friendlist then only they can send the message. When the new user want to register
then they must have to enter the registration form requirements, and the fields are as follows:

rst name

27
 speed of learning: A good user interface should be easy to learn. The speed of
learning is hampered by complex syntax and semantics of the command issue
procedures. A good user interface should not require its users to memorize steps.
Neither should the user be asked to remember information from one screen to another
while performing various tools the interface. Besides, the following three issues are
crucial to enhancing the speed of learning.

 Speed of use: The speed of user interface is determined by the time and user effort
necessary to initiate and execute different steps. This characteristic of the interface is
sometime referred to productivity support of the interface. It indicates how the fast
users can perform their intended tasks. The time and user effort necessary to initiate
and execute different steps should be minimal.

 Speed of recall: Once the user learn how to use an interface the speed with which
they can recall the command issue procedure should be maximized.

 Error prevention: A good user interface should minimize the scope of committing
error while initiating different commands or steps. The error rate of an interface can
be easily determined by monitoring the error committed by a normal user while using
the interface.

 Attractiveness: A good user interface should be attractive to use. An attractive user


interface catches user attention and fancy. In this respect, graphics based user
interface have a definite advantage over the text based interface.

 Consistency: The steps or process supported by user interface should be consistent.


The basic purpose of consistency is to help user generalize the knowledge of aspects
of the interface from one part to another.

 Feedback: A good user interface must provide feedback to various users’ action.
Especially if any user requests take more than a few seconds to process, the user
should be informed about the state of the processing of his request.

28
METHODOLOGY AND LIFECYCLE

INTRODUCTION
A software life cycle is the series of identifiable stages that a software project undergoes
during its lifetime. The first stage in the life cycle of any software project is usually the
feasibility study stage. The subsequent stages are requirement analysis and specification,
design, coding, testing and maintenance. Each of these stages is called a life cycle phase. A
life cycle model represents all the activities required to make a software product transmit
through its life cycle phases.

A life cycle model represents all the activities required to make a software project transit
through its life cycle phases. It also captures the order in which these activities are to be
undertaken. In our project we adopted the evolutionary model “Incremental model”.

The model we opted for our project is the evolutionary model. Of the many evolutionary
models the incremental model has best suited our approach to the project development. The
software is first broken into several modules, which can be incremented and constructed. The
development team first develops the core modules of the system. This initial product skeleton
is defined into increasing level of capability by adding new functions in successive version.

Each model may be developed by iterative waterfall model. Each successive version of the
product is fully functional software, capable of performing more useful work than the
previous version. This model of development has several advantages. In this model the user
gets a chance to experiment with partially developed software, much before the complete
version of the system is released. The incremental model combines elements of the linear
sequential model (applied repetitively) with the iterative philosophy of prototyping. Referring
to Figure the incremental model applies linear sequences in a staggered fashion as calendar
time progresses.

products, efforts estimation on the project, resources acquired for the project and COCOMO
Model as the theoretical reference.

techniques, decision tools, and decision of milestones when the testing will commence.

ANALYSIS METHODS:

development.

research papers on Internet and experts theory.

29
DESIGN METHODS:

to recognize as many problems in the software as possible.

CODING METHODS:

programs.
tured English and pseudo-codes are used to closely refine the mechanism using the
facility of defined objects.

ne followed by rigorous testing”.

TESTING METHODS:

e is tested by the development of appropriate functionality.

their provided outputs.

30
DATABASE DESIGN

31
DATA FLOW DIAGRAMS

CONTEXT LEVEL DFD

32
FIRST LEVEL DFD

33
FLOW CHARTS
WEBSITE:

34
35
36
37
38
39
40
41
42
43
44
45
46
ANDROID APP:

47
USE CASE DIAGRAM

48
ER DIAGRAM

49
MODULES

ADMINISTRATOR MODULE

1. Admin is given login id/user name and password.

2. Admin will be the head of the department.

3. With the help of login id and password, admin proves his authenticity and get access
to his account.

4. Admin will be responsible for managing following activities which are mentioned
below-

 Add/remove teachers and students.


 Activate/deactivate account of teachers and students.
 Admin can send notifications text messages to students about their attendance
or about any other thing.
 Admin can add new subjects.
 Admin can remove subjects.
 Admin can recover students or teachers password if they are unable to recover
by given options to themselves.
 Admin is responsible to allot subjects to teachers.
 Admin can add new Admin but not is from same department.
 Admin can change his password and can update profile picture.
 Admin can delete his own account.

Admin module is not provided in android application, it is provided only on


website.

50
TEACHER MODULE

1. Each and every teacher is given unique login id and password.

2. If in any case teacher is not given login id and password, he can register
himself on Signup Portal.

3. With the help of unique login id and password, teacher will prove his
authenticity and admin approve his account and activate his account and then
teacher will have access of his user account.

4. Teacher can perform following activities by his account which are mentioned
below-

 Teacher can create notice, update it or delete it.


 Teacher can view notices created by other teachers.
 Teacher can mark attendance date wise.
 Teacher can add marks of the students’ sessional examination of his
subjects.
 Teacher can send email from the “Mailbox ” panel to students or
teachers.
 Teacher can get attendance details of individual student by entering
student’s roll number.
 Teacher is able to edit his information in “Edit Profile” section.
 Teacher can update his password and update his profile picture.

Teacher module is available in android application as well as in website.

51
STUDENT MODULE

1. Each and every student is given unique login id and password to login same as
teacher.

2. If in any case student is not given login id and password, he can register himself
on Signup Portal.

3. With the help of unique login id and password, student will prove his authenticity
and admin approve his account and activate his account and then student will have
access of his user account.

4. Student can perform following activities by his account which are mentioned
below-

 Student only can view notices which are posted by teachers.


 Student can send emails only to teachers.
 Student can see his sessional examination marks and can print
it.
 Student can check his attendance details in each subject by
selecting dates.
 Student can edit his information in “Edit Profile” section.
 Student can change password and can update profile picture.

Student module is available in android application as well as in website.

52
USER INTERFACES
STUDENT’S PORTAL(Website)

TEACHER’S PORTAL(Website)

1.Teacher’s Homepage

53
ADMIN PORTAL(Website)

HOME PAGE(Application)

54
CODING

PHP: Notice creation


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="../js/sweetalert.min.js"></script>
<link rel="stylesheet" type="text/css" href="../js/sweetalert.css">
</head>
<body>
</body>
</html>
<?php
date_default_timezone_set('Asia/kolkata');
$s = date("Y-m-d H:i:s");
session_start();
require_once "database.php";
$trid = $_SESSION['urid'];
$title = $_POST['ntitle'];
$desc = $_POST['ndesc'];

$query = mysqli_query($db, "select * from registration ");


if (mysqli_num_rows($query) > 0) {
$row = mysqli_fetch_assoc($query);
$tid = $row['rid'];

$insert = mysqli_query($db, "insert into


notice(title,description,tecid,datetime1)values('$title','$desc','$trid','$s')");

if ($insert) {

?>
<script>
swal({
title: "Job Done :)",
text: "notice is created",
type: "success"
},
function () {
window.location.href = 'Teacher.php';
});
</script>
<?php
} else {
?>
<script>
swal({
title: "Sorry :(",
text: "something went wrong ",
type: "error"
},
function () {
window.location.href = 'Teacher.php';
});
</script>
<?php
}
} else {
?>
<script>
swal({
title: "Sorry :(",

55
text: "something went wrong ",
type: "error"
},
function () {
window.location.href = 'Teacher.php';
});
</script>
<?php
}
?>

PHP: Notice updation


<!doctype html>

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="../js/sweetalert.min.js"></script>
<link rel="stylesheet" type="text/css" href="../js/sweetalert.css">
<link rel="stylesheet" type="text/css" href="../library/font-awesome-
4.3.0/css/font-awesome.min.css">
<link rel="shortcut icon" type="image/x-icon" href="../images/logo.jpg">
<link rel="stylesheet" type="text/css" href="../css/animate.css">
<link rel="stylesheet" type="text/css" href="../css/magnific-popup.css">
<link rel="stylesheet" type="text/css" href="../library/vegas/vegas.min.css">
<link rel="stylesheet" type="text/css"
href="../library/bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css"
href="../library/bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="../css/style.css">
<link rel="stylesheet" type="text/css" href="../css/responsive.css">
<link rel="stylesheet" type="text/css" href="../css/color/white.css">
</head>
<body>
<a style="position: relative;top: 20px;left: 10px;" href="Teacher.php" class="btn-
lg btn-info">Go Back</a>
<?php
require "database.php";
session_start();
if (!empty($_GET)) {
if (array_key_exists('i', $_GET)) {
$id = $_GET['i'];
$query = mysqli_query($db, "select * from notice where nid='$id'");
$row = mysqli_fetch_assoc($query);
?>
<form method="post" action="">
<div class="container col-lg-6 col-md-4 col-sm-3 col-xs-2"
style="margin-left: 300px;width: 800px;height:
300px;"><br><br><br><br>
<span>Topic</span> <input type="text" name="ttitle" class="form-
control"
value="<?php echo $row['title']; ?>"><br>
<span>Dscription</span><textarea name="ta"
class="form-control"><?php echo
$row['description']; ?></textarea><br>
<button type="submit" value="update" class="btn-sm btn-info"
style="float: right" name="up">Update</button>
</div>
</form>
<?php
}
if (isset($_POST['up'])){
$title = $_POST['ttitle'];
$desc = $_POST['ta'];

56
if ($title) {
$updq = mysqli_query($db, "update notice set title='$title' where nid='$id'");
}
if ($desc) {
$updq = mysqli_query($db, "update notice set description='$desc' where
nid='$id'");}
if ($updq){
?>
<script>
swal({
title: "Updation Successful :)",
text: " Successful :)",
type: "success"
},
function () {
window.location.href = 'Teacher.php';
});
</script>
<?php
}
else
{
?>
<script>

swal({
title: "Failed :(",
text: "Something Went wrong",
type: "error"
},
function () {
window.location.href = 'Teacher.php';
});
</script>
<?php
}
}
}
?>
</body>
</html>

57
ANDROID: Notice

public class notice extends Activity {


private String TAG = notice.class.getSimpleName();

String url = "http://192.168.56.1/s/notice/fet.php";


ArrayList<HashMap<String, String>> notice_list;
private ListView list;
private ImageButton imageButton;
private String id;
private String title;
private ProgressDialog pDialog;
private ListAdapter adapter;
private backgrounddel b;
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notice);
notice_list = new ArrayList<>();
list = (ListView) findViewById(R.id.list);
b = new backgrounddel(this);
new notic().execute();
//Toast.makeText(getApplicationContext(),title, Toast.LENGTH_SHORT).show();
imageButton = (ImageButton) findViewById(R.id.imageButton);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(notice.this, addnotice.class);
startActivity(i);
}
});
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView adapterView, final View view, int
position, final long id) {
PopupMenu obj = new PopupMenu(notice.this, list);
obj.inflate(R.menu.popupmenu);
obj.show();
obj.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
case R.id.actionedit:
Toast.makeText(notice.this, "edited", Toast.LENGTH_SHORT).show();
break;
case R.id.actiondelete:
DialogInterface.OnClickListener dialogClickListener = new
DialogInterface.OnClickListener() {

58
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Do your Yes progress
String data = ((TextView)
view.findViewById(R.id.title)).getText().toString();
String type="delete";
b.execute(type,data);
list.setAdapter(adapter);
Intent intent = getIntent();
finish();
startActivity(intent);
break;
case DialogInterface.BUTTON_NEGATIVE:
//Do your No progress
break;
}
}
};
AlertDialog.Builder ab = new AlertDialog.Builder(notice.this);
ab.setMessage("Are you sure to delete?").setPositiveButton("Yes",
dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
break;
}
return true;
}
});
return true;
}
});
}
class notic extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(notice.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
httpHandler sh = new httpHandler();
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);

59
JSONArray notices = jsonObj.getJSONArray("result");
for (int i = 0; i < notices.length(); i++) {
JSONObject c = notices.getJSONObject(i);
id = c.getString("id");
title = c.getString("title");
String description = c.getString("description");
String date = c.getString("date");
HashMap<String, String> notice = new HashMap<>();
notice.put("title", title);
notice.put("description", description);
notice.put("date", date);
notice_list.add(notice);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
} else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG)
.show();
}
});
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
adapter = new SimpleAdapter(
notice.this, notice_list,
R.layout.sliderlistitem, new String[]{"title",
"description", "date"}, new int[]{R.id.title, R.id.description, R.id.date});
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

60
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String data = ((TextView) view.findViewById(R.id.title)).getText().toString();
String data2 = ((TextView)
view.findViewById(R.id.description)).getText().toString();
String data3 = ((TextView) view.findViewById(R.id.date)).getText().toString();
Intent intent = new Intent(notice.this, viewnotice.class);
intent.putExtra("key", data);
intent.putExtra("key2", data2);
intent.putExtra("key3", data3);
startActivity(intent);
}
});}}}
class backgrounddel extends AsyncTask<String, Void, String> {
Context context;
backgrounddel(Context ctx) {
this.context = ctx;
act = (Activity) ctx;
}
Activity act;
ProgressDialog pd;
AlertDialog.Builder builder;
@Override
protected String doInBackground(String... voids) {
String type = voids[0];
String delete_url = "http://192.168.56.1/s/try/delete.php";
if (type.equals("delete")) {
try {
String ti = voids[1];
URL url = new URL(delete_url);
HttpURLConnection huc = (HttpURLConnection) url.openConnection();
huc.setRequestMethod("POST");
huc.setDoOutput(true);
huc.setDoInput(true);
OutputStream os = huc.getOutputStream();
BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
String post_data =URLEncoder.encode("ti", "UTF-
8")+"="+URLEncoder.encode(ti , "UTF-8");;
buf.write(post_data);
buf.flush();
buf.close();
os.close();
InputStream is = huc.getInputStream();
BufferedReader bufr = new BufferedReader(new InputStreamReader(is, "ISO-8859-1"));
String result = "";
String line = "";
while ((line = bufr.readLine()) != null) {
result += line;
}
bufr.close();

61
is.close();
huc.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();}}
return null;
}
@Override
protected void onPreExecute() {
builder = new AlertDialog.Builder(act);
pd = new ProgressDialog(context);
pd.setTitle("Please wait...");
pd.setMessage("Connecting to server");
pd.setIndeterminate(true);
pd.setCancelable(false);
pd.show();
builder.setTitle("status");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); }
}); }
@Override
protected void onPostExecute(String result) {
try {
pd.dismiss();
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray("result");
JSONObject jo = jsonArray.getJSONObject(0);
String code = jo.getString("code");
String message = jo.getString("message");
if (code.equals("Deletion_true")) {
Toast.makeText(act, message, Toast.LENGTH_SHORT).show();
} else if (code.equals("deletion_failed")) {
showDialog("deletion error", message, code);
}
} catch (JSONException e) {
e.printStackTrace();
}
}

@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
public void showDialog(String title, String message, String code) {
builder.setTitle(title);
if (code.equals("deletion_failed")) {

62
builder.setMessage(message);
Intent i=new Intent(act,notice.class); }
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
}

XML: Notice

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_notice"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.shreya.transitionbackground.notice">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:id="@+id/frameLayout">
<ImageButton
android:layout_margin="15dp"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/ic_mode_edit_black_24dp"
android:background="@drawable/circle"
android:id="@+id/imageButton"
android:layout_gravity="right|bottom" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/list"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:divider="@drawable/bac"
android:dividerHeight="1dp"
android:headerDividersEnabled="true"
android:footerDividersEnabled="true"
android:elevation="3dp">
</ListView>
</FrameLayout>
</RelativeLayout>

63
DEFINITIONS, ACRONYMS, AND ABBREVIATIONS

Analysis: The requirements gathering process is intensified and focuses specifically on the
software.

Coding: The design must translate into machine-readable form. The code generation step
performs this task.

Data store: A logical construct used to depict data that is been record during manual and
automated processes. Data stores are organized biological data groupings without regard to
the storage medium.

DFD: Data Flow Diagram A diagram that shows the input and outputs of a process and the
data stores that store the data.

Design: The software design actually a multi-step process that focuses on 4 distinct attributes
of a program. The data structure, software architecture, interface representations and
procedural details.

Input: Data provided to a process &

Output: Data produced by a process.

PERT: Stands for Project Evaluation and Review Technique.

Process: A series of steps taken to accomplish a specific action or procedure a specific result
based on the input to those steps and the state of the system at the time of that input.

SRS: Software Requirement Specification.

Testing: It focuses on the logical internals of the software.

Unit testing: The project is divided into small units and then testing is done on each unit
separately.

White-box testing: A test case design method uses the control the structure of the procedural
design to derive test-case

64