MAD MP

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION

VIDYAVARDHINI’S BHAUSAHEB VARTAK


POLYTECHNIC ,VASAI ROAD WEST

MICRO PROJECT
Academic year: 2022-2023

Title of Micro Project:


Note App

Program/Code: Computer Engineering (CO) Semester: Sixth


Course/Code : Mobile Application Development

Name: Roll No:1904, 1905, 1906


Enrolment No.: 2000930063, 2000930064
2000930065

Name of Faculty: Prof.Ajay Chawda


MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION

Certificate

This is to certify that Mr. /Ms.…………………………………………………. …


Roll No: 1904,1905,1906 of FIFTH Semester of Diploma in of Institute, B.V.
POLYTECHNIC (Code: 0093) has completed the Micro Project satisfactorily in for the
Mobile Application Development (22617) academic year 2022- 2023 as prescribed in the
curriculum.

Place: Vasai Enrolment No: ……………………………………

Date: ……………………… Exam. Seat No: …………………………………….

Subject Teacher Head of the Department Principal

Seal of

Institution
Annexure - I

Part A: Micro Project Proposal

1.1Aim/Benefits of the Micro-Project: The main to Study


2.1 Course Outcomes integrated:
a) a) Interprete features of Android operating system.
b) Configure Android environment and development tools.
c) Develop rich user Interfaces by using layouts and controls.
d) Use User Interface components for android application development.

Proposed Methodology:
1. Literature survey.
2. Collect information through different sources
3. Analysis of data.
4. Compilation of collected data.

4.0 Action Plan

Sr. Planned Planned Name of


Details of the activity
No. Start date Finish date Members
1 Formation of Group & Topic Selection All members
2 Submission of Proposed Plan All members
3 Preparation of Report All members
4 Final valuation of a working Report All members
5 Presentation of Report All members
6 Submission of Final Report All members

5.0 Resource Required:


Sr.
Name of resources/Material Specifications Qty Remarks
No.
Processor: i3
1. Computer 1
RAM : 4.00 GB
2. Microsoft Word Word -2016
3. Printer Hp Laser Jet 1
4. Book/ website name
6.0 Name of Team Members with Roll No:

Roll No Individual
Sr. Process and Total
Name of Students Presentation
No. Product
(04) (10)
assessment (06)
01 1904
Jash Mhatre
02 1905
Satvik Pereira
03 1906
Stalin Rodrigues

Name & Signature of Faculty: Prof.Ajay Chawda


Annexure-

Final Micro Project Report

Title:

RATIONALE. Android application development is one of the rising and growing trend in the industry of
mobile. This course examines the principles of mobile application design and covers the
necessary concepts which are required to understand mobile based applications and develop
Android based Applications in particular. After completing this course students will design
and build a variety of real-time Apps using Android.

2. 0 Course Outcomes Integrated:


a) a) Interprete features of Android operating system.
b) Configure Android environment and development tools.
c) Develop rich user Interfaces by using layouts and controls.
d) Use User Interface components for android application development.
3.0 Actual Procedure Followed.
1 Discussion about topic with guide and among group members
2 Literature survey
3 Information collection
4 Compilation of content
5 Editing and revising content
6 Report Preparation
4.0: Actual Resources Required:

Sr.
Name of resources/Material Specifications Qty Remarks
No.
Processor: i3
1. Computer 1
RAM : 4.00 GB
2. Microsoft Word Word -2016
3. Printer Hp Laser Jet 1
4. Book/Site name

7.0 Skill Developed/Learning outcomes of this Micro-Project

The following skills were developed:


1. Teamwork: Learned to work in a team and boost individual confidence.
2. Problem-Solving: Developed good problem solving habits.
3. Technical Writing: Preparing the report of proposed plan and the final report.
Annexure - III

Rubrics for Assessment of Micro-Project

Title:
Institute Code: 0093/1738 Academic year: 2022-2023
Program: CO Course & Code: MAD(22617)
Name of Candidate: Roll No:
Semester: FIFTH Name of Faculty: Prof.Ajay Chawda

Sr. Poor Average Good Excellent


Characteristic to be Assessed
No. (Marks 1-3) (Marks 4-5) (Marks 6-8) (Marks 9-10)

1. Relevance to the Course


Literature Survey/Information
2.
Collection
3. Project Proposal
Completion of the Target as per
4.
Project Proposal
5. Analysis of Data and Representation
6. Quality of Prototype/Model
7. Report Preparation
8. Presentation
9. Viva
Annexure- IV

