0% found this document useful (0 votes)
75 views26 pages

Rushi - Mad Microproject - Removed

This document describes an advance notepad app project. It includes an abstract, introduction, objectives, literature survey, hardware/software requirements, implementation details, and conclusion. The app uses speech recognition, AI, and other features to enhance productivity.

Uploaded by

atul gaikwad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views26 pages

Rushi - Mad Microproject - Removed

This document describes an advance notepad app project. It includes an abstract, introduction, objectives, literature survey, hardware/software requirements, implementation details, and conclusion. The app uses speech recognition, AI, and other features to enhance productivity.

Uploaded by

atul gaikwad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

P K TECHNICAL CAMPUS, CHAKAN

Department of Diploma computer Engineering


2023-2024

CERTIFICATE
Certified that the micro-project work entitled
“ ADVANCE NOTEPAD APP ”

SUBMITTED BY
RUSHIKESH PANDHARE
The report has been approved as it satisfies the academic
requirements in respect of micro-project work prescribed for the
course.

__________________ ______________
Prof. Shraddha Pardeshi HOD
(under guidance

1
P K TECHNICAL CAMPUS, CHAKAN

A MICRO-PROJECT REPORT
ON
“ ADVANCE NOTEPAD APP ”

SUBMITTED BY
RUSHIKESH PANDHARE

Class: Third Year Diploma Enrollment no:221660149

UNDER GUIDANCE
Prof. Shraddha Pardeshi

3
ABSTRACT:

Due to the widespread use of the internet, lots of information has


become available to us. Most of the information is unnecessary, as
people use more and more internet distraction and wastage of time
kills the person's creativity and productivity as one has to go through
lots of websites, ads, newsfeed as a person opens his web browser.
"SUPER TEXT EDITOR" helps you to enhance your productivity and
preserve your creativity. It has a "SEARCH APP" which filters the
information and brings it right to you without needing you to go to the
internet, it has embedded Virtual Assistant(AI) which uses Google
Speech API, it helps you with your tasks just with your voice, it also has
Voice-to-Text which allows you to write your thoughts as they are,
making your thoughts more clear, saving you time and preserving your
creativity and it also avoids spelling mistakes while you speak to it as
it is also made with Google Speech API. The Text-to-Speech function
helps you to revisit your document, without even looking at it, so you
can which words fit the best. This project is developed in pure Python
to provide the user with productivity, reliability, availability,
functionality, and compatibility. All these make Python the best
language for this project.

4
Introduction of project
This application is developed based on Python. This application is
designed to help the user to enhance his/her productivity, it provides
a supportive environment in which the user can produce his/her best
work. It uses AI and Speech recognition to assist the user with
his/her work. Genos is a friendly assistant which will assist the user
with his tasks, the user only needs to give command through a
microphone, it also has the Voice-To-Text feature to reduce the
effort needed for typing where the user need only say and it will type
everything. It has a search feature which brings the information right
to the user, without closing the app, it will reduce the drudgery of
searching a piece of information on the internet, going through a lot
of websites, and getting distracted and unproductive. This
application will reduce the distraction of work because of the
internet and allow the user to go deep into his work and produce
valuable results.

Motivation
cause of the internet lots of information has become available to us.
Most of the information is unnecessary, as people use more and
more internet distraction and wastage of time kills the person's
creativity and productivity as one has to go through lots of websites,
ads, newsfeed as a person opens his web browser, so we wanted to
create a app that would help the users to make the most of their
time and information available, what the other text editors have
failed tBeo do.

5
Objectives of Project

The Super Text Editor is a software that will use Speech Recognition
to type as you speak, AI to bring you the information you need, from
opening websites to getting news feed, getting weather forecast and
playing music for you all on the same place on your voice command
one app gives it all to optimize your performance and saving your time
and effort

LITERATURE SURVEY:
Problem Definition
In the age of automation where things can be done with minimum human
assistance, to make a document, speech, to make notes we still need to do a
lot of effort and when we need to find a piece of information regarding our
subject we are overwhelmed with the amount of information present online
and the adds notifications doesn’t make things any easier for us, stealing the
attention and making us less productive.
We are proposing a system that will use Speech Recognition to type as you
speak, AI to bring you the information you need, from opening websites to
getting news feed, getting weather forecast and playing music for you all on
the same place on your voice command one app gives it all

6
Hardware and Software Requirement

Software Requirements
 OPERATING SYSTEM: Windows 10
 SDK Version: 3.7.4
 IDE: Android Studio
 Notepad ++ sometimes
 Its Front End is developed using XML

Hardware Requirements
 Intel Core i3  Min 4Gb RAM
 This system is built on Intel core i5-8250u CPU, having Processor
Base Frequency of 1.60 GHz and Max Turbo Frequency of 3.40GHz.
 1TB Hard Disk Capacity

7
Future Scope

1) We can apply machine learning to make Genos learn from you.


