A time tracking app built using Flutter

  clock, Flutter App, Templates, UI

Onehour

A time tracking app built using Flutter

Screens

First HeaderSecond Header

Tech Stack

  • Flutter
  • Flutter Bloc with Hydrated Bloc
  • Firebase
  • Admob

Features

  • Track time for all your task.
  • Offline Support.
  • Social Logins (Google, Facebook)
  • Light & Dark theme support.
  • Ads configured using remote config.

Getting Started

  1. Fork repository and clone your fork locally
  2. Install Flutter 1.7.8
  3. Install Android Studio / IntelliJ / VSCode
  4. Preparing Release for Android
  5. Preparing Release for iOS

Building the project

Android

Missing Key.Properties file

If you try to build the project straight away, you’ll get an error complaining that a key.properties file is missing and Exit code 1 from: /Onehour-appp/android/gradlew app:properties:. To resolve that,

  1. Follow this guide to Generate Keystor and then move it to Onehour-appp/android/app
  2. Open Onehour-appp/android and create a new file key.properties and your key info:
storePassword=STORE_PASSWORD
keyPassword=KEY_PASSWORD
keyAlias=key
storeFile=key.jks
  1. Integrate Firebase for Android
  2. Open AndroidManifest.xml and replace ADMOB_ID with your id.
<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ADMOB_ID"/>
  1. Open strings.xml and replace 0000000000 with your id.
    <!-- Replace "000000000000" with your Facebook App ID here. -->
    <string name="facebook_app_id">000000000000</string>

    <!--
      Replace "000000000000" with your Facebook App ID here.
      **NOTE**: The scheme needs to start with `fb` and then your ID.
    -->
    <string name="fb_login_protocol_scheme">fb000000000000</string>

IOS

  1. Integrate Firebase for IOS
  2. Open Info.plist replace REVERSED_CLIENT_ID,
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <!--
                              Replace "000000000000" with your Facebook App ID here.
                              **NOTE**: The scheme needs to start with `fb` and then your ID.
                            -->
                <string>fb000000000000</string>
                <!--Replace REVERSED_CLIENT_ID with your googleservice.plist REVERSED_CLIENT_ID-->
                <string>REVERSED_CLIENT_ID</string>
            </array>
        </dict>
    </array>

    <!--Replace 000000000000 with your facebook app id-->
    <key>FacebookAppID</key>
    <string>000000000000</string>

    <!--Replace FACEBOOK_DISPLAY_NAME with your facebook display name -->
    <key>FacebookDisplayName</key>
    <string>FACEBOOK_DISPLAY_NAME</string>

    <!--Replace 00000ADMOB_ID0000000 with your admob id-->
    <key>GADApplicationIdentifier</key>
    <string>ADMOB_ID</string>

Contributing

Awesome! Contributions of all kinds are greatly appreciated. To help smoothen the process we have a few non-exhaustive guidelines to follow which should get you going in no time.

Using GitHub Issues

  • Feel free to use GitHub issues for questions, bug reports, and feature requests
  • Use the search feature to check for an existing issue
  • Include as much information as possible and provide any relevant resources (Eg. screenshots)

License

Project is published under the MIT license. Feel free to clone and modify repo as you want, but don’t forget to add reference to authors 🙂

Download source code on GitHub

https://github.com/fayeed/Onehour-app