Micro-Project Evaluation Sheet


Title:

Institute Code: 0093 Academic year: 2022-2023


Program:CO Course & Code: MAD(22617)
Name of Candidate: Roll No:
Semester: FIFTH Name of Faculty: Prof.Ajay Chawda
Course Outcomes Achieved:
a) a) Interprete features of Android operating system.
b) Configure Android environment and development tools.
c) Develop rich user Interfaces by using layouts and controls.
d) Use User Interface components for android application development.
¢) Create Android application using database.
Evaluation as per Suggested Rubric for Assessment of Micro Project:
Sr. Characteristic to be Poor Average Good Marks Excellent Sub
No. assessed Marks Marks 4-5 6-8 Marks 9-10 Total
1-3
(A) Process and product assessment Out Of 6

1 Relevance to the course

2 Literature Survey .
Information Collection
3 Completion of the
Target as per project
proposal
4 Analysis of Data and
representation
5 Quality of
Prototype/Model/Conte
nt
6 Report Preparation
(B) Individual Presentation/Viva Out of 4
7 Presentation .
8 Viva

Name and designation of the Faculty Member: Prof.Ajay Chawda


Weekly Activity Sheet
Topic:

Institute Code: 0093 Academic year: 2022-2023


Program: CO Course & Code: MAD(22617)

Name of Candidate: Roll No:


Semester: FIFTH Name of Faculty: Prof.Ajay Chawda

SR. NO WEEK ACTIVITY PERFORMED

1. 1st Week Discussion and Finalization of Topic


2. 2nd Week Literature Review
3. 3rd Week Submission of Proposed Plan
4 4th Week Information Collection
5. 5th Week Analysis of Data
6. 6th Week Compilation of content
7. 7th Week Editing and Revising the Content
8. 8th Week Report Preparation
9. 9th Week Report Preparation
10. 10th- 12th Week Presentation

Signature of Student Dated Signature of Faculty


activity_main_xml file:

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout 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"
android:background="#00B0FF"
android:padding="10dp"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/notestitle"
android:text="NOTES"
android:textSize="20dp"
android:textColor="@color/white"
android:textStyle="bold"/>

<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerview"
android:layout_above="@id/addnewnotebtn"
android:layout_below="@id/notestitle"/>

<com.google.android.material.button.MaterialButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add new note"
android:id="@+id/addnewnotebtn"
android:textColor="#00B0FF"
android:backgroundTint="@color/white"
android:layout_alignParentBottom="true"/>

</RelativeLayout>
MainActivity.java file:

package com.example.note_app;

import androidx.appcompat.app.AppCompatActivity;

import androidx.recyclerview.widget.LinearLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

import io.realm.Realm;

import io.realm.RealmChangeListener;

import io.realm.RealmResults;

import io.realm.Sort;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import com.google.android.material.button.MaterialButton;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

MaterialButton addNoteBtn = findViewById(R.id.addnewnotebtn);

addNoteBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

startActivity(new Intent(MainActivity.this,AddNoteActivity.class));

});

Realm.init(getApplicationContext());
Realm realm = Realm.getDefaultInstance();

RealmResults<Note> notesList = realm.where(Note.class).findAllSorted("createdTime",


Sort.DESCENDING);

RecyclerView recyclerView = findViewById(R.id.recyclerview);

recyclerView.setLayoutManager(new LinearLayoutManager(this));

MyAdapter myAdapter = new MyAdapter(getApplicationContext(),notesList);

recyclerView.setAdapter(myAdapter);

notesList.addChangeListener(new RealmChangeListener<RealmResults<Note>>() {

@Override

public void onChange(RealmResults<Note> notes) {

myAdapter.notifyDataSetChanged();

});

}
rounded_corner.xml file:

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"

android:shape="rectangle">

<solid android:color="@color/white"/>

<corners android:radius="8dp"></corners>

</shape>

activity_add_note.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"

android:orientation="vertical"

android:background="#00B0FF"

android:padding="20dp"
tools:context=".AddNoteActivity">

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/titletextview"

android:text="Add new note"

android:textColor="@color/white"

android:textSize="25dp"

android:textStyle="bold"

android:gravity="center"

android:layout_margin="20dp"/>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:padding="10dp"

android:layout_margin="10dp"

android:background="@drawable/rounded_corner">

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/titleinput"

android:hint="Title"

android:background="#3000B0FF"

android:padding="10dp"

