A native android app that helps you manage your screen time. This app is built using:
- Kotlin
- Room (SQLite)
- Firebase:
- Authentication
- Realtime Database
- Testing:
- JUnit
- Espresso
- Mockito


- You can set app usage limits for each app.
- When you exceed the limit, the app will be locked, and you will not be able to use it until the next day.

- Sign up and log in to the app using your email address and password.
- Credentials are stored securely using Firebase Authentication.


- You can add friends by searching for their username and sending them a friend request.
- The other user will be able to accept or reject your request.
- Recipient will be notified of the request via a notification.

- Once a friend request is accepted, you will be able to view your friends' app usage.
- You can view the app usage for the current day, as well as the previous days.
- Can also view a breakdown of the usage by app for each friend on a specific day.
Before you can start building the app, you need to add a google-services.json
file to the app
directory. This file can be obtained by creating a new Firebase project and adding an Android app to it. For more information, see Add Firebase to your Android project.
The app uses the following Firebase services:
- Authentication
- Realtime Database
To build the app, run the following command in the root directory of the project:
./gradlew assembleDebug
This will generate an APK file in the app/build/outputs/apk/debug
directory.
To run the unit tests, run the following command in the root directory of the project:
./gradlew test
To run the instrumented tests, you need to have an Android device connected to your computer or an emulator running. Then, run the following command in the root directory of the project:
./gradlew connectedCheck
The project uses GitHub Actions to build and run the unit tests on every pull request to the main
branch. It also builds and publishes a debug APK file to the releases
page of the repository whenever a new tag is created.
GOOGLE_SERVICES_JSON
- Contents of the
google-services.json
file encoded in base64.
- Contents of the