PrivateFit is an E2E encrypted fitness application built on the atPlatform.

Overview

Private Fit

Now for a little internet optimism

pub package pub points coverage style: very good analysis License: MIT

Generated by the at_app CLI and Very Good CLI πŸ€–

A secure fitness app.


Getting Started πŸš€

This project contains 3 flavors:

  • development
  • staging
  • production

To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:

# Development
$ flutter run --flavor development --target lib/main_development.dart

# Staging
$ flutter run --flavor staging --target lib/main_staging.dart

# Production
$ flutter run --flavor production --target lib/main_production.dart

*Private Fit works on iOS, Android, Web, and Windows.


Running Tests πŸ§ͺ

To run all unit and widget tests use the following command:

$ flutter test --coverage --test-randomize-ordering-seed random

To view the generated coverage report you can use lcov.

# Generate Coverage Report
$ genhtml coverage/lcov.info -o coverage/

# Open Coverage Report
$ open coverage/index.html

Working with Translations 🌐

This project relies on flutter_localizations and follows the official internationalization guide for Flutter.

Adding Strings

  1. To add a new localizable string, open the app_en.arb file at lib/l10n/arb/app_en.arb.
{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    }
}
  1. Then add a new key/value and description
{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    },
    "helloWorld": "Hello World",
    "@helloWorld": {
        "description": "Hello World Text"
    }
}
  1. Use the new string
import 'package:private_fit/l10n/l10n.dart';

@override
Widget build(BuildContext context) {
  final l10n = context.l10n;
  return Text(l10n.helloWorld);
}

Adding Supported Locales

Update the CFBundleLocalizations array in the Info.plist at ios/Runner/Info.plist to include the new locale.

    ...

    <key>CFBundleLocalizations</key>
	<array>
		<string>en</string>
		<string>es</string>
	</array>

    ...

Adding Translations

  1. For each supported locale, add a new ARB file in lib/l10n/arb.
β”œβ”€β”€ l10n
β”‚   β”œβ”€β”€ arb
β”‚   β”‚   β”œβ”€β”€ app_en.arb
β”‚   β”‚   └── app_es.arb
  1. Add the translated strings to each .arb file:

app_en.arb

{
    "@@locale": "en",
    "counterAppBarTitle": "Counter",
    "@counterAppBarTitle": {
        "description": "Text shown in the AppBar of the Counter Page"
    }
}

app_es.arb

{
    "@@locale": "es",
    "counterAppBarTitle": "Contador",
    "@counterAppBarTitle": {
        "description": "Texto mostrado en la AppBar de la pΓ‘gina del contador"
    }
}

Open source usage and contributions

This is open source code, so feel free to use it as is, suggest changes or enhancements or create your own version. See CONTRIBUTING.md for detailed guidance on how to setup tools, tests and make a pull request.

Acknowledgement/attribution

This project was originally created by Kelvin Zawadi.

Copyright notice

Copyright 2014 The Flutter Authors. All rights reserved.

This project has copied some variables from the flutter create tool in order to give developers a familiar experience. Variables have been annotated with the copyright.

Please see the original license here.

Maintainers

This project is currently maintained by Kelvin Zawadi

