Mad Microprojet
Mad Microprojet
2505 CO-1
HARSHAD MUNDHE
2546 CO-II
SANKET SUPEKAR
2570 CO-III
TEJASWEE THORAT
2571 CO-III
SHARVARI WADEKAR
Mrs.P.P.Bastawade
1
Certified that this micro-project report titled “Weather Application in Android” is the Bonafide work
of
1. Mr. Harshad Mundhe Roll No: 2505
2. Mr. Sanket Supekar Roll No: 2546
3. Mr. Tejaswee Thorat Roll No: 2570
4. Mr. Sharvari Wadekar Roll No: 2571
of Third year diploma in Information Technology for the Course,: Mobile Application Development
Course code: 22617 during the academic year 2024-25, who carried out the micro project work
under my supervision.
Mrs.P.P.Bastawade
Name & signature of Course Teacher
2
ACKNOWLEDGEMENT
We would like to express our special gratitude to our guide Mrs.P.P.Bastawade who gave us the golden
opportunity to do this wonderful micro project on the topic “Weather Application in Android” which
also helped us in doing experimentation to micro project and we came to know about so many new
things, we are really thankful to them. We would also like to thank our parents and colleagues who
helpedus a lot in finalizing this micro project within the limited time frame.
Roll No Name
2505 Harshad Mundhe
2546 Sanket Supekar
2570 Tejaswee Thorat
2571 Sharvari wadekar
3
ALL INDIA SHRI SHIVAJI MEMORIAL SOCIETY’S POLYTECHNIC, PUNE -1
VISION:
MISSION:
M1: Empower the students by inculcating various technical and soft skills.
Vision
Mission
M1: To confer the technical education and skills required for IT field
4
ALL INDIA SHRI SHIVAJI MEMORIAL SOCIETY’S POLYTECHNIC, PUNE -1
5
INDEX
1. Annexure I 7-9
2. Annexure II 10 - 27
3. Annexure III 28 - 29
4. Log Book 33
6. Evaluation Sheet 35
6
Annexure-I
Micro-Project Proposal
Title of Micro-Project: Weather Application in Android
1.0 Aims/Benefits of the Micro-Project
Aim:-
The aim is to basic Mobile Application Development principles to execute daily activities. We Use
principles of
planning and organizing for accomplishment of tasks.
Benefits: -
Guide us to report the daily weather application that will helps us in day to day life.
2.0 Course Outcomes Addressed
CO22617.a:Interprete features of Android operating system.
CO22617.d:Use User Interface components for android using application deployment.
CO22617.e: Create Android Application using Database.
3.0 Proposed Methodology
1. Arrangement of groups and representatives for groups that are not usually represented as
partners in main projects.
2. Capacity building and networking in relation to the role as partners in micro
projects. 3.Collected materials related to project.
4.Support development of more need and user driven projects.
5.Contribute to the maximum requirements of project.
6. An eligible project idea addressing one of the four Priority Axes and a work plan for a
micro project including a description of how the capacity building and networking should
take place.
7. The project involves maximum five partners. From five partners, the contributions of micro
project are distributed.
8. An eligible Lead member who will guide the group members and analyzed the data.
9. Eligible match finding the proper
information. 10.Softcopy corrections by
respective teachers. 11.Completion of the micro
project properly.
12.Final copy and submission.
4.0 Action Plan
11
4. Drafting Proposals 23-01-25 23-01-25 Harshad Mundhe
5. Proposal submission 29-01-25 29-01-25 All Members
6. Micro project Proposal Presentation 05-02-25 05-02-25 Harshad Mundhe
7. Making Changes in presentation, if 16-02-25 16-02-25 Sanket Supekar
suggested by concerned teacher
8 Executing Micro-Project: Study from 26-02-25 26-02-25 Sanket Supekar
different resources
9. Executing Micro-Project: Collect 01-03-25 01-03-25 All Members
information from studied resources
10. Executing Micro-Project: Arrange 04-03-25 04-03-25 Tejaswee Thorat
collected information
11. Executing Micro project 11-03-25 11-03-25 All Members
12. Drafting Methodology 15-03-25 15-03-25 Tejaswee Thorat
13. Drafting Literature Review 18-03-25 18-03-25 Tejaswee Thorat
14. Drafting Result, Discusser 22-03-25 22-03-25 Sharvari wadekar
15. Micro project Presentation 30-03-25 30-03-25 All Members
16. Micro Project final submission 01-04-25 01-04-25 All Members
CODE-
XML FILE:
<EditText
android:id="@+id/etCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter city name"
android:inputType="text"
android:padding="10dp"/>
<Button
android:id="@+id/btnGetWeather"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get Weather"/>
<TextView
android:id="@+id/tvWeather"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Weather Info"
android:textSize="18sp"
android:gravity="center"
android:padding="20dp"/>
</LinearLayout>
MainActvity.java
package com.xxy.weatherapp;
import android.Manifest;
import android.annotation.SuppressLint; import
android.app.Activity;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.speech.RecognizerIntent; import
android.util.Log;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
importandroidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonObjectRequest; import
com.android.volley.toolbox.Volley;
import com.aniketjain.weatherapp.adapter.DaysAdapter;
import com.aniketjain.weatherapp.databinding.ActivityHomeBinding;
import com.aniketjain.weatherapp.location.LocationCord;
import com.aniketjain.weatherapp.toast.Toaster;
import com.aniketjain.weatherapp.update.UpdateUI;
import com.aniketjain.weatherapp.url.URL;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.play.core.appupdate.AppUpdateInfo; import
com.google.android.play.core.appupdate.AppUpdateManager;
import com.google.android.play.core.appupdate.AppUpdateManagerFactory; import
com.google.android.play.core.install.model.AppUpdateType;
import com.google.android.play.core.install.model.UpdateAvailability;
import com.google.android.play.core.tasks.Task;
import org.json.JSONException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Locale; import java.util.Objects;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// binding
binding = ActivityHomeBinding.inflate(getLayoutInflater()); View
view = binding.getRoot();
setContentView(view);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
{ super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_EXTRA_INPUT)
{ if (resultCode == RESULT_OK && data != null) {
ArrayList<String> arrayList =
data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
binding.layout.cityEt.setText(Objects.requireNonNull(arrayList).get(0).toUpperCase());
searchCity(binding.layout.cityEt.getText().toString());
}
}
}
@SuppressLint("ClickableViewAccessibility") private
void listeners() {
binding.layout.mainLayout.setOnTouchListener((view, motionEvent) -> {
hideKeyboard(view);
return false;
});
binding.layout.searchBarIv.setOnClickListener(view ->
searchCity(binding.layout.cityEt.getText().toString()));
binding.layout.searchBarIv.setOnTouchListener((view, motionEvent) -> {
hideKeyboard(view);
return false;
});
binding.layout.cityEt.setOnEditorActionListener((textView, i, keyEvent) ->
{ if (i == EditorInfo.IME_ACTION_GO) {
searchCity(binding.layout.cityEt.getText().toString());
hideKeyboard(textView);
return true;
}
return false;
});
binding.layout.cityEt.setOnFocusChangeListener((view, b) ->
{ if (!b) {
hideKeyboard(view);
}
});
binding.mainRefreshLayout.setOnRefreshListener(() -> {
checkConnection();
Log.i("refresh", "Refresh Done."); binding.mainRefreshLayout.setRefreshing(false);
//for the next time
});
//Mic Search binding.layout.micSearchId.setOnClickListener(view -
>{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, REQUEST_CODE_EXTRA_INPUT); try
{
//it was deprecated but still work
startActivityForResult(intent, REQUEST_CODE_EXTRA_INPUT);
} catch (Exception e) {
Log.d("Error Voice", "Mic Error: " + e);
}
});
}
@SuppressLint("DefaultLocale")
private void getTodayWeatherInfo(String name)
{ URL url = new URL();
RequestQueue requestQueue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
url.getLink(), null, response -> {
try {
this.name = name;
update_time = response.getJSONObject("current").getLong("dt");
updated_at = new SimpleDateFormat("EEEE hh:mm a", Locale.ENGLISH).format(new
Date(update_time * 1000));
condition =
response.getJSONArray("daily").getJSONObject(0).getJSONArray("weather").getJSONObject(0).getIn
t("id");
sunrise = response.getJSONArray("daily").getJSONObject(0).getLong("sunrise"); sunset
= response.getJSONArray("daily").getJSONObject(0).getLong("sunset"); description
=
response.getJSONObject("current").getJSONArray("weather").getJSONObject(0).getString("main");
temperature =
String.valueOf(Math.round(response.getJSONObject("current").getDouble("temp") - 273.15));
min_temperature = String.format("%.0f",
response.getJSONArray("daily").getJSONObject(0).getJSONObject("temp").getDouble("min") -
273.15);
max_temperature =
String.format("%.0f",response.getJSONArray("daily").getJSONObject(0).getJSONObject
("temp").getDouble("max") - 273.15);
pressure = response.getJSONArray("daily").getJSONObject(0).getString("pressure"); wind_speed
= response.getJSONArray("daily").getJSONObject(0).getString("wind_speed"); humidity =
response.getJSONArray("daily").getJSONObject(0).getString("humidity");
updateUI(); hideProgressBar();
setUpDaysRecyclerView();
} catch (JSONException e) {
e.printStackTrace();
}
}, null);
requestQueue.add(jsonObjectRequest);
Log.i("json_req", "Day 0");
}
@SuppressLint("SetTextI18n")
private void updateUI() {
binding.layout.nameTv.setText(name); updated_at =
translate(updated_at);
binding.layout.updatedAtTv.setText(updated_at);
binding.layout.conditionIv.setImageResource(
getResources().getIdentifier(
UpdateUI.getIconID(condition, update_time, sunrise, sunset),
"drawable",
getPackageName()
));
binding.layout.conditionDescTv.setText(description);
binding.layout.tempTv.setText(temperature + "°C");
binding.layout.minTempTv.setText(min_temperature + "°C");
binding.layout.maxTempTv.setText(max_temperature + "°C");
binding.layout.pressureTv.setText(pressure + " mb");
binding.layout.windTv.setText(wind_speed + " km/h");
binding.layout.humidityTv.setText(humidity + "%");
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults); if
(requestCode == PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
Toaster.successToast(this, "Permission Granted");
getDataUsingNetwork();
} else {
Toaster.errorToast(this, "Permission Denied"); finish();
}
}
}
@Override
protected void onResume() {
super.onResume();
checkConnection();}
OUTPUT-
8.0 Skill Developed/Learning outcome of this Micro-Project
1. To Complete work in time.
2. To learn new things.
3. how to collect and edit information to make report
9.0 Applications of this Micro-Project
We Use basic Mobile Application Development principles to execute daily activities. We
Use principles of planning and organizing for accomplishment of tasks. Small scale
industries are important because it helps in increasing employment and economic
development of India. It improvesthe growth of the country by increasing urban and rural
growth. The industry is a sector in which the production of goods is a segment of the
economy.
30
AISSMS’s Polytechnic, Pune- 01(0141)
Annexure IV: Rubrics Used for Evaluation of a Micro Project
Program/Semester /Master: CO-6I Course/Course code: MGT (22617) Group No.:1
Title of the Micro project: Weather Application in Android
Course Outcome Achieved:
CO22617.a:Interprete features of Android operating system.
CO22617.d:Use User Interface components for android using application deployment.
CO22617.e: Create Android Application using Database.
Assessment of micro project based on rubrics for performance in group activity :( Marks to be
given out of 06 Assessment of performance in individual presentation/Viva of micro project:
(Marks to be given out of 04. Scale used for assessment: Poor (1-3), Average (4-5), Good (6-8),
Excellent (9-10)
A) Process and Product Assessment (A):
Rubric
Characteristics to be assessed Marks Obtained out of 10
No.
1 Relevance to course
2 Literature review/information collection
3 Completion of target as per project proposal
4 Analysis of data and representation
5 Quality of prototype/model
6 Report Preparation
Total Out of (60)
Process and Product Assessment (A) :Total Out of (06)
B) Individual Presentation/Viva(B)
Rubric Individual
Rubric 7 Individual
8 Presentatio
Presentati
n/Viva
on/Viva
(Convert Total
Individual Individ (Addition
out of 08 (A+B)
Roll Enrollment Presentation ual of marks
marks into
No. No. Name of Student Viva in Rubric
out of 4)
7 to 8)
(B)
Marks Mark
Marks out Marks out Marks out
out of s out
of 10 of 20 of 04
10 of 10
2304 2101410300 Ram Belitkar
Mrs.P.P.Bastawade
31
Evaluation Sheet for the Micro Project
Academic Year: 2024-2025 Name of Faculty :Mrs.P.P.Bastawade
Course: Mobile Application Development Course Code:22617 Semester: 6
Title of the Project: “Weather Application in Android”
CO’s addressed by the Micro Project:
CO22617.a:Interprete features of Android operating system.
CO22617.d:Use User Interface components for android using application deployment.
CO22617.e: Create Android Application using Database.
Major Learning Outcomes achieved by students by doing the project:
(a)Practical Outcomes:
PO2.Instal and Configure Java developmentkit(JDK),androidstudio nad android SDK.
PO3.Configure android development tools(ADT) plug-in and create android virtual device.
PO6.Deevlop a program to implement frame layout,table layout and relative layout.
PO7.Develop a program to implement TextView and EditView.
PO10 Develop a Program to implement AutoComplete TextView.
PO18.Develop a program to implement new activity using explicit intent and implicit
intent. PO21.Develop a program to implement broadcast receiver.
(b) Unit Outcomes in Cognitive domain:
1a.explain the given basic terms realted to android system
1c.Identify tools and software required for development the given android application with justification.
4a.Develop rich user interfaces for the given directory structure.
4b.Develop Android application using the given view.
5a.Develop programs to play the given multimedia.
5b.Use Fragments to generate the given multiple activities.
5d.Write the query to perform the given database management operations
(c) Outcomes in Affective Domain:
1) Follow safety practices.
2) Practice good housekeeping.
3) Demonstrate working as a leader/a team member.
4) Follow ethical practices
Comments/Suggestions about team work/leadership/inter-personal communication (if
any)
Roll No. Student Name Marks out of (6) Marks out of Total out
for performance (4) for of (10)
in group activity performance in
oral / presentation
2505 Harshad Mundhe
Ms.P.P.Bastawade