You are on page 1of 32

Mini Project: 16MCA5DPMP Sutradhar

Table of Contents

1. TITLE..................................................................................................................3

2. ABSTRACT.........................................................................................................4

3. INTRODUCTION..............................................................................................5

4. PROJECT PLAN................................................................................................5

5. PROBLEM IDENTIFICATION.......................................................................8
APPLICATION DESCRIPTION........................................................................8
EXISTING SYSTEM..........................................................................................9
PROPOSED SYSTEM........................................................................................9

6.SOFTWARE REQUIREMENTS SPECIFICATIONS (SRS)..........................10


PURPOSE..........................................................................................................10
SCOPE...............................................................................................................10
FUNCTIONAL REQUIREMENTS..................................................................10
NON FUNCTIONAL REQUIREMENTS........................................................10
SYSTEM REQUIREMENTS............................................................................11
HARDWARE REQUIREMENTS.................................................................11
SOFTWARE REQUIREMENTS..................................................................11

7.ANALYSIS AND DESIGN..................................................................................12


USE CASE.........................................................................................................12
CLASS DIAGRAM...........................................................................................13
SEQUENCE DIAGRAM..................................................................................14
ACTIVITY DIAGRAM....................................................................................15
MODULES........................................................................................................16

Department of Computer Applications, BMSCE Page 1


8. IMPLEMENTATION .....................................................................................17

9. TESTING...........................................................................................................27
UNIT TESTING................................................................................................27
INTEGRATION TESTING...............................................................................27
SYSTEM TESTING..........................................................................................27
ACCEPTANCE TESTING................................................................................28
TEST CASES....................................................................................................28

10.CONCLUSION................................................................................................30

11.FUTURE ENHANCEMENTS........................................................................30

12.BIBLIOGRAPHY............................................................................................30
1. TITLE

SUTRADHAR
-It all starts from here
2. ABSTRACT

Sutradhar is an Advanced and Informative System helping the users to know the events, news or
any interesting things happening in and around the Department. This System helps the students to keep
themselves up to date about the happening of the events and seminars.

There is a Admin panel and android app for this system to work, admin panel is for the admin and app is
for the students. The students are allowed to view the events only of their department. Admin can add the
news, categories, register the students, manage notifications.

The Front end used is Android Studio while backend as PHP and Database as MY SQL. The Student has
to register into the system to use this app and can update his details as well. The latest news or events is
shown first and so on, the student can also refresh the news resulting the latest one shown first and current
news will be closed.

3. INTRODUCTION
With the rapid development of information technology, web application and Android
application have been increasing in recent years. Event management applications for managing
events has already taken a big popularity but when there can be a public platform like this then
why not within an organization? Now companies have their own application for their employees to
inform about the happenings of events in their company. This can also be implemented in our own
college for our own college students.

The purpose of this thesis is to build a event management application for college students.
Nowadays a separate events application for an institution helps the students, faculty, staff of that
institution to get all the events, news in one place, they can view the events and news that are
going to happen and about to happen.

This saves time and also the paper work. Students can also check the availability of the
events and timings of the events. For the students, this application provides the name of the event
and its information (category, name, image, date, time, venue, guest or speaker, maximum number
of participants (related to that event), description.) on the Android application.
4. PROJECT PLAN

Activity Activity Precedence Duration


(weeks)

A Planning and Selection of Project - 2

B Requirement Analysis A 2

C Designing B 4

D Coding B 6

E Database Connection and Validation for C, D 3.5


UI and Functionality
5. PROBLEM IDENTIFICATION
We have a single notice board in all the departments for the whole college i.e. for students,
faculties, and staff. It is identified that most of the students fail to see the notice board and miss
many of the events and seminar.

Sometimes it is hard for the students to find the details of the event that is going to happen.
So, Mobile Application can be a key to solve this problem. Using this application, the students can
view the timings, event description, find details, etc.

APPLICATION DESCRIPTION
In Background Management Platform:

 Admin can add, modify and delete the events.


 Admin can register the students.
 Admin can send the notifications.
In the Android Application:
 Students can view events information, such as category, name, image, description and so
on.
 Students can give feedback.
 Students can add the events as their favorites.

