Department of Computer Applications, BMSCE
Department of Computer Applications, BMSCE
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
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
B Requirement Analysis A 2
C Designing B 4
D Coding B 6
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:
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
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
SOFTWARE REQUIREMENTS
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
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>
</head>
<body class="login-page">
</html>
Dashboard-menu.php
<?php
?>
<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
include '../includes/config.php';
$fields = array_keys( $data );
$values = array_map(array($connect, 'real_escape_string'), array_values($data) );
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 ";
?>
FRONTEND
mainActivity.java
package com.app.androidnewsapp.activities;
import android.content.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);
}
}
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);
}
} 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();
}
}
};
if (message != 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);
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);
@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.
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.
Click Register
button
TEST CASES FOR VALID USER LOGIN
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”
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