Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
PRIYANK LATHIYA (222017008)
BATCH (2017 – 20)
UNDER THE GUIDANCE OF:
Mr. FENIL PATEL
AURO UNIVERSITY
SURAT
ACADEMIC YEAR – 2019 - 20
AURO UNIVERSITY, SURAT. 2
CERTIFICATE OF UNERTAKING
_________________
PRIYANK LATHIYA
(222017008)
CERTIFICATE
This is to certify that the project entitled Live World has been carried
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 Mr. Rajiv Katare 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.
- Priyank Lathiya
(222017008)
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 requirement for the implantation of the new system are:
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)
c_name Varchar 15
c_img File
c_type Varchar 30
t_link Varchar 50
view_count Varchar 50
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" />
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
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
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
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_livetv:
Intent itv = new Intent(MainActivity.this, TvChannelActivity.class);
startActivity(itv);
break;
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:
Intent ihelp = new Intent(MainActivity.this, HelpActivity.class);
startActivity(ihelp);
break;
case R.id.nav_aboutus:
Intent iaboutus = new Intent(MainActivity.this,
AboutUsActivity.class);
startActivity(iaboutus);
break;
case R.id.nav_radio:
Intent iradio = new Intent(MainActivity.this, RadioActivity.class);
startActivity(iradio);
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
});
@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;
}
@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
public void onStart() {
super.onStart();
if (Util.SDK_INT > 23) {
initializePlayer();
if (playerView != null) {
playerView.onResume();
}
}
}
@Override
public void onResume() {
super.onResume();
if (Util.SDK_INT <= 23 || player == null) {
initializePlayer();
if (playerView != null) {
playerView.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);
}
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"
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_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;
/**
public HomeFragment() {
// Required empty public constructor
}
SliderView sliderView;
private ArrayList<ImageSliderModel> imageSliderModelList;
private RecyclerView rv_temples;
private ArrayList<TempleModel> templeModellist;
private TextView tv_temples,tv_channels,tv_events;
private RecyclerView rv_channels;
private ArrayList<ChannelModel> channelModellist;
private RecyclerView rv_events;
private ArrayList<EventModel> eventModellist;
private CardView card_radio;
@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();
});
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) {
Intent intent = new Intent(getActivity(), EventsActivity.class);
startActivity(intent);
}
});
card_radio = view.findViewById(R.id.card_radio);
card_radio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity(), RadioActivity.class);
startActivity(i);
}
});
return view;
}
templeModellist.add(model3);
}
}
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.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
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));
RadioModel.java
package com.example.livelify.Radio1;
public RadioModel() {
}
Nav_header_main.xml
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>
<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" />
<item
name="android:windowBackground">@drawable/splash_background</item>
</style>
</resources>
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
public SliderViewHolder onCreateViewHolder(ViewGroup parent) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.slider_item_layout,
parent,false);
return new SliderViewHolder(view);
}
@Override
public void onBindViewHolder(SliderViewHolder viewHolder, int position) {
viewHolder.sliderimageView.setImageResource(imageSliderModelList.get(position).
getSliderImage());
}
@Override
public int getCount() {
return imageSliderModelList.size();
}
}
}
ImageSliderModel.java
package com.example.livelify.ImageSlider1;
int id;
int SliderImage;
public ImageSliderModel() {
}
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;
@Override
public SliderVH onCreateViewHolder(ViewGroup parent) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.slider_item_layout,
parent,false);
return new SliderVH(view);
}
@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() {
}
this.godimage = godimage;
}
}
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;
this.templeModellist = templeModellist;
}
@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
public void onBindViewHolder(@NonNull
TempleRecyclerAdapter.MyViewHolder holder, int position) {
holder.godimage.setImageResource(templeModellist.get(position).getGodimage());
holder.godname.setText(templeModellist.get(position).getGodname());
@Override
public int getItemCount() {
return templeModellist.size();
}
super(itemView);
godimage = itemView.findViewById(R.id.iv_godimage);
godname = itemView.findViewById(R.id.tv_godname);
}
}
}
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.
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.
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.
LIMITATIONS
LIMITATIONS
right, small reasons like meagre quality sound, pixelized video, blackouts,
etc., may damage the company’s reputation.
Failure in advertising can cause considerable losses. The lack of audience
could be a problem if an event is planned solely for an online audience.
Since the internet is an ocean, there is a very little chance that the
unsatisfied audience might come back to your live stream another time. The
chances of them stumbling across the channel is close to zero. So, a huge
amount of work can go on to become waste if anything goes wrong.
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