EXISTING SYSTEM

In an existing system students would get to know about the events and seminar when it was
posted on a notice board or in a group which has been created in the wats app messenger. Students
would also get to know about the events when they had a personal interaction with the related staff
or the faculty. This method takes much time and manual work.

Disadvantages:
 Takes long time to format and post it on a notice board.
 Need to wait in queue if all the students rush to notice board at once.
 Uses paper for generating events.

PROPOSED SYSTEM

The android application (sutradhar) enables the end users or Students to register on the
application. The students can view and get the required details of the events. The student can also
see the different categories of events posted by the department.

The Students can also give feedback of the event in which he or she has participated.
Students can also make the events as their favorite which helps them to recall about the events they
have attended . It saves lot of time and paper work.

Advantages:

 One time access to all the events from any place without wasting much time.
 It is user friendly and can be used any time.
 No need to wait in queue to see the events on notice boards.
 Reduces the paper work.
6. SOFTWARE REQUIREMENTS SPECIFICATIONS (SRS)

PURPOSE

The purpose of this project is to build a mobile application to college department where the
user (student, faculty, and staff) can view and have access to the events happening in the
department. This mobile application is user friendly and can be accessible by everyone since most
of them use the android mobiles regularly.

SCOPE

In traditional system, the user (student, faculty, and staff) needs to go to the canteen and
order food which is usually busy during a course of period (lunch hours). The time taken to order
and take the food is more. The receiving of the ordered food item takes more duration where we
need to wait in the long queue. This makes the user uncomfortable to order food items. Along with
the manager/ management of the canteen gets stressed during a huge number of order during a
particular time.

In order to overcome this problem a solution like mobile application is built which helps
the user (student, faculty, and staff) to order the food from any place and at any time which makes
the user life hassle free. Also the mobile application is user friendly and reduces the waiting time.
The management/ manager of the canteen can get the orders prior so that they can prepare the food
and inform the user regarding this and lessen the burden of the stress at a particular duration.

FUNCTIONAL REQUIREMENTS

A functional requirement defines a system or its components. It describes the functionality


of software and how it works. A function is nothing but inputs, its behaviour, and outputs.
According to this mobile application built the functional requirements are,

i) Accepting and validating only the registered user to login.


ii) The application is providing access to user to view and register from any location and at
any time.

NON FUNCTIONAL REQUIREMENTS

A non-functional requirement defines the quality attribute of a software system. It is


essential to ensure the usability and effectiveness of the entire software system.
i) The system is user friendly which can be accessible at any time.
ii) Since the system is android application which can be installed in the play store and
supports the usage of the application.
iii) Most of the functionality developed and used by the application is tested and is usable
and reliable.

SYSTEM REQUIREMENTS

System requirements are the configuration that a system must have in order for a
hardware or software application to run smoothly and efficiently.

HARDWARE REQUIREMENTS

Processor: Intel Core i5


RAM: 4GB
Hard Disk: more than 10GB
Input Device: Keyboard, Mouse, Android Device / Emulator
Output Device: Monitor

SOFTWARE REQUIREMENTS

Operating System: Windows10


Web Browser: Google Chrome, Mozilla Firefox
Language: Java, XML,PHP
Database: mysql
IDE: Android Studio 3.5.3 with SDK bundle, Java SDK 12.0
7. ANALYSIS AND DESIGN

USE CASE

Figure 1: Use case- this depicts how user and admin uses the system process
CLASS DIAGRAM

User
+username
+password
+register()

Database
+register()
+addevents()
+viewevents() admin
+addcategory +adminname
+viewcategory +adminpassword
+login()
+post()

Figure 2: Class Diagram – this describe the structure of the system by showing system classes
SEQUENCE DIAGRAM

Figure 3: Sequence diagram – This depicts how system interacts with each other
ACTIVITY DIAGRAM

Figure 4: Activity Diagram for admin


Figure 5: Activity Diagram for users
MODULES

a) Student Module

i) Register Page: User (Student, Faculty and Staff) can enter their details like Name, ID, phone
number, designation and password to register to the suthradhara application to access the app.

ii) Login Page: User (Student, Faculty and Staff) can login to the application by entering
username and password to access the app.

