\documentclass[12pt, a4paper]{article}
\usepackage{a4wide}
\usepackage{anysize}
\usepackage[centertags]{amsmath}
\usepackage{amsfonts,amssymb,amsthm}
\usepackage{graphicx}
\usepackage{natbib}
\usepackage{wrapfig}
\usepackage{iitbcstitle}
\usepackage{subcaption}
\usepackage{enumitem}   
%\usepackage{fullpage}
%\usepackage{rotating}

\renewcommand{\baselinestretch}{1.2} %line spacing
\marginsize{1.2in}{1.2in}{1in}{1in}   %left right top bottom
%\textwidth 6in
% Title Page

\pagestyle{plain}
\def\title{Talking Reminder}
\def\what{CS 699 : Software Lab Project}
\def\who{{Pankaj Kumar 193050065\\
Raushan Raj 193050073\\
Deepak Verma 193050080\\
}}
\def\guide{Prof. Kavi Arya}
\begin{document}
\titlepage
\newpage
\tableofcontents
\newpage


\section{\textbf{Main Goal Of The Project}}
The main goal of the project was to make an Android app which instead of ringing and showing notification, the app should Speak up the Reminder text repeatedly - Speaking Reminder.\\
In addition to time-triggered reminders,a user should be able to set reminders for another user
remotely from within the app .

\section{\textbf{Motivation}}
Elderly people like our parents and grandparents often don’t
like to rely on their phones to organize their reminders, they
rely on people ( who are unreliable ;-) )
They need reminders for important kinds of stuff like : Taking
medicines on time
They can’t or don’t like to create reminders by themselves, so
if someone else could set their important reminders for them
remotely would solve that problem.


\section{\textbf{Prior Work}}
 There is no such app available on an Individual level but there are some apps available.Some of them are:
 \begin{itemize}
     \item And there are voice based reminders available also
     \item But there isn’t any free reminder app that allows reminders be set for a user remotely by another authorized user and none of them provide all the aforesaid features
     
 \end{itemize}
\section{\textbf{Requirements for App}}
User's System Requirements are:
\subsection{Hardware}
A smartphone with the following features:

\begin{itemize} 
 \item 2 GB of RAM
 \item 1 Ghz Processing Power
\end{itemize}
\subsection{Software}

\begin{itemize}
    \item Android 8.0 (Oreo) or Higher
\end{itemize}
\section{Development Environment and Tools used}
\subsection{Hardware}
A personal computer with the following configurations were used:
\begin{itemize}
    \item 8 GB of RAM
    \item 2.5 Ghz Processor
\end{itemize}
\subsection{Tools and Environment}
The softwares and tools used are:
\begin{itemize}
    \item Windows 10 Home
    \item Ubuntu 18.04
    \item Android Studio 3.5.1
    \item GIT (for version control)
    \item Android Emulator
    \item Firebase
    \item npm
    \item nodejs
    \item \LaTeX (Using Overleaf)
\end{itemize}
\subsection{\textbf{Programming Languages}}
\begin{itemize}
    \item Java 
    \item Typescript (to implement cloud function for firebase)
\end{itemize}
\section{\textbf{Features}}
\begin{itemize}
    \item \textbf{Basic Alarm feature} :  This app has all the basic feature of alarm like to set repeat alarm  on minute,hourly,daily and monthly and to show notification.
      \item \textbf{Speaking Reminder feature} : This app also speaks up the reminder text.
        \item \textbf{Send Reminder feature} : Feature to send alarm remotely to different authenticated user within the app.
\end{itemize}
\section{\textbf{User Documentation}}
\subsection{UI Details}
\\
\begin{itemize}
    \item Android app screenshot

\includegraphics[scale=0.3]{Reminders.jpeg}
\includegraphics[scale=0.3]{addreminder.jpeg}\\

\includegraphics[scale=0.3]{Calander.jpeg}
\includegraphics[scale=0.3]{Clock.jpeg}\\


\includegraphics[scale=0.3]{Repeatation.jpeg}
\includegraphics[scale=0.3]{login.jpeg}

\item Firebase database screenshot

\includegraphics[scale=0.4]{firebase.jpeg}

\end{itemize}
\subsection{Firebase Server Setup}
\begin{itemize}
    \item \textbf{Server Setup} : Firebase and sqlite3 has been used in this project. The app should not require any server setup or database from user's side. All these configurations comes inbuilt in the app. As a end user, one would not need an admin privilege for central database hosted on firebase on which all user-data and user information is kept.
    
    \item \textbf{Cloud Function Setup} : Typescript has been used to implememt server side cloud function for database trigger. which uses nodejs and npm.
    
    
\end{itemize}
\subsection{Brief of Code}
This app is developed in java and should be compatible for almost all the android devices. This app is powered by Firebase realtime database and all the user's data is hosted on it.
\section{\textbf{Feasibilty}}
The feasibility details are as follows:
\subsection{Technical Feasibility}
\begin{itemize}
    \item Speaking reminder managed locally
    \item There are TTS module from google
    \item Send reminder feature has to be an online feature
\end{itemize}

\section{Outcome}
In the stipulated time we implemented basic alarm and notification features along with working voice feature. Send reminder feature is under development but user can still get a feel of it from the current implementation. We tried new technologies like Firebase and cloud functions to make this app more robust. Though app those functionalities are not implemented fully due to time constraints the app does a decent job at reminding stuff, which was our goal to start with. There are some known bugs and incomplete features in this app as of now which we will be passionately covering over next few weeks.
\section{\textbf{References}}
\begin{enumerate}[label=(\roman*)]
\item https://www.cheezycode.com/p/android.html
\item https://www.journaldev.com/9976/android-date-time-picker-dialog
\item https://javebratt.com/firebase-cloud-functions-profile/
\item https://firebase.google.com/docs/functions
\item https://github.com/gholken/android-hourly-reminder
\end{enumerate}


\end{document}