Comments
  • Security Policy violation SECURITY.md

    Security Policy violation SECURITY.md

    This issue was automatically created by Allstar.

    Security Policy Violation Security policy not enabled. A SECURITY.md file can give users information about what constitutes a vulnerability and how to report one securely so that information about a bug is not publicly visible. Examples of secure reporting methods include using an issue tracker with private issue support, or encrypted email with a published key.

    To fix this, add a SECURITY.md file that explains how to handle vulnerabilities found in your repository. Go to https://github.com/atsign-foundation/private_fit/security/policy to enable.

    For more information, see https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository.


    This issue will auto resolve when the policy is in compliance.

    Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

    allstar 
    opened by allstar-app[bot] 19
  • fix: widget overflow

    fix: widget overflow

    Description

    Fixed the widget overflow by changing the margin of HomepageCard. Fixes issue #34.

    screenshot: image

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by bhattabhi013 4
  • Widget Overflow

    Widget Overflow

    Describe the bug

    Overflow is present at widget which is causing the error.

    Steps to reproduce

    1. First 'login'
    2. Then check the 'home' page
    3. See the error

    Expected behavior

    The overflow shouldn't be there.

    Screenshots

    image

    Smartphones

    • Device: [e.g. Realme 5]
    • OS: [e.g. Android 11]
    • Version [e.g. 22]

    Were you using an atApplication when the bug was found?

    No

    Additional context

    No response

    bug 
    opened by bhattabhi013 2
  • Turkish localization added

    Turkish localization added

    Description

    I added localization setting for Turkish translation.

    Type of Change

    • [ x] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by CemTitor 2
  • UI enhanced

    UI enhanced

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [x] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [x] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by dishantzaveri 1
  • feat: ActivityTracker name replaced with Pedometer and homepage UI updated

    feat: ActivityTracker name replaced with Pedometer and homepage UI updated

    Description

    Type of Change

    • [ x] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ x] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by CemTitor 1
  • feat: Bottom navigation bar

    feat: Bottom navigation bar

    Description

    Bottom navigation bar added.

    New Material 3 UI. Simple bloc for state management and lazy singleton instead of factory, as the instance needs to be reused.

    Type of Change

    • [x] ✨ New feature (non-breaking change which adds functionality)
    • [x] 🧹 Code refactor
    enhancement 
    opened by realvarx 1
  • Rename master branch to trunk

    Rename master branch to trunk

    Is your feature request related to a problem? Please describe. No, it is just an enhacement.

    Describe the solution you'd like Change the name of the default branch to 'trunk' instead of 'master' in order to be consistent with the other atsign-foundation repos.

    Additional context It is not something to be done urgently.

    enhancement 
    opened by realvarx 1
  • Request to merge

    Request to merge

    Description

    Noticed errors like this in the console and decided to fix them by using the collection package to help return null whenever a list is empty and the value requested is not available so as to help control and manage errors efficiently. Bad state: No element [log] #0 List.first (dart:core-patch/growable_array.dart:343:5) #1 SettingsFacade.getUserName.<anonymous closure> package:private_fit/…/setting/settings_facade.dart:55 #2 _rootRunUnary (dart:async/zone.dart:1399:47) <asynchronous suspension>

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [x] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by Yczar 0
  • Updated Readme

    Updated Readme

    Description

    Updated maintainers on the readme

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [x] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by tinashe404 0
  • Create SECURITY.md

    Create SECURITY.md

    Description

    Type of Change

    • [ ] ✨ New feature (non-breaking change which adds functionality)
    • [ ] πŸ› οΈ Bug fix (non-breaking change which fixes an issue)
    • [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
    • [ ] 🧹 Code refactor
    • [ ] βœ… Build configuration change
    • [ ] πŸ“ Documentation
    • [ ] πŸ—‘οΈ Chore
    opened by kzawadi 0
  • Feature Request - Confirmation dialogue for change in app status

    Feature Request - Confirmation dialogue for change in app status

    Is your feature request related to a problem? Please describe. No

    Describe the solution you'd like We need a feature that shares clear feedback when the state of the app has changed (confirmation dialogue like β€œactivity saved” or β€œcontact deleted”).

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 0
  • Feature Request - Onboard atSigns

    Feature Request - Onboard atSigns

    Describe the solution you'd like We need a feature that allows people to get free atSigns using it, activate atSigns, and Pair existing atsigns.

    An atSign is your digital identity. It ensures that your data is 100% owned and controlled by you, you can pair your atSign with any app on the atPlatform (the underlying technology behind atSigns) to enable the app to access, but not store your data. The number of things you can do with your atSign will increase as more and more of these atPlatform apps are built.

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 0
  •  Feature Request - View shared activity

    Feature Request - View shared activity

    Is your feature request related to a problem? Please describe. No - Core application feature

    Describe the solution you'd like We need a feature that allows people to see the activities(e.g running or spinning) that are being shared with others in their contacts.

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 0
  • Feature Request - Revoke access to an activity

    Feature Request - Revoke access to an activity

    Is your feature request related to a problem? Please describe. Changing a gym trainer or not in need to share your physical activity with your previous doctor or friend should be simple by removing the access for your activities that don't need to be public to someone.

    Describe the solution you'd like We need a feature that allows people to remove anyone who is can see their activity in the application. This allows people to remove someone whom they have added by their atSign to not be able to access a certain single or more activity.

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 0
  • Feature Request - View home page

    Feature Request - View home page

    Describe the solution you'd like We need a feature that can allow people to navigate back to the home page of the application from other subpages of the application.

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 2
  • Feature Request - Add activity

    Feature Request - Add activity

    Is your feature request related to a problem? Please describe. This core feature allows you to add any activity e.g running to the app.

    Describe the solution you'd like We need a feature that allows people to add any physical activity to the application, for example - running, lifting, cardio, etc.

    You can start the solution by getting started from at_onboarding widget. The at_onboarding is a plugin that allows users to quickly onboard any new sign-in protocol app with their atSignusername. An atSign is a handle (i.e. @alice) that functions as your digital identity. Also, it uses end-to-end encryption to ensure that you can completely control and own the data.

    Activity Details

    Fields (some are optional)

    • [ ] Activity Type
    • [ ] Duration
    • [ ] Location

    Activity Entry type

    • [ ] Manual, using free text and drop down fields
    • [ ] Activity tracker APIs e.g fitbit

    Activities include but are not limited to

    • [ ] Running
    • [ ] Jogging
    • [ ] Walking
    • [ ] Swimming
    • [ ] Cycling
    • [ ] Rowing
    • [ ] Boxing
    • [ ] Dancing
    • [ ] Other

    Activities could also include

    • [ ] Food eaten (Calorie counting)
    • [ ] Water intake
    • [ ] Weight gain/loss
    enhancement Hacktoberfest Intermediate 
    opened by Jatinpandya26 0
Owner
The Atsign Foundation
Now for some internet optimism
The Atsign Foundation
The Integration Test Helper has pre-configured methods that allow for faster test deployment for end to end (e2e) test coverage.

The Integration Test Helper has pre-configured methods that allow for faster test deployment for end to end (e2e) test coverage (using Android and iOS

The Mobile Applications Community 2 Apr 7, 2022
A mobile application for both android and ios made for work out and fitness purpose

It's a mobile application for both android and ios made for work out and fitness purpose with many features you can read about here, but it can be used under all subject you want, well architected code and organized !

Gwhyyy 20 Dec 18, 2022
Mildly encrypted package - An encryption client & server for Dart Native + mobile platforms.

TODO: Put a short description of the package here that helps potential users know whether this package might be useful for them. Features TODO: List w

Andrew Stein 0 Jan 9, 2022
Tea talks - An end-to-end encrypted chat app with Firebase as backend and an in-app synced browser to enjoy watching videos together

Tea-Talks is a chat ?? application where you can create rooms to chat ??️ and wa

Bhargav Reddy 10 Nov 12, 2022
A package for encrypted shared preferences

Prefs Guard Prefs Guard is a data protection wrapper for local storage (Shared Prefs). supporting both IOS & Android. - Notice :- Use Same GuardType t

null 26 Jun 7, 2022
Example of verifying cryptographically signed and encrypted license files using Dart, Ed25519 and AES-256-GCM

Example Dart Cryptographic License Files This is an example of how to verify and decrypt cryptographic license files in Dart, using Ed25519 signature

Keygen 4 Oct 27, 2022
Challenge friends on fitness goals

Fitness Challenge Pursuing your fitness goals is fun together with friends. Challenge your friends for daily activities and see who's leading. You can

Gireesh Puthumana 25 Oct 8, 2022
Flutter fitness/workout app for wger

Mobile app for wger Workout Manager wger is a free, open source flutter application that manages and tracks/logs your exercises and personal workouts,

wger Project 174 Jan 8, 2023
Boozin fitness - A sample app to that will pull data from Google Fit to get the steps count and calories burned

boozin_fitness A sample app to that will pull data from Google Fit to get the st

Abhishek Kumar Gupta 1 Nov 23, 2022
Fitness Tracking App UI

Fitness Tracking App UI Support me on Patreon Watch on Youtube A new Flutter project. Getting Started This project is a starting point for a Flutter a

Syed Abdullah 11 Oct 27, 2022
A fully functional Movies Application built with Flutter. The application built with null safety and clean architecture, also uses OMDB API for fetching movies in the search item

Cinema DB Project Details This project uses null safety feature Project uses clean code architecture (Uncle Bob's Architecture) Project can run on bot

Dhruvam 2 Oct 1, 2022
An application built using Flutter that can be used while playing board games if actual or physical dice is missing . This is a dual dice application.

diceee_utter A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

dev_allauddin 3 Feb 3, 2022
Github Trending app built with Flutter+Redux+Built(Immutable Data)

Github Trending app built with Flutter+Redux+Built(Immutable Data)

huangyanxiong 9 May 13, 2020
Sticker chat is a messaging application built using Flutter, Stream, and Rive

Sticker Chat ?? Sticker chat is a messaging application built using Flutter, Stream, and Rive. It allows users to send and receive messages in real-ti

Neevash Ramdial (Nash) 47 Nov 23, 2022
A Productivity Mobile Application UI kit built with Flutter

Taskez A productivity mobile application UI kit built with Flutter Designs and inspiration by Taskez IOS UI kit. Application Flow - Youtube Show some

Davies Kwarteng 554 Jan 7, 2023
Cross Platform mobile application built using Flutter for a group project

splitz A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Utkarsh Omer 0 Jul 30, 2022