2) Genos can be made more interactive and user friendly.
3) Auto correct can make it even more productive. 5) Features like
bullets and page formatting can make users work more meaningful.

Conclusion
By implementing this application, the users could produce more
valuable work in comparatively less amount of time this application
provides the value of time through the results. The main purpose of
this application is to make the user more efficient at work. The
proposed system is based on AI and Speech Recognition. The basic
aim of the system is to make the user more productive without
letting the user lose focus. It also makes the user more creative by
letting the user bring his/her thoughts to his/her notice by using
Voice-Type, so that the user can become more valuable in his/her
field.

Reference
www.stackoverflow.com
www.youtube.com
www.python.org

8
IMPLEMENTATION

Manifest File
<?xml version=”1.0” encoding=”utf-8”?>

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

Package=”com.ixidev.simplenotepad ”>

<application

android:allowBackup=”true”

android:icons=”@mipmap/ic_launcher”

android:label=”2string/app_name”

android:roundIcon=”@mipmap/ic_launcher_round”

android:asupportsRtl=”true”

android:theme=”@style/AppTheme”

<activity

android:name=”.MainActivity”

android:label=”@string/app_name”

android:theme=”@style/AppTheme.NoActionBar”>

<intent_filter>

<action android:name=”android.intent.action.MAIN”/>

<category

Android:name=”android.intent.category.LAUNCHER”/>

</intent_filter>

</activity>

<activity

android:name=”.EditNoteActivity”

android:parentActivityName=”>MainActivity”/>

</application>

</manifest>

9
Main activity
JAVA package com.ixidev.simplenotepad;

import android.app.TaskStackBuilder;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.view.ActionMode;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.CompoundButton;

import android.widget.Toast;

import androidx.appcompat.app.AlertDialog;

import androidx.appcompat.app.AppCompatActivity;

import androidx.appcompat.widget.Toolbar;

import androidx.recyclerview.widget.ItemTouchHelper;

import androidx.recyclerview.widget.LinearLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import com.ixidev.simplenotepad.adapters.NotesAdapter;

import com.ixidev.simplenotepad.callbacks.MainActionModeCallback;

import com.ixidev.simplenotepad.callbacks.NoteEventListener;

import com.ixidev.simplenotepad.db.NotesDB;

import com.ixidev.simplenotepad.db.NotesDao;

import com.ixidev.simplenotepad.model.Note;

import com.ixidev.simplenotepad.utils.NoteUtils;

import com.mikepenz.materialdrawer.AccountHeader;

import com.mikepenz.materialdrawer.AccountHeaderBuilder;

import com.mikepenz.materialdrawer.Drawer;

10
import com.mikepenz.materialdrawer.DrawerBuilder;

import com.mikepenz.materialdrawer.interfaces.OnCheckedChangeListener;

import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;

import com.mikepenz.materialdrawer.model.ProfileDrawerItem;

import com.mikepenz.materialdrawer.model.SwitchDrawerItem;

import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;

import java.util.ArrayList;

import java.util.List;

import static

com.ixidev.simplenotepad.EditNoteActivity.NOTE_EXTRA_Key;

public class MainActivity extends AppCompatActivity implements

NoteEventListener, Drawer.OnDrawerItemClickListener {

private static final String TAG = "MainActivity";

private RecyclerView recyclerView;

private ArrayList notes;

private NotesAdapter adapter;

private NotesDao dao;

private MainActionModeCallback actionModeCallback;

private int chackedCount = 0;

private FloatingActionButton fab;

private SharedPreferences settings;

public static final String THEME_Key = "app_theme";

public static final String APP_PREFERENCES="notepad_settings";

private int theme;

@Override

protected void onCreate(Bundle savedInstanceState) {

settings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);

theme = settings.getInt(THEME_Key, R.style.AppTheme);

setTheme(theme);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

11
Toolbar toolbar = findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

setupNavigation(savedInstanceState, toolbar);

recyclerView = findViewById(R.id.notes_list);

recyclerView.setLayoutManager(new LinearLayoutManager(this));

fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

onAddNewNote(); } });