iii) Home Page: User can see the available list of the events that are going to happen.

b) Admin Module

i) Login: The admin can login to the admin panel by filling the username and password.

ii) Add the events: Admin can add the new events and can give a short description of the event
that is about to happen.

iii) Update / change the availability status: Admin can also modify or update the events like
whether the event is postponed or preponed.

iv) Send Notification: Admin can send the notification, just as a reminder to remind the students
about the event.
8. IMPLEMENTATION
SCREENSHOTS
BACKEND:
FRONTEND
CODE:
Backend
index.php
<?php
ob_start();
session_start();
?>
<!DOCTYPE html>
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="msapplication-tap-highlight" content="no">
<meta name="description" content="Android News App is a mobile news system which run under Android
platform that used for your own news application. With powerful and Responsive Admin Panel can manage news
category, news item, app profile information, change admin username and password with generate password, etc.
This application created by Android for client side and then PHP MySQL for Admin side. Run under Android
platform which is the most popular operating system in the world. Using this application you can save your money
and time in creating application for your own news application.">
<meta name="keywords" content="android, app, template, android studio, admob, firebase, json, mobile news,
news, news app, php, push notification">
<title>Android App</title>
<!-- Favicon-->
<link rel="icon" href="assets/images/favicon.png" type="image/x-icon">

<!-- Google Fonts -->


<link href="https://fonts.googleapis.com/css?family=Roboto:400,700&subset=latin,cyrillic-ext" rel="stylesheet"
type="text/css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" type="text/css">

<!-- Bootstrap Core Css -->


<link href="assets/plugins/bootstrap/css/bootstrap.css" rel="stylesheet">

<!-- Waves Effect Css -->


<link href="assets/plugins/node-waves/waves.css" rel="stylesheet" />

<!-- Animation Css -->


<link href="assets/plugins/animate-css/animate.css" rel="stylesheet" />

<!-- Custom Css -->


<link href="assets/css/style.css" rel="stylesheet">

<link href="assets/css/custom.css" rel="stylesheet">

</head>

<body class="login-page">

<?php include "public/login-form.php" ?>

<!-- Jquery Core Js -->


<script src="assets/plugins/jquery/jquery.min.js"></script>

<!-- Bootstrap Core Js -->


<script src="assets/plugins/bootstrap/js/bootstrap.js"></script>

<!-- Waves Effect Plugin Js -->


<script src="assets/plugins/node-waves/waves.js"></script>

<!-- Validation Plugin Js -->


<script src="assets/plugins/jquery-validation/jquery.validate.js"></script>

<!-- Custom Js -->


<script src="assets/js/admin.js"></script>
<script src="assets/js/pages/examples/sign-in.js"></script>
</body>

</html>

Dashboard-menu.php
<?php

$sql_category = "SELECT COUNT(*) as num FROM tbl_category";


$total_category = mysqli_query($connect, $sql_category);
$total_category = mysqli_fetch_array($total_category);
$total_category = $total_category['num'];

$sql_news = "SELECT COUNT(*) as num FROM tbl_news";


$total_news = mysqli_query($connect, $sql_news);
$total_news = mysqli_fetch_array($total_news);
$total_news = $total_news['num'];

$sql_fcm = "SELECT COUNT(*) as num FROM tbl_fcm_template";


$total_fcm = mysqli_query($connect, $sql_fcm);
$total_fcm = mysqli_fetch_array($total_fcm);
$total_fcm = $total_fcm['num'];

$sql_user = "SELECT COUNT(*) as num FROM tbl_users";


$total_users = mysqli_query($connect, $sql_user);
$total_users = mysqli_fetch_array($total_users);
$total_users = $total_users['num'];

?>

<section class="content">

<ol class="breadcrumb">
<li><a href="dashboard.php">Dashboard</a></li>
<li class="active">Home</a></li>
</ol>

<div class="container-fluid">

<div class="row">

<a href="manage-category.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">MANAGE CATEGORY</div>
<div class="color-name"><?php echo $total_category; ?></div>
<div class="color-class-name">Total Category</div>
<br>
</div>
</div>
</a>