android:layout_margin="10dp"/>

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/descriptioninput"

android:hint="Decription"

android:background="#3000B0FF"
android:padding="10dp"

android:layout_margin="10dp"

android:lines="10"

android:gravity="top"/>

</LinearLayout>

<com.google.android.material.button.MaterialButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/savebtn"

android:text="SAVE NOTE"

android:layout_gravity="center"

android:backgroundTint="@color/white"

android:textColor="#00B0FF"/>

</LinearLayout>
Note.java file:

package com.example. note_app;

import io.realm.RealmObject;

public class Note extends RealmObject {

String title;

String description;

long createdTime;

public String getTitle() {

return title;

public void setTitle(String title) {

this.title = title;

public String getDescription() {

return description;

public void setDescription(String description) {

this.description = description;

public long getCreatedTime() {

return createdTime;

public void setCreatedTime(long createdTime) {

this.createdTime = createdTime;

}
AddNoteActivity.java file:

package com.example. note_app;

import androidx.appcompat.app.AppCompatActivity;

import io.realm.Realm;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

import com.google.android.material.button.MaterialButton;

public class AddNoteActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_add_note);

EditText titleInput = findViewById(R.id.titleinput);

EditText descriptionInput = findViewById(R.id.descriptioninput);

MaterialButton saveBtn = findViewById(R.id.savebtn);

Realm.init(getApplicationContext());

Realm realm = Realm.getDefaultInstance();

saveBtn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String title = titleInput.getText().toString();

String description = descriptionInput.getText().toString();

long createdTime = System.currentTimeMillis();


realm.beginTransaction();

Note note = realm.createObject(Note.class);

note.setTitle(title);

note.setDescription(description);

note.setCreatedTime(createdTime);

realm.commitTransaction();

Toast.makeText(getApplicationContext(),"Note saved",Toast.LENGTH_SHORT).show();

finish();

});

item_view.xml file:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:padding="10dp"

android:layout_marginBottom="10dp"

android:background="@drawable/rounded_corner"

xmlns:tools="http://schemas.android.com/tools">

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/titleoutput"

android:textSize="20dp"

android:textColor="@color/black"

tools:text="My title"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"
android:id="@+id/descriptionoutput"

android:layout_below="@id/titleoutput"

android:textColor="#393939"

tools:text="My long long long descrption"/>

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/timeoutput"

android:layout_below="@id/descriptionoutput"

android:textSize="12dp"

android:gravity="end"

android:textColor="#858484"

tools:text="Jan 21 2020 "/>

</RelativeLayout>
MyAdapter.java file:

package com.example. note_app;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.PopupMenu;

import android.widget.TextView;

import android.widget.Toast;

import org.w3c.dom.Text;

import java.text.DateFormat;

import androidx.annotation.NonNull;

import androidx.recyclerview.widget.RecyclerView;

import io.realm.Realm;

import io.realm.RealmResults;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

Context context;

RealmResults<Note> notesList;

public MyAdapter(Context context, RealmResults<Note> notesList) {

this.context = context;

this.notesList = notesList;

@NonNull

@Override

public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {


return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_view,parent,false));

@Override

public void onBindViewHolder(@NonNull MyAdapter.MyViewHolder holder, int position) {

Note note = notesList.get(position);

holder.titleOutput.setText(note.getTitle());

holder.descriptionOutput.setText(note.getDescription());

String formatedTime = DateFormat.getDateTimeInstance().format(note.getCreatedTime());

holder.timeOutput.setText(formatedTime);

holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

PopupMenu menu = new PopupMenu(context,v);

menu.getMenu().add("DELETE");

menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem item) {

if(item.getTitle().equals("DELETE")){

//delete the note

Realm realm = Realm.getDefaultInstance();

realm.beginTransaction();

note.deleteFromRealm();

realm.commitTransaction();

Toast.makeText(context,"Note deleted",Toast.LENGTH_SHORT).show();

return true;

});

menu.show();
return true;

});

@Override

public int getItemCount() {

return notesList.size();

public class MyViewHolder extends RecyclerView.ViewHolder{

TextView titleOutput;

TextView descriptionOutput;

TextView timeOutput;

public MyViewHolder(@NonNull View itemView) {

super(itemView);

titleOutput = itemView.findViewById(R.id.titleoutput);

descriptionOutput = itemView.findViewById(R.id.descriptionoutput);

timeOutput = itemView.findViewById(R.id.timeoutput);

}
Output :

You might also like