Skip to content

Parental Control App- For Android ๐ŸŒŸThis Application use Native plugins to get local data such as Location and AppData to send it to the database. These information are saved in cache. In order to monitor the time spend on screen parent can then send messages and warn kids when itโ€™s time to go to bed or do their homework. ๐Ÿ“ฑ๐ŸŒŸ๐ŸŒŸ

Notifications You must be signed in to change notification settings

rajivyadav23/Times-up-flutter

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Time's Up ๐Ÿšผ

Time's Up is a mobile application developed using flutter to monitor the time kids spend on screen. So far the app is only available on Android. The app can't run on iOS devices.The application has for sole purpose to track and record the data from the child's device and send it to parents. The application does not violate the privacy policies settled for user, and doesn't collect data for third parties companies.

The first version doesn't contain all the features. Some features have been hardcoded on purpose. In order to have the code, please approach the author.๐Ÿ”ฅ

This version includes

  • Location Tracking
  • App Usage
  • Notification

Premium โœ…

  • App Icons ๐Ÿ“ฑ
  • App Usage Metrics ๐Ÿ“ˆ
  • Setting page (Update Profile) ๐Ÿšน
  • Contact Us page๐Ÿ“ฉ
  • Dark Mode ๐ŸŒ˜
  • Customize Notification ๐Ÿ“ณ
  • Battery Level ๐Ÿ“ถ
  • Marker image (Child's Picture) on Map ๐Ÿ—บ
  • Email follow up for weekly report ๐Ÿ“จ

Onboarding Screen

Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51

Supported Features

  • Location Tracking
  • App Usage Data
  • CloudFunctions
  • Messaging
  • PushNotifications

App Architecture

The app is composed by two main layers.

Presentation Layer

This layer holds all the widgets, along with their controllers.

Widgets do not communicate directly with the repository.

Instead, they watch some controllers that extend the StateNotifier class (using Riverpod).

This allows to map the data from the layer above to AsyncValue objects that can be mapped to the appropriate UI states (data, loading, error).

Packages in use

Login Parent

The first step is to log in the parent. Then Location permission we be asked and needs to be enabled.

Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51

Parent side

First the parent downloads the app on his android device. To explain in a few details, the first step of the application is the Splash screen. A splash screen will present a landing page. In this case, suppose the login is a parent. J ust touch the Parent DEVICE button for the parent. After that, you will be redirected to a login page. There are currently 3 possible input options. See Figure (4.2).

- SIGN IN WITH EMAIL
- LOGIN WITH FACEBOOK 
-  SIGN IN WITH GOOGLE

Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51

Child's details page

Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51

Registering the new child's device

Now the next step is to add a new sub device. Each user can only add a child device to the database as a sub- collection therefore does not have access to all stored child devices. Moreover each parent will be able to show only their child. To achieve this a FloatingActionButton (+) is available on the Home page. This action will then open a page where you can add the child's picture, name, and email. Although email remains optional, it's always a good idea to keep an email.

Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51 Screen Shot 2022-05-10 at 19 51 51Screen Shot 2022-05-10 at 19 51 51

Database State at this step

Screen Shot 2022-05-30 at 03 55 19

Child's side

The parent must then log into the child's device with their credentials (email and password). Then the parent would have to enter the childโ€™s unique key displayed in red (see fig.4.4-4). As soon as the child is verified, the device's location, TokenID and App List will be retrieved and added to Firebase.

Screen Shot 2022-01-15 at 16 04 41Screen Shot 2022-01-15 at 16 04 41Screen Shot 2022-01-15 at 16 04 41

Database State at this step

Screen Shot 2022-05-30 at 04 02 59

Notification Page

The notification page will essentially allow the parent to send messages to the child's device. There are currently only two pre-written messages. HOMEWORK TIME and GO TO BED. Of course, it will be possible to customize these messages shortly. As soon as the parent taps the button a new message is written to the Firebase database. Therefore, it triggers a cloud function that will send the text message to the Token ID corresponding to the device. The system working behind as the backend is entirely handled by CloudFunction of the Firebase database. To achieve this a single javascript function was written and deployed.

Screen Shot 2022-01-15 at 16 08 38

Setting Page

Note that some of the settings have not been implemented in the public version of the repo.

Screen Shot 2022-05-10 at 19 51 51

About

Parental Control App- For Android ๐ŸŒŸThis Application use Native plugins to get local data such as Location and AppData to send it to the database. These information are saved in cache. In order to monitor the time spend on screen parent can then send messages and warn kids when itโ€™s time to go to bed or do their homework. ๐Ÿ“ฑ๐ŸŒŸ๐ŸŒŸ

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 97.6%
  • JavaScript 2.4%