<a href="manage-news.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">MANAGE NEWS</div>
<div class="color-name"><?php echo $total_news; ?></div>
<div class="color-class-name">Total News</div>
<br>
</div>
</div>
</a>

<a href="push-notification.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">NOTIFICATION</div>
<div class="color-name"><?php echo $total_fcm; ?></div>
<div class="color-class-name">Total Template</div>
<br>
</div>
</div>
</a>

<a href="registered-user.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">REGISTERED USER</div>
<div class="color-name"><?php echo $total_users; ?></div>
<div class="color-class-name">Total Users</div>
<br>
</div>
</div>
</a>

<a href="manage-comment.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">COMMENTS</div>
<div class="color-name"><i class="material-icons">message</i></div>
<div class="color-class-name">Comment Approval</div>
<br>
</div>
</div>
</a>

<a href="members.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">ADMINISTRATOR</div>
<div class="color-name"><i class="material-icons">people</i></div>
<div class="color-class-name">Admin Panel Privileges</div>
<br>
</div>
</div>
</a>

<a href="settings.php">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div class="card demo-color-box bg-blue waves-effect col-lg-12 col-md-12 col-sm-12 col-xs-12">
<br>
<div class="color-name">SETTINGS</div>
<div class="color-name"><i class="material-icons">settings</i></div>
<div class="color-class-name">Key and Privacy Settings</div>
<br>
</div>
</div>
</a>

</div>

</div>

</section>

Register.php
<?php

function Insert($table, $data) {

include '../includes/config.php';
$fields = array_keys( $data );
$values = array_map(array($connect, 'real_escape_string'), array_values($data) );

$sql = "INSERT INTO $table (".implode(",",$fields).") VALUES ('".implode("','", $values )."')";


mysqli_query($connect, $sql);

// Update Data, Where clause is left optional


function Update($table_name, $form_data, $where_clause='') {

include '../includes/config.php';
// check for optional where clause
$whereSQL = '';
if(!empty($where_clause)) {
// check to see if the 'where' keyword exists
if(substr(strtoupper(trim($where_clause)), 0, 5) != 'WHERE') {
// not found, add key word
$whereSQL = " WHERE ".$where_clause;
} else {
$whereSQL = " ".trim($where_clause);
}
}
// start the actual SQL statement
$sql = "UPDATE ".$table_name." SET ";

// loop and build the column /


$sets = array();
foreach($form_data as $column => $value) {
$sets[] = "`".$column."` = '".$value."'";
}
$sql .= implode(', ', $sets);

// append the where statement


$sql .= $whereSQL;

// run and return the query result


return mysqli_query($connect, $sql);
}

?>

FRONTEND
mainActivity.java
package com.app.androidnewsapp.activities;

import android.content.BroadcastReceiver;

public class MainActivity extends AppCompatActivity {

private long exitTime = 0;


MyApplication myApplication;
View view;
private BottomNavigationView navigation;
public static ViewPager viewPager;
private Toolbar toolbar;
MenuItem prevMenuItem;
int pager_number = 5;
BroadcastReceiver broadcastReceiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = findViewById(android.R.id.content);

if (Config.ENABLE_RTL_MODE) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
}
}

AppBarLayout appBarLayout = findViewById(R.id.tab_appbar_layout);


((CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams()).setBehavior(new
AppBarLayoutBehavior());

myApplication = MyApplication.getInstance();
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitle(R.string.app_name);

viewPager = findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
viewPager.setOffscreenPageLimit(pager_number);

navigation = findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(new
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
viewPager.setCurrentItem(0);
return true;
case R.id.navigation_category:
viewPager.setCurrentItem(1);
return true;
case R.id.navigation_video:
viewPager.setCurrentItem(2);
return true;
case R.id.navigation_favorite:
viewPager.setCurrentItem(3);
return true;
case R.id.navigation_profile:
viewPager.setCurrentItem(4);
return true;
}
return false;
}
});

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