dao = NotesDB.getInstance(this).notesDao();

private void setupNavigation(Bundle savedInstanceState, Toolbar toolbar) {

List iDrawerItems = new ArrayList<>(); fix error : removed on materialdrawer 7.0.0

List<IDrawerItem> iDrawerItems = new ArrayList<>();

iDrawerItems.add(new
PrimaryDrawerItem().withName("Home").withIcon(R.drawable.ic_home_black _24dp));
iDrawerItems.add(new

PrimaryDrawerItem().withName("Notes").withIcon(R.drawable.ic_note_blac k_24dp));

// sticky DrawItems ; footer menu items

// List stockyItems = new ArrayList<>(); removed on materialdrawer 7.0.0

List<IDrawerItem> stockyItems = new ArrayList<>();

SwitchDrawerItem switchDrawerItem = new SwitchDrawerItem()

.withName("Dark Theme") .withChecked(theme == R.style.AppTheme_Dark)


.withIcon(R.drawable.ic_dark_theme)

.withOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(IDrawerItem

drawerItem, CompoundButton buttonView, boolean isChecked) {

// TODO: 02/10/2018 change to darck theme and

save it to settings

if (isChecked) {

12
settings.edit().putInt(THEME_Key,

R.style.AppTheme_Dark).apply();

} else {

settings.edit().putInt(THEME_Key, R.style.AppTheme).apply();

MainActivity.this.recreate();

TaskStackBuilder.create(MainActivity.this) .

addNextIntent(new

Intent(MainActivity.this, MainActivity.class))

.addNextIntent(getIntent())

.startActivities();

} });

stockyItems.add(new

PrimaryDrawerItem().withName("Settings").withIcon(R.drawable.ic_settin gs_black_24dp));

stockyItems.add(switchDrawerItem);

AccountHeader header = new

AccountHeaderBuilder().withActivity(this) .

addProfiles(new ProfileDrawerItem()

.withEmail("[email protected]")

.withName("Mangesh Thorat")

.withIcon(R.mipmap.ic_launcher_round))

.withSavedInstance(savedInstanceState)
.withHeaderBackground(R.drawable.ic_launcher_background)
.withSelectionListEnabledForSingleProfile(false)

.build();

new DrawerBuilder()

.withActivity(this)

.withToolbar(toolbar)

.withSavedInstance(savedInstanceState)

.withDrawerItems(iDrawerItems)

withTranslucentNavigationBar(true)

.withStickyDrawerItems(stockyItems)

13
withAccountHeader(header)

withOnDrawerItemClickListener(this) .

build();

