Summer Internship Training Report
Summer Internship Training Report
REPORT
Submitted To - Submitted By –
Rishab Goel
USICT BTech (CSE), 5th Sem
GGSIPU, Sec-16 C Dwarka 00716403219
Delhi - 110078
DECLARATION
The matter embodied in this project report has not been submitted
by me
or anybody else to any institution for award of any other degree or
diploma except to University School of Information, Communication
&
Technology, for the fulfilment of the requirements for the award
of degree of Bachelors of Technology.
Rishab Goel
00716403219
ACKNOWLEDGEMENT
Rishab Goel
00716403219
CERTIFICATE OF ORIGINALITY
TABLE OF CONTENTS
1. Organization Profile
2. Introduction
3. Applications
4. API(Application User Interface)
5. Diagrams
9. Code/Snapshots
1. Organization Profile
Impact digitech solutions pvt ltd is a Digital Marketing, Website Designing and Software
Development agency based in Pune. It create beautiful brands, websites and cloud
platforms that empower our clients , create results and help them grow.
The work is evidence-based which in turn is powered by strategic innovation to help clients
test, improve, and deliver change to stay ahead of the market.
It don’t just mean commercially, although we will always strive to deliver solutions that are
cost-effective.
2. Introduction
Mobile application development is the process to making software for smartphones and
digital assistants, most commonly for Android and iOS. The software can be preinstalled on
the device, downloaded from a mobile app store or accessed through a mobile web browser.
The programming and markup languages used for this kind of software development include
Flutter,Java, Swift, C# and HTML5.
3. Applications
The importance of mobile phones in our everyday life and activities is undeniably
unending. This is so because there is ongoing tremendous transformation in that
mobile phones are no longer the ordinar y communication device it used to be. It has
become the colossal point of attention for individuals and businesses alike, courtesy
of the various incredible features and opportunities that mobile phones offer. The
cumulative progress of mobile technology, the availability and access to high speed
internet and the remarkable communicative interface in these devices results into a
whole level of new and innovative experience mobile computing. This is made
possible through the development of mobile applications (mobile apps).
Today, the availability of mobile apps is on the increase such that it is produce a
noticeable change in the way humans feel and experience computing. F ew years ago,
in other to access the internet, check and read mails, one had to use th e computer but
today this has changed because computing is now carried everywhere in mobile
phones. Imagine buying a train ticket on the go, this is something our ancestors never
imagined or did. Imagine not going to the bank but still transfer money to family and
friends. All thanks to app developers
and top app development companies. No matter which, they have come to the rescue
enabling easy life.
3. API(APPLICATION
USER INTERFACE)
Types of API
There are mainly four main types of APIs:
Open APIs: These types of APIs are publicly available to use like OAuth
APIs from Google. It has also not given any restriction to use them. So, they
are also known as Public APIs.
Composite APIs: This type of API combines different data and service
APIs.
Communication level of APIs:
Here, are some communication level of APIS:
High-Level APIs:
High-level APIs are those that we can generally use in REST form, where
programmers have a high level of abstraction. These API’s mostly concerned about
performing a limited functionality.
Low-Level APIs:
This kind of APIs has a lower level of abstraction, which means they are more
detailed. It allows the programmer to manipulate functions within an application
module or hardware at a granular level.
2.Client-side:
A client-side web API is a programmatic interface helps to extend
functionality within a web browser or other HTTP client.
Examples of web API:
5. DIAGRAMS
VT Travels app is a solution for the people who travel frequently and struggle to find a single
platform for all travel related information and news.
Often on internet the information is vast unsorted and hard to find the right piece of
information. This consumes the time of people who are looking for the information related to
travel,and often the information is also very old which may not be relevant in today’s time.
User can log into the app and look for the information of various famous cities in different
countries. The information, news and pictures are provided from the server.Information is
well updated, and sorted.
The concept of apis is used in implementing same.From server the data is fetched in xml
format and decrypted to be shown at the user end.
The Firebase Realtime Database is a cloud-hosted database in which data is stored as JSON. The data
is synchronized in real-time to every connected client.
All of our clients share one Realtime Database instances and automatically receive updates with the
newest data, when we build cross-platform applications with our android, iOS, and JavaScript SDKs.
The Firebase Realtime Database is a NoSQL database from which we can store and sync the data
between our users in real-time.
It is a big JSON object which the developers can manage in real-time. By using a single API, the
Firebase database provides the application with the current value of the data and updates to that data.
Real-time syncing makes it easy for our users to access their data from any device, be it web or
mobile.
ER DIAGRAMS
9. CODE/SNAPSHOTS
App structure
VT Travel app
|---app
|---assets
(It contains all resources used in the app like images. )
|---lib
( It contains folders and dart files containing flutter code for the app.)
|---Pubspec.yaml
(It contains packages,dependencies,environment sdk specifications used in project.)
CODE
Main.dart
import 'package:flutter/material.dart';
import 'package:vt_travels/certificates.dart';
import 'package:vt_travels/contact_us.dart';
import 'package:vt_travels/home.dart';
import 'package:vt_travels/visa.dart';
void main() {
runApp(MyApp());
}
@override
Widget build(BuildContext context) {
var color = 0xffDAE0E2;
return MaterialApp(
title: 'VT Travels',
theme: ThemeData(
primarySwatch: Colors.blue,
),
debugShowCheckedModeBanner: false,
home: Home(),
routes: {
Home.id: (context) => Home(),
ContactUs.id: (context) => ContactUs(),
Certificates.id: (context) => Certificates(),
Visa.id: (context) => Visa(),
},
);
}
}
Home.dart
import 'package:flutter/material.dart';
import 'package:vt_travels/griddashboard.dart';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("VT Travels")),
body: Scrollbar(
child: SingleChildScrollView(
child: Column(
children: <Widget>[
SizedBox(
height: 30,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16),
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
children: <Widget>[
User.dart
class User{
final int id;
final String name;
final String email;
final String gender;
final String status;
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'user.dart';
@override
_VisaState createState() => _VisaState();
}
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: tabs.length,
child: Scaffold(
appBar: AppBar(
bottom: const TabBar(
tabs: tabs,
),
),
body: TabBarView(
children: [
FutureBuilder(
future: getData(),
builder: (BuildContext context,
AsyncSnapshot snapshot){
if(snapshot.data==null){
return Text('Loading ...');
}
else {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context,
int index) {
return ListTile(
title:
Text(snapshot.data[index].name),
);
},
);
}
},
),
// SecondScreen(),
Text("Second Screen")
],
),
),
);
}
// FirstScreen() {}
// SecondScreen() {
// Text("Second Screen");
// }
Griddashboard.dart
import 'package:flutter/material.dart';
import 'package:vt_travels/certificates.dart';
import 'package:vt_travels/contact_us.dart';
import 'package:vt_travels/modal/items.dart';
import 'package:vt_travels/visa.dart';
@override
Widget build(BuildContext context) {
/*24 is for notification bar on Android*/
return SingleChildScrollView(
child: GridView.count(
physics: ScrollPhysics(),
shrinkWrap: true,
childAspectRatio: 1.0,
padding: EdgeInsets.only(left: 16, right: 16),
crossAxisCount: 2,
crossAxisSpacing: 18,
mainAxisSpacing: 18,
children: myList.map((data) {
return GestureDetector(
onTap: () {
if (data.onTap == 'ContactUs') {
Navigator.pushNamed(context,
ContactUs.id);
} else if (data.onTap == 'Certificates')
{
Navigator.pushNamed(context,
Certificates.id);
} else if (data.onTap == 'Visa') {
Navigator.pushNamed(context, Visa.id);
}
},
child: Container(
height: 20.00,
width: 20.00,
decoration: BoxDecoration(
color: Color(color),
borderRadius:
BorderRadius.circular(10),
),
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 35,
),
Expanded(
child: Image.asset(
data.img,
width: 60,
),
),
SizedBox(
height: 12,
),
Expanded(
child: Text(data.title,
style: TextStyle(
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.w600,
)),
),
],
),
),
);
}).toList()),
);
}
locationAlertDialog(BuildContext context) {
return showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Our Service Only Available in
Amravati.'),
actions: <Widget>[
MaterialButton(
elevation: 5.0,
child: Text('Call Now'),
onPressed: () {
Navigator.of(context).pop();
// launch("tel://7020699909");
}),
MaterialButton(
elevation: 5.0,
child: Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
}),
],
);
});
}
}
Contact Us.dart
import 'package:flutter/material.dart';
@override
_ContactUsState createState() => _ContactUsState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Contact VT Travels")),
body: Center(
child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
child: Center(
child: Form(
key: key,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: <Widget>[
Hero(
tag: 'logo',
child: Container(
height: 100.0,
child:
Image.asset('assets/logo.png'),
),
),
// Name
SizedBox(
height: 15,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16, top: 16),
child: TextFormField(
initialValue: name,
onSaved: (val) => name =
val.toString(),
validator: (val) =>
val.toString().length == 10
? null
: 'Name is invalid',
decoration: InputDecoration(
labelText: 'Your Name',
hintText: 'Enter Your Name',
icon: Icon(Icons.person),
isDense: true,
border: OutlineInputBorder(),
),
),
),
// email
SizedBox(
height: 15,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16, top: 16),
child: TextFormField(
initialValue: name,
onSaved: (val) => email =
val.toString(),
validator: (val) =>
val.toString().length == 10
? null
: 'email is invalid',
decoration: InputDecoration(
labelText: 'Your Email',
hintText: 'Enter Your Email',
icon: Icon(Icons.email),
isDense: true,
border: OutlineInputBorder(),
),
),
),
// Subject
SizedBox(
height: 15,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16, top: 16),
child: TextFormField(
initialValue: subject,
onSaved: (val) => subject =
val.toString(),
validator: (val) =>
val.toString().length == 10
? null
: 'Subject is invalid',
decoration: InputDecoration(
labelText: 'Your Subject',
hintText: 'Enter Your subject',
icon: Icon(Icons.subject),
isDense: true,
border: OutlineInputBorder(),
),
),
),
// Mobile Number
SizedBox(
height: 15,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16, top: 16),
child: TextFormField(
// maxLines: 4,
initialValue: mobile,
onSaved: (val) => mobile =
val.toString(),
validator: (val) =>
val.toString().length == 10
? null
: 'Mobile number is invalid',
decoration: InputDecoration(
labelText: 'Mobile Number',
hintText: 'Enter mobile Number',
icon: Icon(Icons.phone),
isDense: true,
border: OutlineInputBorder(),
),
),
),
// message
SizedBox(
height: 20,
),
Padding(
padding: EdgeInsets.only(left: 16,
right: 16, top: 16),
child: TextFormField(
maxLines: 4,
initialValue: message,
onSaved: (val) => message =
val.toString(),
validator: (val) =>
val.toString().length > 0
? null
: 'Message can not be empty',
decoration: InputDecoration(
labelText: 'Message',
hintText: 'Enter Message',
icon: Icon(Icons.message),
isDense: true,
border: OutlineInputBorder(),
),
),
),
SizedBox(
height: 10.00,
),
SizedBox(
height: 30,
),
MaterialButton(
color: Colors.blue.shade400,
onPressed: () {
_submitLogin(context);
},
child: Container(
// width: width*0.9,
child: Text(
'Submit',
textAlign: TextAlign.center,
)),
),
SizedBox(
height: 30,
),
// MaterialButton(
// color: Colors.blue.shade400,
// onPressed: () {
// // Navigator.pushNamed(context,
RegistrationMobile.id);
// // Navigator.of(context).push(
// // MaterialPageRoute(
// // builder: (BuildContext
context) =>
// //
RegistrationMobile(otpType: 'register')),
// // );
// },
// child: Container(
// // width: width*0.9,
// child: Text(
// 'Register',
// textAlign: TextAlign.center,
// )),
// ),
],
),
),
),
),
),
);
}
// // String body =
json.encode(registerPayload);
// // http.Response response = await
Services().register(body);
// // // print(json.decode(response.body));
// // print(response.statusCode);
// // final jsonBody =
json.decode(response.body);
// // print("++++++++++++json
body++++++++++++++");
// // if (response.statusCode == 200) {
// // createAlertDialog(context, 'Registration
Successful');
// // // Navigator.pushNamed(context,
LoginScreen.id);
// // } else {
// // print("status code is not 200");
// // // createAlertDialog(context, 'Something
went worng');
// // createAlertDialogForError(context,
'Something went wrong');
// // }
// // Loader on
// // http.Response response = await Services()
// // .validateotp(otp.toString(),
widget.mobileNumber.toString());
// // if (response.body == "true") {
// // print("OTP verify");
// // Navigator.push(
// // context,
// // MaterialPageRoute(
// // builder: (context) =>
Registration(
// // mobileNumber:
widget.mobileNumber,
// // ),
// // ));
// // } else if (response.body == "false") {
// // print("Wrong Otp");
// // }
// }
// else {
// print("Password and confirm password must be
same");
// // createAlertDialogForPassword(
// // context, 'Password and Confirm
Password must be same');
// }
print("Password and confirm password must be
same");
} else {
print("Validate failed");
}
}
}
Certificates.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:gallery_view/gallery_view.dart';
@override
_CertificatesState createState() =>
_CertificatesState();
}
class _CertificatesState extends State<Certificates> {
String _platformVersion = 'Unknown';
final GlobalKey<FormState> key =
GlobalKey<FormState>();
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
// appBar: AppBar(
// title: const Text('Gallery'),
// ),
appBar: AppBar(title: Text("Gallery")),
body: GalleryView(key: key, crossAxisCount: 2,
imageUrlList: [
"http://core.w3trades.com/Content/multimedia/certificat
e/big/asia-sell.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/dubai.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/kenya.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/malaysia.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/south-africa.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/switzerland.jpg",
"http://core.w3trades.com/Content/multimedia/certificat
e/big/thailand.jpg",
// "https://images.unsplash.com/photo-
1523719185231-aff40a400361?ixlib=rb-
1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=8
00&q=60",
]),
);
}
}
Items.dart
class Items {
String title;
String img;
String onTap;
Items({this.title = '', this.img = '', this.onTap =
''});
}
Snapshots