@Override
public void onPageSelected(int position) {
if (prevMenuItem != null) {
prevMenuItem.setChecked(false);
} else {
navigation.getMenu().getItem(0).setChecked(false);
}
navigation.getMenu().getItem(position).setChecked(true);
prevMenuItem = navigation.getMenu().getItem(position);

if (viewPager.getCurrentItem() == 1) {
toolbar.setTitle(getResources().getString(R.string.title_nav_category));
} else if (viewPager.getCurrentItem() == 2) {
toolbar.setTitle(getResources().getString(R.string.title_nav_video));
} else if (viewPager.getCurrentItem() == 3) {
toolbar.setTitle(getResources().getString(R.string.title_nav_favorite));
} else if (viewPager.getCurrentItem() == 4) {
toolbar.setTitle(getResources().getString(R.string.title_nav_favorite));
} else {
toolbar.setTitle(R.string.app_name);
}
}

@Override
public void onPageScrollStateChanged(int state) {

}
});

if (Config.ENABLE_RTL_MODE) {
viewPager.setRotationY(180);
}

broadcastReceiver = new BroadcastReceiver() {


@Override
public void onReceive(Context context, Intent intent) {

// checking for type intent filter


if (intent.getAction().equals(Constant.REGISTRATION_COMPLETE)) {
// now subscribe to global topic to receive app wide notifications
FirebaseMessaging.getInstance().subscribeToTopic(Constant.TOPIC_GLOBAL);

} else if (intent.getAction().equals(Constant.PUSH_NOTIFICATION)) {
// new push notification is received
String message = intent.getStringExtra("message");
Toast.makeText(getApplicationContext(), "Push notification: " + message,
Toast.LENGTH_LONG).show();
}
}
};

Intent intent = getIntent();


final String message = intent.getStringExtra("message");
final String imageUrl = intent.getStringExtra("image");
final long nid = intent.getLongExtra("id", 0);
final String link = intent.getStringExtra("link");

if (message != null) {

LayoutInflater layoutInflaterAndroid = LayoutInflater.from(MainActivity.this);


View mView = layoutInflaterAndroid.inflate(R.layout.custom_dialog_notif, null);

final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);


alert.setView(mView);

final TextView notification_title = mView.findViewById(R.id.news_title);


final TextView notification_message = mView.findViewById(R.id.news_message);
final ImageView notification_image = mView.findViewById(R.id.news_image);

if (imageUrl.endsWith(".jpg") || imageUrl.endsWith(".jpeg") || imageUrl.endsWith(".png") ||


imageUrl.endsWith(".gif")) {
notification_title.setText(message);
notification_message.setVisibility(View.GONE);
Picasso.with(MainActivity.this)
.load(imageUrl.replace(" ", "%20"))
.placeholder(R.drawable.ic_thumbnail)
.resize(200, 200)
.centerCrop()
.into(notification_image);

alert.setPositiveButton(R.string.dialog_read_more, new DialogInterface.OnClickListener() {


@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(getApplicationContext(), ActivityNotificationDetail.class);
intent.putExtra("id", nid);
startActivity(intent);
}
});
alert.setNegativeButton(R.string.dialog_dismiss, null);

} else {
notification_title.setText(getResources().getString(R.string.app_name));

notification_message.setVisibility(View.VISIBLE);
notification_message.setText(message);

notification_image.setVisibility(View.GONE);

//Toast.makeText(getApplicationContext(), "link : " + link, Toast.LENGTH_SHORT).show();

if (!link.equals("")) {
alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent open = new Intent(Intent.ACTION_VIEW, Uri.parse(link));
startActivity(open);
}
});
alert.setNegativeButton(R.string.dialog_dismiss, null);
} else {
alert.setPositiveButton(R.string.dialog_ok, null);
}
}

alert.setCancelable(false);
alert.show();

GDPR.updateConsentStatus(this);

