PROJECT REPORT
ON
LIVE WORLD
DOMINENT INFOTECH.
PROJECT REPORT SUBMITTED IN THE
PARTIAL FULFILLMENT FOR THE
DEGREE OF
BACHELOR OF SCIENCE
IN
INFORMATION TECHNOLOGY
SUBMITTED
BY
DHRUVIK VIRANI (212017017)
BATCH (2017 – 20)
UNDER THE GUIDANCE OF:
Mr. FENIL PATEL
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2019 - 20
CERTIFICATE OF UNERTAKING
_________________
DHRUVIK VIRANI
(212017017)
SCHOOL OF INFORMATION TECHNOLOGY
CERTIFICATE
This is to certify that the project entitled Live World has been carried out
Team:
Date:
Place: Surat
This project consumed huge amount of work, research and dedication. Still,
implementation would not have been possible without having support of many
individuals and organization. Therefore, I would like to extend our sincere gratitude to
all of them.
I take this opportunity to express a deep sense of gratitude to DOMINENT INFOTECH.
and AURO University for their cordial support, valuable information and guidance,
which helped has helped me in completing this task through various stages.
I take this opportunity to express my profound gratitude and deep regards to my mentor
Dr. Sunil Kumar for his exemplary guidance, monitoring and constant encouragement
throughout the course of this project. The blessing, help and guidance given by him
time to time shall carry us a long way in the journey of life on which I am about to
embark.
I thank my leader Mr. Fenil Patel for providing us with this amazing live project which
helped us learning the various aspects in actual industry and it has also given us valuable
insights which will help me in my near future. I hope I have fulfilled all the requirements
as specified by them and provided them with software which will help them to ease
their day-to-day operations.
I am obliged to all members of DOMINENT INFOTECH., for the valuable information
provided by them in their respective fields. I am grateful for their cooperation during
the duration of my project.
Lastly, I thank almighty, my parents, brothers, sisters and friends for their constant
encouragement without which this project would not be possible.
- Dhruvik Virani
(212017017)
CONTENTS
5. System Design:
5.1 Flow Chart 9-13
5.2 Data Flow Diagram
5.3 Entity–Relationship Diagram
6. Interface Design:
6.1 Front-End Screenshots 14-24
6.2 List of Database Tables
6.3 Back-End Screenshots
9. Limitations 87-88
INTRODUCTION OF PROJECT
INTRODUCTION OF PROJECT
Innovation now a days is an up and coming field wherein greater part of data can be put
away and gotten to without any problem.
Recall those shriveling Friday evenings when you needed to prod through an ocean of
Torrent connects to get locate the correct nature of your preferred American TV
arrangement or Bollywood film? We Indians are not star theft just that we have no other
however to download pilfered substance of western diversion content. Be that as it may,
gone are those days as we Indians would now be able to observe probably the most
looked for after shows simultaneously when they get discharged in different pieces of
the world. I have developed an application of the same so as to make the availability of
free movies and web series accessible to the users.
Video Streaming and broadband associations help clients around the world download
and watch huge video documents from the solace of their homes. Exploiting this
innovation, the American organization Netflix propelled a video gushing site on 2009
where clients could watch the latest Television scenes and Hollywood Blockbusters.
Netflix changed substance utilization models in media outlets and prompted the
vanishing of the standard video rental store in North America.
For today’s audiences it’s all about immediacy and mobility, the content they are
looking for must be just a click away to fit their needs. Now everything is possible.
Maybe you want to watch an episode of your favorite show when you are traveling, or
maybe each member of your family wants to watch something different in a separate
room of the house.
All of these demands are being fulfilled with the help of video streaming as well as the
proliferation of devices that gives the user access to it. Now if you want to play movies,
music or watch an episode of your favorite TV show you can easily do it wherever you
may be.
The main function or we can say aim of this project is that, people don’t have to search
the web for any kind of movies or events and that can be found in one application.
So, through this software we have tried to fulfil all the requirements specified by our
client and we have done our best to give them with user friendly software.
The scope of this report is to provide a brief, although hopefully useful, guide to
architectural documentation.
Computer system is made up of units that are put together to work as one in order to
achieve a common goal.
The Hardware
The Software
Hardware Requirement:
OBJECTIVE OF SOFTWARE
OBJECTIVE OF SOFTWARE
The main objective of this document is to illustrate the requirements of the project Live
World. The document gives detailed description of both functional and non-functional
requirements proposed by client.
The purpose of this project is to provide friendly environment and also to see to it that
the user is able to watch the program without buffering and can watch the same program
from where the user has left and to check all operations are performed smoothly.
The main purpose of this project is to give a stage from where a user can watch movies,
web series, live events, listen to music and radio.
This can be achieved as technology has come into the picture and it will not only lead
to faster handling as user will not have to search on web for all this programs and they
will get notified if they have subscribed for that event.
Major Objectives: -
To ensure Authentic and uninterrupted services.
FEASIBILITY STUDY
FEASIBILITY STUDY
SYSTEM DESIGN
SYSTEM DESIGN
5.1 FLOW CHART
PROJECT FLOW
DESCRIPTION
The two main entities in our software are as follow: -
o USER
o ADMIN
So, in 0––-level DFD we elaborate all the entities through processes, input flow and
output flow.
1-LEVEL
DESCRIPTION
Processes:
PROCESS 1.0 TEMPLE –
User can watch various temples and can do live darshan on app.
PROCESS 2.0 CHANNEL –
User can watch various tv channel.
PROCESS 3.0 EVENTS–
User can stream and watch various events like live matches & games going on anywhere
in the world.
PROCESS 4.0 RADIO –
User can also listen to radio channels.
I have also attached the pdf copy of dfd level 1 as it was not able to fit here.
1. tbl_temple
2. tbl_channel
3. tbl_events
4. tbl_radio
5. tbl_home
h_id (PRIMARY KEY), t_id (FOREIGN KEY), c_id (FOREIGN KEY), e_id
(FOREIGN KEY), r_id (FOREIGN KEY).
INTERFACE DESIGN
INTERFACE DESIGN
SPALSH SCREEN
EXPLAINATION
- This is splash screen with animation which will be display every time
the user runs the app.
Fig (I)
HOME PAGE
EXPLAINATION
- This is the home page for all users for our software.
- The home page will display the image slider in which the new arrivals will be
displayed.
- Then the next will be temples and we can view more temples by clicking on
view all.
- Then the next will be channels and we can view more channels by clicking on
view all.
- Then the next will be events and we can view more events by clicking on view
all.
Fig(II)
TEMPLE PANEL
EXPLANATION
- This is the Temple page for all users for our software.
- Here user will get all the details of temples according to the lords.
- After that live video can be watched.
Fig (I)
Fig (V)
CHANNEL PANEL
EXPLAINATION
- This is the Channel page for all users for our software.
- Here user will get all the details of channels according to the type.
- Then the user has to select the particular channel.
- After that live video can be watched.
Fig (V)
EVENT PANEL
EXPLANATION
- This is the Event page for all users for our software.
- Here user will get all the details of events according to the type.
- Then the user has to select the particular events.
- After that live video can be watched.
Fig (VI)
Fig(VI)
RADIO PANEL
EXPLANATION
- This is the radio page for all users for our software.
- Here user will get all the details of radio according to the type.
- Then the user has to select the particular events.
- After that live video can be watched.
Fig (VII)
HELP PANEL
Fig (VII)
Fig(VIII)
CONTACT US PANEL
Fig (IX)
SOURCE CODE
SOURCE CODE
AndroidMenifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.livelify">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ExoplayerActivity"
android:configChanges
="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|
uiMode">
</activity>
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity
android:name=".Radio1.RadioActivity"
android:label="@string/Radioactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".HelpActivity"
android:label="@string/helpactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".AboutUsActivity"
android:label="@string/aboutusactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".LanguageActivity"
android:label="@string/languageactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".Events1.EventsActivity"
android:label="@string/eventactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".TvChannel1.TvChannelActivity"
android:label="@string/tvchannelactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".Temple1.TempleActivity"
android:label="@string/templeactivity_name"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"></activity>
</application>
</manifest>
Gradle.build (Gradle)
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.example.livelify"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'com.google.android.material:material:1.2.0-alpha05'
implementation 'com.github.smarteist:autoimageslider:1.3.5'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha02'
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
implementation 'com.google.android.exoplayer:exoplayer:2.11.4'
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:id="@+id/nav_host_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation_menu"
android:background="#ffffff"
app:itemIconTint="@drawable/bottom_nav_animation"
app:itemTextColor="@drawable/bottom_nav_animation"
/>
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>
MainActivity.java
package com.example.livelify;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import com.example.livelify.Bottomnavigation.FavoriteFragment;
import com.example.livelify.Bottomnavigation.HomeFragment;
import com.example.livelify.Bottomnavigation.NotificationFragment;
import com.example.livelify.Bottomnavigation.SearchFragment;
import com.example.livelify.Events1.EventsActivity;
import com.example.livelify.Radio1.RadioActivity;
import com.example.livelify.Temple1.TempleActivity;
import com.example.livelify.TvChannel1.TvChannelActivity;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.navigation.NavigationView;
@Override
drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
bottom_nav = findViewById(R.id.bottom_nav);
bottom_nav.setOnNavigationItemSelectedListener(new
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_home:
getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
new HomeFragment()).commit();
return true;
case R.id.nav_search:
getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
new SearchFragment()).commit();
return true;
case R.id.nav_notification:
getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
new NotificationFragment()).commit();
return true;
case R.id.nav_favorite:
getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
new FavoriteFragment()).commit();
return true;
}
return false;
}
});
// bottom_nav.setSelectedItemId(R.id.nav_home);
if (savedInstanceState == null){
getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,
new HomeFragment()).commit();
navigationView.setCheckedItem(R.id.nav_home);
}
navigationView.setNavigationItemSelectedListener(new
NavigationView.OnNavigationItemSelectedListener() {
@Override
case R.id.nav_events:
Intent ievent = new Intent(MainActivity.this, EventsActivity.class);
startActivity(ievent);
break;
case R.id.nav_languages:
Intent ilanguage = new Intent(MainActivity.this,
LanguageActivity.class);
startActivity(ilanguage);
break;
case R.id.nav_temples:
Intent itemple = new Intent(MainActivity.this, TempleActivity.class);
startActivity(itemple);
break;
case R.id.nav_help:
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
});
R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
}
@Override
public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
Exoplayer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ExoplayerActivity"
android:orientation="vertical"
android:keepScreenOn="true">
<com.google.android.exoplayer2.ui.PlayerView
android:background="#000000"
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="220dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:id="@+id/tv_title"
android:text="Heading Here"
android:textSize="15dp"
android:textColor="@android:color/black"/>
</LinearLayout>
ExoplayerActivity.java
package com.example.livelify;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.LinearLayout;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
"https://commondatastorage.googleapis.com/gtv-videos-
bucket/sample/BigBuckBunny.mp4";
private PlayerView playerView;
private SimpleExoPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
playerView = findViewById(R.id.player_view);
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,Wind
owManager.LayoutParams.FLAG_FULLSCREEN);
//First Hide other objects (listview or recyclerview), better hide them using
Gone.
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
playerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=params.MATCH_PARENT;
playerView.setLayoutParams(params);
} else if (newConfig.orientation ==
Configuration.ORIENTATION_PORTRAIT){
//unhide your objects here.
getSupportActionBar().show();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
playerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=600;
playerView.setLayoutParams(params);
}
}
@Override
}
}
}
@Override
public void onResume() {
super.onResume();
@Override
public void onPause() {
super.onPause();
if (Util.SDK_INT <= 23) {
if (playerView != null) {
playerView.onPause();
}
releasePlayer();
}
}
@Override
public void onStop() {
super.onStop();
if (Util.SDK_INT > 23) {
if (playerView != null) {
playerView.onPause();
}
releasePlayer();
}
DataSource.Factory dataSourceFactory =
new DefaultDataSourceFactory(
this, Util.getUserAgent(this, getString(R.string.app_name)));
MediaSource mediaSource =
new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(DEFAULT_MEDIA_URI));
player.prepare(mediaSource);
player.setPlayWhenReady(true);
}
if (player != null) {
player.release();
player = null;
}
}
}
Activity_splash.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SplashActivity"
android:orientation="vertical"
>
</LinearLayout>
SplashActivity.java
package com.example.livelify;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Fragment_home.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".Bottomnavigation.HomeFragment"
android:paddingBottom="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
app:cardCornerRadius="6dp"
android:layout_margin="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.smarteist.autoimageslider.SliderView
android:id="@+id/imageSlider"
android:layout_width="match_parent"
android:layout_height="250dp"
app:sliderAnimationDuration="600"
app:sliderAutoCycleDirection="right"
app:sliderAutoCycleEnabled="true"
app:sliderIndicatorAnimationDuration="600"
app:sliderIndicatorGravity="center_horizontal|bottom"
app:sliderIndicatorMargin="15dp"
app:sliderIndicatorOrientation="horizontal"
app:sliderIndicatorPadding="3dp"
app:sliderIndicatorRadius="2dp"
app:sliderIndicatorSelectedColor="#5A5A5A"
app:sliderIndicatorUnselectedColor="#FFF"
app:sliderScrollTimeInSec="3"
app:sliderStartAutoCycle="true" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Temples"
android:layout_marginLeft="17dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_temples"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View all >"
android:layout_marginRight="17dp"
android:layout_weight="1"
android:gravity="end" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rv_temples"
android:orientation="horizontal"
android:scrollbars="none"
android:layout_marginRight="17dp"
android:layout_marginLeft="17dp"
android:padding="5dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp"
android:layout_marginBottom="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Channels"
android:layout_marginLeft="17dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_channels"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View all >"
android:layout_marginRight="17dp"
android:layout_weight="1"
android:gravity="end" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rv_channels"
android:orientation="horizontal"
android:scrollbars="none"
android:layout_marginRight="17dp"
android:layout_marginLeft="17dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="3dp"
android:layout_marginTop="15dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Events"
android:layout_marginLeft="17dp"
android:layout_weight="1"/>
<TextView
android:id="@+id/tv_events"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rv_events"
android:orientation="horizontal"
android:scrollbars="none"
android:layout_marginRight="17dp"
android:layout_marginLeft="17dp"/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="250dp"
app:cardElevation="10dp"
android:translationZ="5dp"
android:layout_margin="17dp"
app:cardCornerRadius="5dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/corona"
/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_radio"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="230dp"
android:translationZ="10dp"
android:layout_margin="17dp"
app:cardCornerRadius="5dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/radiohome"
/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="17dp"
android:translationZ="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Holy Places are Broadcast for free"
android:textColor="@android:color/black"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="15dp"
android:textStyle="bold"
/>
<TextView
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:gravity="start|top"
android:inputType="textMultiLine"
android:text="@string/app_contact"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</ScrollView>
HomeFragment.java
package com.example.livelify.Bottomnavigation;
import android.content.Intent;
import android.os.Bundle;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.livelify.Events1.EventsActivity;
import com.example.livelify.Radio1.RadioActivity;
import com.example.livelify.TvChannel1.ChannelModel;
import com.example.livelify.TvChannel1.ChannelRecyclerAdapter;
import com.example.livelify.Events1.EventModel;
import com.example.livelify.Events1.EventRecyclerAdapter;
import com.example.livelify.ImageSlider1.ImageSliderAdapter;
import com.example.livelify.ImageSlider1.ImageSliderModel;
import com.example.livelify.R;
import com.example.livelify.Temple1.TempleActivity;
import com.example.livelify.Temple1.TempleModel;
import com.example.livelify.Temple1.TempleRecyclerAdapter;
import com.example.livelify.TvChannel1.TvChannelActivity;
import com.smarteist.autoimageslider.IndicatorAnimations;
import com.smarteist.autoimageslider.SliderAnimations;
import com.smarteist.autoimageslider.SliderView;
import java.util.ArrayList;
/**
* A simple {@link Fragment} subclass.
*/
public HomeFragment() {
// Required empty public constructor
}
SliderView sliderView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
sliderView = view.findViewById(R.id.imageSlider);
getImageSlider();
ImageSliderAdapter imageSliderAdapter = new
ImageSliderAdapter(HomeFragment.this,imageSliderModelList);
sliderView.setSliderAdapter(imageSliderAdapter);
sliderView.startAutoCycle();
sliderView.setIndicatorAnimation(IndicatorAnimations.WORM);
sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMA
TION);
rv_temples = view.findViewById(R.id.rv_temples);
rv_channels = view.findViewById(R.id.rv_channels);
rv_events = view.findViewById(R.id.rv_events);
getChannelDetails();
getTempleDetails();
getEventDetails();
rv_temples.setLayoutManager(new LinearLayoutManager(getContext(),
LinearLayoutManager.HORIZONTAL, false));
tv_channels = view.findViewById(R.id.tv_channels);
tv_events = view.findViewById(R.id.tv_events);
tv_temples.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), TempleActivity.class);
startActivity(intent);
}
});
tv_channels.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), TvChannelActivity.class);
startActivity(intent);
}
});
tv_events.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
card_radio = view.findViewById(R.id.card_radio);
card_radio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
return view;
}
model.setId(1);
model.setSliderImage(R.drawable.coronaliveupdate);
imageSliderModelList.add(model);
ImageSliderModel model1 = new ImageSliderModel();
model1.setId(2);
model1.setSliderImage(R.drawable.livedarshan);
imageSliderModelList.add(model1);
model.setEventname("Sports");
eventModellist.add(model);
model1.setEventname("Music");
eventModellist.add(model1);
model1.setChannelname("Aaj Tak");
channelModellist.add(model1);
ChannelModel model2 = new ChannelModel();
model2.setId(3);
model2.setChannelimage(R.drawable.lakshya);
model2.setChannelname("Lakshya TV");
channelModellist.add(model2);
model.setId(1);
model.setGodimage(R.drawable.shiva);
model.setGodname("Lord Shiva");
templeModellist.add(model);
model1.setId(2);
model1.setGodimage(R.drawable.ganesha);
model1.setGodname("Lord Ganesha");
templeModellist.add(model1);
}
}
Layout_events
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:elevation="20dp"
android:layout_marginRight="7.5dp"
android:layout_marginLeft="7.5dp"
android:layout_marginBottom="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="5dp"
android:translationZ="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="140dp"
android:layout_height="160dp"
android:id="@+id/iv_eventimage"
android:scaleType="centerCrop"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextAppearance.AppCompat.Subhead"
android:textStyle="bold"
android:id="@+id/tv_eventname"
android:textColor="#000000"
android:fontFamily="cursive"
android:layout_gravity="center"
android:textSize="20dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
RadioRecyclerAdapter
package com.example.livelify.Radio1;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.livelify.R;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@NonNull
@Override
public RadioRecyclerAdapter.MyViewHolder onCreateViewHolder(@NonNull
ViewGroup parent, int viewType) {
View view =
LayoutInflater.from(radioActivity).inflate(R.layout.layout_radio,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RadioRecyclerAdapter.MyViewHolder
holder, int position) {
holder.radioname.setText(radiolist.get(position).getRadio_channel());
@Override
public int getItemCount() {
return radiolist.size();
}
}
}
RadioActivity.java
package com.example.livelify.Radio1;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import com.example.livelify.R;
import java.util.ArrayList;
toolbar.setNavigationIcon(R.drawable.ic_back);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
});
rv_radio = findViewById(R.id.rv_radio);
getRadioDetails();
RadioRecyclerAdapter radioRecyclerAdapter = new
RadioRecyclerAdapter(RadioActivity.this,radiolist);
rv_radio.setAdapter(radioRecyclerAdapter);
rv_radio.setLayoutManager(new
LinearLayoutManager(RadioActivity.this,LinearLayoutManager.VERTICAL,false));
rv_radio.addItemDecoration(new
DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
radiolist.add(model);
RadioModel model1 = new RadioModel();
model1.setId(2);
model1.setRadio_channel("Big FM 92.7");
radiolist.add(model1);
RadioModel model2 = new RadioModel();
model2.setId(3);
model2.setRadio_channel("Radio City 91.1");
radiolist.add(model2);
RadioModel model3 = new RadioModel();
model3.setId(4);
model3.setRadio_channel("Red FM 93.5");
radiolist.add(model3);
RadioModel model4 = new RadioModel();
model4.setId(5);
model4.setRadio_channel("MY FM 94.3");
radiolist.add(model4);
RadioModel model5 = new RadioModel();
model5.setId(6);
model5.setRadio_channel("AIR Akashvani 101.1");
radiolist.add(model5);
RadioModel model6 = new RadioModel();
model6.setId(7);
model6.setRadio_channel("Fever 104 FM");
radiolist.add(model6);
RadioModel model7 = new RadioModel();
model7.setId(8);
model7.setRadio_channel("Radio Mango 91.9");
radiolist.add(model7);
RadioModel model8 = new RadioModel();
model8.setId(9);
}
}
RadioModel.java
package com.example.livelify.Radio1;
int id;
String radio_channel;
public RadioModel() {
}
Nav_header_main.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="176dp"
android:background="@drawable/side_nav_bar"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:gravity="bottom">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
app:srcCompat="@mipmap/ic_launcher_round"
android:contentDescription="Navigation Header"
android:id="@+id/imageView" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="User Name"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="User.name@mail.com"
android:id="@+id/textView" />
</LinearLayout>
Bottom_navigation_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_home"
android:title="Home"/>
<item
android:id="@+id/nav_search"
android:icon="@drawable/ic_search"
android:title="Search"/>
<item
android:id="@+id/nav_notification"
android:icon="@drawable/ic_notifications"
android:title="Notification"/>
<item
android:id="@+id/nav_favorite"
android:icon="@drawable/ic_favorite_black_24dp"
android:title="Favorites"/>
</menu>
Activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_temples"
android:icon="@drawable/ic_temples"
android:title="Temples" />
<item
android:id="@+id/nav_livetv"
android:icon="@drawable/ic_livetv"
android:title="Live TV" />
<item
android:id="@+id/nav_events"
android:icon="@drawable/ic_event"
android:title="Events" />
<item
android:id="@+id/nav_radio"
android:icon="@drawable/ic_radio"
android:title="Radio" />
<item
android:id="@+id/nav_languages"
android:icon="@drawable/ic_language_black_24dp"
android:title="Languages" />
<item
android:id="@+id/nav_help"
android:icon="@drawable/ic_help"
android:title="Help" />
<item
android:id="@+id/nav_aboutus"
android:icon="@drawable/ic_aboutus"
android:title="About Us" />
</group>
</menu>
Styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>
Styles1.xml
<resources>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay"
parent="ThemeOverlay.AppCompat.Light" />
Layout_temple.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<androidx.cardview.widget.CardView
android:layout_marginRight="7.5dp"
android:layout_marginLeft="7.5dp"
android:layout_marginBottom="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="5dp"
android:translationZ="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="140dp"
android:layout_height="160dp"
android:id="@+id/iv_godimage"
android:scaleType="centerCrop"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:id="@+id/tv_godname"
android:textColor="#000000"
android:fontFamily="cursive"
android:layout_gravity="center"
android:textSize="20dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
Layout_temple_grid.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.cardview.widget.CardView
android:layout_marginRight="7dp"
android:layout_marginLeft="7dp"
android:layout_marginBottom="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="5dp"
android:translationZ="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="140dp"
android:layout_height="160dp"
android:id="@+id/iv_god_image"
android:scaleType="centerCrop"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:id="@+id/tv_god_name"
android:textColor="#000000"
android:fontFamily="cursive"
android:layout_gravity="center"
android:textSize="20dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
Imageslideradapter.java
package com.example.livelify.ImageSlider1;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.livelify.Bottomnavigation.HomeFragment;
import com.example.livelify.R;
import com.smarteist.autoimageslider.SliderViewAdapter;
import java.util.ArrayList;
import java.util.List;
HomeFragment homeFragment ;
ArrayList<ImageSliderModel> imageSliderModelList;
@Override
@Override
viewHolder.sliderimageView.setImageResource(imageSliderModelList.get(position).
getSliderImage());
}
@Override
ImageSliderModel.java
package com.example.livelify.ImageSlider1;
int id;
int SliderImage;
public ImageSliderModel() {
}
this.id = id;
}
TempleISAdapter.java
package com.example.livelify.Temple1;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.livelify.MainActivity;
import com.example.livelify.R;
import com.smarteist.autoimageslider.SliderViewAdapter;
import java.util.ArrayList;
ArrayList<TempleISModel> TempleISList;
TempleISList = templeISList;
}
@Override
public SliderVH onCreateViewHolder(ViewGroup parent) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.slider_item_layout,
parent,false);
@Override
public void onBindViewHolder(SliderVH viewHolder, int position) {
viewHolder.sliderimageView.setImageResource(TempleISList.get(position).getTempl
eimage());
@Override
public int getCount() {
return TempleISList.size();
}
TempleIsModel.java
package com.example.livelify.Temple1;
public TempleISModel() {
TempleModel.java
package com.example.livelify.Temple1;
int id;
String godname;
int godimage;
public TempleModel() {
TempleRecyclerAdapter.java
package com.example.livelify.Temple1;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.livelify.Bottomnavigation.HomeFragment;
import com.example.livelify.R;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@NonNull
@Override
public TempleRecyclerAdapter.MyViewHolder onCreateViewHolder(@NonNull
ViewGroup parent, int viewType) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_temple,parent,false);
return new MyViewHolder(view);
}
@Override
holder.godimage.setImageResource(templeModellist.get(position).getGodimage());
holder.godname.setText(templeModellist.get(position).getGodname());
@Override
public int getItemCount() {
return templeModellist.size();
}
}
}
}
As the number of possible tests for even simple software components is practically
infinite, all software testing uses some strategy to select tests that are feasible for the
available time and resources. As a result, software testing typically (but not exclusively)
attempts to execute a program or application with the intent of finding software bugs
(errors or other defects). The job of testing is an iterative process as when one bug is
fixed, it can illuminate other, deeper bugs, or can even create new ones.
Software testing can provide objective, independent information about the quality of
software and risk of its failure to users or sponsors.
Software testing can be conducted as soon as executable software (even if partially
complete) exists. The overall approach to software development often determines when
and how testing is conducted. For example, in a phased process, most testing occurs
after system requirements have been defined and then implemented in testable
programs. In contrast, under an agile approach, requirements, programming, and testing
are often done concurrently.
UNIT TESTING
Unit testing is testing of individual software components or modules .
1. TITLE: Temple
TEST STEPS:
1) By clicking on the temple button user can be able to see different temples.
2) By clicking on sub-category of temple user will able to see live preview
3) Click on temple button.
EXPECTED RESULTS: User must be able to preview live video of that
temple.
TEST STEPS:
1) By clicking on the channel button user can be able to see different channels.
2) By clicking on sub-category of channel user will able to see live preview of
that channel.
3) Click on channel button.
TEST STEPS:
1) By clicking on the event button user goes to sub-category page.
2) By clicking the event in sub-category user will go to streaming player.
3) Click on preview button.
EXPECTED RESULTS: User must be able to watch the event that is going
on.
TEST STEPS:
1) By clicking on the radio the user goes to radio activity page.
2) Click on Radio channel.
INTEGRATION TESTING
Testing of integrated modules to verify combined functionality after
integration.
TITLE: Whole App
DESCRIPTION: As we have integrated Temples, Channel, Evnets and
Radio which can be accessed from a single app.
PRE-CONDITION: User must be able to listen radio, watch channels,
temples and events.
TEST STEPS:
1) By clicking on different buttons i.e. Temple, Channel, Event, Radio.
2) User should be able to check the sub-category of primary category
(i.e. temple, channel, event, radio).
3) User should access the video player.
4) Click on player button.
EXPECTED RESULT: If user selects the temple user must be able to watch
video of that temple, if user selects the channel user must be able to watch
video of that channel, if user selects the event user must be able to watch
video of that event, if user selects the radio user must be able to listen radio
channel.
ACTUAL RESULT: All the testing according to which are stated and all
of them worked as specified.
LIMITATIONS
LIMITATIONS
FUTURE ENHANCEMENTS
FUTURE ENHANCEMENTS
The project objective has to be achieved pertaining to the Time Constraint and
Monetary constraint applied in accordance with the defined functionality of the
system. However, features that are not included in the system can be considered as
future enhancements. The limiting areas of the project contributing for enhancement
thus are as follows, namely,
CONCLUSION
CONCLUSION
With this undertaking I came to know numerous things about society tasks. As
an android engineer I would now be able to recognize a portion of the
fundamental gadgets that are required to make any extend.
Soon next to our relegated venture we were given work on a live undertaking, I
surmise our application would have the option to have a beneficial outcome in
the public eye the executives.
So, we trust that we have furnished them with all the offices according to their
prerequisites and have furnished them with the most ideal programming and it
may help in filling their heart with joy to-day advances without any problem.
BIBLIOGRAPHY
BIBLIOGRAPHY
developer.android.com
Developer.paytm.com
Simplifiedcoding.com
youtube.com/codingwithmitch
Stackoverflow.com
Androidhive.com
Javatpoint.com
github .com