private void loadNotes() {

this.notes = new ArrayList<>();

List list = dao.getNotes();

listener to adapter this.adapter.setListener(this);

this.recyclerView.setAdapter(adapter);

L1(list); showEmptyView();

swipeToDeleteHelper.attachToRecyclerView(recyclerView);

* when no notes show msg in main_layout

*/

private void showEmptyView()

{ if (notes.size() == 0) {

this.recyclerView.setVisibility(View.GONE);
findViewById(R.id.empty_notes_view).setVisibility(View.VISIBLE);

} else {

this.recyclerView.setVisibility(View.VISIBLE);
findViewById(R.id.empty_notes_view).setVisibility(View.GONE);

/**

* Start EditNoteActivity.class for Create New Note

*/ private void onAddNewNote() {

startActivity(new Intent(this, EditNoteActivity.class)); }

@Override

public boolean onCreateOptionsMenu(Menu menu) {

14
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

return super.onOptionsItemSelected(item);

@Override

protected void onResume() {

super.onResume();

loadNotes();

@Override

public void onNoteClick(Note note) {

// TODO: 22/07/2018 note clicked : edit note

Intent edit = new Intent(this, EditNoteActivity.class);

edit.putExtra(NOTE_EXTRA_Key, note.getId());

startActivity(edit);

@Override

public void onNoteLongClick(Note note) {

// TODO: 22/07/2018 note long clicked : delete , share ..

15
note.setChecked(true);

chackedCount = 1;

adapter.setMultiCheckMode(true);

// set new listener to adapter intend off MainActivity

listener that we have implement

adapter.setListener(new NoteEventListener() {

@Override

public void onNoteClick(Note note) {

note.setChecked(!note.isChecked()); // inverse

selected

if (note.isChecked())

chackedCount++;

else chackedCount--;

if (chackedCount > 1) {

actionModeCallback.changeShareItemVisible(false);

} else

actionModeCallback.changeShareItemVisible(true);

if (chackedCount == 0) {

// finish multi select mode wen checked count =0

actionModeCallback.getAction().finish();

notes.size());

}}

actionModeCallback.setCount(chackedCount + "/" +

adapter.notifyDataSetChanged();

});

@Override

public void onNoteLongClick(Note note) {

} actionModeCallback = new MainActionModeCallback() {

@Override

public boolean onActionItemClicked(ActionMode actionMode,

MenuItem menuItem) {

16
if (menuItem.getItemId() == R.id.action_delete_notes)

onDeleteMultiNotes();

else if (menuItem.getItemId() ==

R.id.action_share_note)

onShareNote();

actionMode.finish();

return false;

};

// start action mode

startActionMode(actionModeCallback);

// hide fab button

fab.setVisibility(View.GONE);

actionModeCallback.setCount(chackedCount + "/" +

notes.size());

private void onShareNote() {

// TODO: 22/07/2018 we need share just one Note not multi

Note note = adapter.getCheckedNotes().get(0);

// TODO: 22/07/2018 do your logic here to share note ; on

social or something else

Intent share = new Intent(Intent.ACTION_SEND);

share.setType("text/plain");

String notetext = note.getNoteText() + "\n\n Create on : " +


NoteUtils.dateFromLong(note.getNoteDate()) + "\n By

:" +

getString(R.string.app_name);

share.putExtra(Intent.EXTRA_TEXT, notetext);

startActivity(share);

private void onDeleteMultiNotes() {

17
// TODO: 22/07/2018 delete multi notes

List chackedNotes = adapter.getCheckedNotes();

if (chackedNotes.size() != 0) {

for (Note note : chackedNotes) {

dao.deleteNote(note);

// refresh Notes

loadNotes();

Toast.makeText(this, chackedNotes.size() + " Note(s)

Delete successfully !", Toast.LENGTH_SHORT).show();

} else Toast.makeText(this, "No Note(s) selected",

Toast.LENGTH_SHORT).show();

//adapter.setMultiCheckMode(false);

@Override

public void onActionModeFinished(ActionMode mode) {

super.onActionModeFinished(mode);

adapter.setMultiCheckMode(false);

// uncheck the notes adapter.setListener(this);

// set back the old listener fab.setVisibility(View.VISIBLE);

// swipe to right or to left te delete

private ItemTouchHelper swipeToDeleteHelper = new ItemTouchHelper(

new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT

| ItemTouchHelper.RIGHT) {

@Override

public boolean onMove(RecyclerView recyclerView,

RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {

return false;

@Override

18
public void onSwiped(RecyclerView.ViewHolder

viewHolder, int direction) {

// TODO: 28/09/2018 delete note when swipe

if (notes != null) {

// get swiped note

Note swipedNote =

notes.get(viewHolder.getAdapterPosition());

if (swipedNote != null) {

swipeToDelete(swipedNote, viewHolder);

});

private void swipeToDelete(final Note swipedNote, final

RecyclerView.ViewHolder viewHolder) {

new AlertDialog.Builder(MainActivity.this)

.setMessage("Delete Note?")

.setPositiveButton("Delete", new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface

dialogInterface, int i) {

// TODO: 28/09/2018 delete note

dao.deleteNote(swipedNote);

notes.remove(swipedNote);

adapter.notifyItemRemoved(viewHolder.getAdapterPosition());

showEmptyView();

})

.setNegativeButton("Cancel", new

DialogInterface.OnClickListener() {

19
@Override

public void onClick(DialogInterface

dialogInterface, int i) {

// TODO: 28/09/2018 Undo swipe and restore

swipedNote

recyclerView.getAdapter().notifyItemChanged(viewHolder.getAdapterPosit ion());

})

.setCancelable(false) .

create().show(); }

@Override

public boolean onItemClick(View view, int position, IDrawerItem

drawerItem) {

Toast.makeText(this, "" + position,

Toast.LENGTH_SHORT).show();

return false; }

20
Output

21
22
23
24
25
26
Conclusion

By implementing this application, the users could produce more


valuable work in comparatively less amount of time this application
provides the value of time through the results. The main purpose of
this application is to make the user more efficient at work. The
proposed system is based on AI and Speech Recognition. The basic
aim of the system is to make the user more productive without
letting the user lose focus. It also makes the user more creative by
letting the user bring his/her thoughts to his/her notice by using
Voice-Type, so that the user can become more valuable in his/her
field.

27

You might also like