public class MyAdapter extends FragmentPagerAdapter {

public MyAdapter(FragmentManager fm) {


super(fm);
}

@Override
public Fragment getItem(int position) {

switch (position) {
case 0:
return new FragmentRecent();
case 1:
return new FragmentCategory();
case 2:
return new FragmentVideo();
case 3:
return new FragmentFavorite();
case 4:
return new FragmentProfile();
}
return null;
}

@Override
public int getCount() {
return pager_number;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {

case R.id.search:
Intent intent = new Intent(getApplicationContext(), ActivitySearch.class);
startActivity(intent);
return true;

default:
return super.onOptionsItemSelected(menuItem);
}
}

@Override
public void onBackPressed() {
if (viewPager.getCurrentItem() != 0) {
viewPager.setCurrentItem((0), true);
} else {
exitApp();
}
}
public void exitApp() {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(this, getString(R.string.press_again_to_exit), Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}

@Override
protected void onResume() {
super.onResume();
}

}
9. TESTING
The success of testing in revealing errors depends on the test cases. Testing is the process
of finding errors. The package to be tested is executed with a set of samples test cases and the
outputs are then observed to determine whether the performance of the package is as expected.

The basic levels of testing are:

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing

UNIT TESTING
Unit testing is performed before the combination of the unit into an integrated system and
this is the first level of testing wherein different modules are tested against the specification
produced during the design for the modules. This is essential for the verification of the code
written during the coding phase and hence, the goal here is to test the internal logic of the modules.
All the units of the system should be tested. Throughout the unit testing some errors were raised
and all of them were corrected and handled well.

INTEGRATION TESTING
Integration means combining many tested module which are later combined into
subsystems, and then tested. The goal is that the modules can be integrated properly, testing
interface between the modules. Integrating testing checks the flow of data from one module to
other modules. This kind of testing is performed by testers.

SYSTEM TESTING
System testing is performed on integrated system. During System testing, the system is
used experimentally to ensure that the software will not fall, i.e. it will run according to its
specification provided with realistic data of the client to check whether the software is working
properly. It tests the overall interaction of components. It involves load, performance, reliability
and security testing. This is a final test to verify that the system meets the user specifications.
ACCEPTANCE TESTING
User acceptance of a system is the success of any system. The system is tested for user
acceptance by constantly keeping in touch with the prospective system. Users at time of
development can make changes whenever required

TEST CASES
 Testing with dummy data: The testing with dummy data went on during all the phases
of the coding. Login Forms, Registration and many other modules that were developed are
tested with the dummy data at every stage.

TEST CASES FOR USER REGISTRATION / SIGNUP

Test case Input data Description Expected Actual Remarks


result result

Registration Fill in the User Registration Not FAIL


of User Username, ID, Registration is successful. registered
Designation Navigate to message
(Student/Faculty), Login Page popup “Fill
and Password. all fields
then Signup”
Click Register
button

Fill in the User Registration Working as PASS


Username, ID, Registration is successful. expected
Designation Navigate to result
(Student/Faculty), Login Page
and Password.

Click Register
button
TEST CASES FOR VALID USER LOGIN

Test case Input data Description Expected Actual result Remarks


result

Checking Enter User Validating User Login valid, it Page not FAIL
login validity Name & Login page will navigate open,
Password to Home page message
then press popup
Login button “Entered
UserName or
Password is
not correct”

Checking Enter User Validating User Login valid, it Working as PASS


login validity Name & Login page will navigate expected
Password to Home page result
then press
Login button

TEST CASES FOR VALID ADMIN LOGIN

Test case Input data Description Expected Actual result Remarks


result

Checking Enter User Validating Login valid, it Page not FAIL


Admin login Name & Admin Login will navigate open,
validity Password page to Home page message
then press of Admin popup
Login button “Entered
Username or
Password is
not correct”

Checking Enter User Validating Login valid, it Working as PASS


Admin login Name & Admin Login will navigate expected
validity Password page to Admin result
then press Home Page
Login button
10. CONCLUSION

11. FUTURE ENHANCEMENTS


The application built is just in the initial phase with basic functionalities. In future much more
related and needed module can be added to make it more usable to the user. The future
enhancements identified as of now includes,

 IOS Application.
 Event Reminder like alarm.
 Attendance system based on wifi direct.

12. BIBLIOGRAPHY
 Professional Android 4 Application Development
 https://developer.android.com/guide
 https://www.tutorialspoint.com/android/index.htm
 https://firebase.google.com/
 https://www.tutorialspoint.com/firebase/index.htm
 https://developer.android.com/reference/android/content/SharedPreferences
 https://www.tutorialspoint.com/android/android_shared_preferences.htm
 https://www.guru99.com/functional-vs-non-functional-requirements.html

You might also like