Scripts to facilitate generating reports on the health of the Flutter repositories.

Overview

This repository contains scripts written in Dart to report on various aspects of code health within the Flutter repository.

They're probably not terribly useful if you're not a Flutter contributor, but you might find some snippets here that show you how to access Github using either GraphQL or the REST API.

Setup

You must have an environment variable GITHUB_TOKEN set with a valid GitHub token for any of these scripts to work.

Scripts

This repository has the following scripts.

run_release_report.sh

Usage: run_release_report.sh [to-date] Runs a release report from Flutter's 1.20 stable release through the given date.

Creates the files notable-contributors, prs_merged_by_label, prs_merged, issues_closed in Markdown, DOCX, and HTML.

Detailed Instructions

Dependencies

You'll need to have pandoc installed. See here for an installer. The run-release-report.sh script uses pandoc under the hood to convert the generated Markdown to other formats. If you don't have it installed, the script will fail, but you'll have markdown files that you can inspect with a program like emacs or vim.

Under the hood, these scripts ralso ely on the following Dart programs in this repository:

  • bin/notable_contributors.dart
  • bin/clusters.dart
  • bin/prs.dart
  • bin/issues.dart

You can also run any of these Dart applications standalone; instructions are below, or run a script with the --help argument.

Process to get the release report
  1. For run-release-reports.sh to work, you need to have access to a list of organization members. This list is only available to Googlers because it contains PII; for information as to how to create this list, see go/flutter-release-notes-tooling, available on the Google intranet. You'll follow the instructions there, and create a file called go_flutter_org_members.csv. This file should not be committed to Github, as it has PII.
  2. Obtain the commit dates you want which span the release of interest. Typically this is the date for the last tag of interest to the current tag of interest, written in ISO-8601 format (e.g., 2021-05-14T07:22:00-0700). For example, Flutter 2.2 was tagged on 2021-05-14T07:22:00-0700; the latest release of Flutter 2.3 (Flutter 2.3.0-24.1.pre was tagged on 2101-06-25T09:24:00-0700. You can find this information at https://github.com/flutter/flutter/releases. To get a date for something that says something like “7 days ago”, hover over the date and wait about 5 seconds; Github will show the precise date and time of the tag.
  3. Run run-release-reports.sh in the flutter-github-scripts.dart directory. You will need to use the dates you obtained in (3). By default, the script runs from Flutter 2.2 through the current date and time. To change this, you can edit the script and update lines 2 & 4. For sanity’s sake, keep the comment and the date in sync. For example, to run the report from Flutter 2.2 through Flutter 2.3 beta, use the command ./run-release-reports.sh 2021-06-25T09:24:00-0700
  4. Go get a cup of coffee. It takes a while. The script will print status messages along the way. For a three-month release window, expect it to take ~45 minutes.
Files Generated

The script generates the following files:

  • all-contributors-committers.[docx|html|md] - All committers within the date range you specify. Data includes the counts of commits from each contributor as well as the individual commits.
  • all-contributors-reviewers.[docx|html|md] - All reviewers within the date range you specify. Data includes the counts of commits from each contributor as well as the individual commits.
  • notable-contributors-committers.[docx|html|md] - All unpaid committers within the date range you specify. Data includes the counts of commits from each contributor as well as the individual commits. For this to be accurate, go_flutter_org_members.csv must be up to date. See (2), above.
  • notable-contributors-reviewers.[docx|html|md] - All unpaid reviewers within the date range you specify. Data includes the counts of reviews from each contributor as well as the individual reviews. For this to be accurate, go_flutter_org_members.csv must be up to date. See (2), above.
  • prs_merged_by_label.[docx|html|md] - Pull requests committed in the date range, clustered by label, from largest to smallest by label.
  • prs_merged.[docx|html|md] - All pull requests merged in the date range, sorted by pull request number.
  • issues_closed.[docx|html|md] All issues closed in the date range, sorted by the issue number.

If you're doing this as part of a real release, you should save these results. Googlers can save these files For housekeeping; these should be copied to a new release directory on Flutter’s shared drive. This link is only available to Googlers.

The script generates output in DOCX, Markdown and HTML formats. You can immediately import the .docx files into Google Drive for easy viewing, copying, and pasting with formatting.

Some files, notably prs_merged_by_label and prs_merged, may require light editing to get them in the format required for the PR to the web site. See an existing release notes doc, like website/src/docs/development/tools/sdk/release-notes/release-notes-2.2.0.md for an example.

Notes

As of Dart 2.14, there’s an issue with a dependency of a dependency (the package uuid) that has yet to be properly migrated. KF6GPE hasn’t had time to fix this, and has instead chosen to pin the Dart version in pubspec.yaml to Dart 2.13.4. This is the version of Dart shipping with Flutter 2.2, so for the next stable release, you should be able to use that version of Dart. This and the dependency scripts may not work for you after that unless you pin the Dart version.

The scripts occasionally time out when Github is being cranky, and you’ll see errors. Don’t panic; just go for a walk and re-run the script.

bin/report.dart

This tool is a combination of sub-tools to query for github info.

  • weekly: run dart bin/report.dart weekly to see a report of last week's github open and closed issues

bin/prs_landed_weekly.dart

Usage: dart bin/prs_landed_weekly.dart [-f from-date] [-t to-date]

Returns a CSV of the number of PRs merged to all repositories in the Flutter repository each week from from-date until to-date.

If not specified, the report spans the period from 2019-11-01 until the current date. (Weeks thus end on Fridays, as 2019-11-01 was a Friday).

bin/today_report.dart

Usage: dart bin/today_report.dart [-f from-date] [-t to-date]

Returns a Markdown document consisting of the number of open P0 issues, P0 issues opened in the period from from-date until to-date, and P0 issues closed in the period from from-date until to-date.

If not specified, the report spans the previous week.

Markdown output includes a preamble suitable for emailing to the team when the Markdown is run through pandoc.

bin/performance_report.dart

Usage: dart bin/performance_report.dart [-f from-date] [-t to-date]

Returns a Markdown document consisting of the number of open severe: performance issues, severe: performance issues opened in the period from from-date until to-date, and severe: performance issues closed in the period from from-date until to-date.

If not specified, the report spans the previous week.

Markdown output includes a preamble suitable for emailing to the team when the Markdown is run through pandoc.

bin/regression_report.dart

Usage: dart bin/regression_report.dart [-f from-date] [-t to-date]

Returns a Markdown document consisting of the number of open severe: regression issues, severe: regression issues opened in the period from from-date until to-date, and severe: regression issues closed in the period from from-date until to-date.

If not specified, the report spans the previous week.

Markdown output includes a preamble suitable for emailing to the team when the Markdown is run through pandoc.

bin/open_issue_count_by_week.dart

Note: see also the dart bin/report.dart weekly command.

Usage: dart bin/open_issue_count_by_week.dart [-f from-date] [-t to-date]

Returns a TSV document consisting of the number of issues opened each
week from from-date until to-date.

Weeks end on Saturday.

If not specified, the report spans the previous week.

bin/issue.dart

Usage: dart bin/issue.dart [--tsv] issue-number

Returns a summary of the issue in Markdown or TSV format.

bin/pr.dart

Usage: dart bin/pr.dart [--tsv] pr-number

Returns a summary of the pull request in Markdown or TSV format.

bin/prs.dart

Usage: dart bin/prs.dart [--tsv] [--label label] [--merged from-date to-date] [--closed from-date to-date]

By default, returns a summary of the open pull requests in the Flutter repositories in Markdown format. When passed --closed and two dates in ISO 8601 format, shows the range of PRs closed between those two dates inclusive. When passed --merged and two dates in ISO 8601 format, shows the range of PRs merged between those two dates inclusive. --merged and --closed are mutually exclusive. When passed --skipAutorollers, skips autoroller PRs.

bin/issues.dart

Usage: dart bin/issues.dart [--tsv] [--label label] [--closed from-date to-date]

By default, returns a summary of the open issues in Markdown format. When passed --closed and two dates in ISO 8601 format, shows the range of issues closed between those two dates inclusive.

bin/clusters.dart

Usage: dart bin/clusters.dart arguments

Returns Markdown containing clusters of issues or PRs by label, assignee, or author according to the arguments:

  • Pass prs to cluster pull requests, or issues to cluster issues.

  • Pass labels to cluster by labels, or authors to cluster by authors.

  • Pass closed to cluster on closed items; otherwise cluster open issues or prs. If you pass closed, you must also pass the ISO dates beginning and ending the period you're interested in.

  • Pass merged to cluster on merged items; otherwise cluster open issues or prs. If you pass merged, you must also pass the ISO dates beginning and ending the period you're interested in.

  • Pass alphabetize to sort clusters alphabetically instead of largest-to-smallest.

  • Pass customers-only when clustering issues by label to show only those issues with customer labels.

  • Pass -ranking to include a ranked list of other labels for each label at the end of the report.

Examples:

dart bin/clusters.dart --issues --labels --customers-only

Shows all open issues with customer labels, sorted in decreasing order of cluster size.

dart bin/clusters.dart --issues --labels --customers-only --alphabetize

Shows all open issues with customer labels, sorted by the customer label.

dart bin/clusters.dart --issues --labels --closed 2020-01-01 2020-05-01

Shows all closed issues between January 1 2020 and May 1 2020.

dart bin/clusters.dart --prs --authors

Shows all open PRs by author, in decreasing order of number of open PRs per author.

dart bin/clusters.dart --prs --authors

Shows all open PRs by author, in alphabetical order.

dart bin/clusters.dart --prs --authors --closed 2020-05-01 2020-05-03

Shows all authors closing PRs between May 1 2020 and May 3 2020.

bin/notable_contributors.dart

Usage: dart bin/notable_contributors.dart [--all-contributors] [--merged from-date to-date] [--closed from-date to-date]

Generates a list of non-Googler-submitted PRs (open/closed/merged) in the date range clustered by contributor.

If --all-contributors is specified, includes all, not just non-Google, contributors.

Relies on a file go_flutter_org_members.csv in the root directory consisting of a CSV of all organization members, with the following columns:

GitHub Login,Discord username (if different),Name,Company,"When Added (original data gave GitHub join date, not Flutter add date)",Reason for Adding,Additional notes,Include in reports

Google employees may contact KF6GPE for a current snapshot of this list.

bin/regressions.dart

Usage: dart bin/regressions.dart [--tsv] [--between from-date to-date]

Generates a list of regressions found in all releases (we started tracking after 1.11).

Dates are in ISO 8601 format.

bin/reaction_count.dart

Usage: dart bin/reaction_count.dart issue

Indicates the total number of positive, negative, and neutral reactions across the issue and all comments.

bin/top_reactions.dart

Usage: dart bin/top_reactions.dart [-only-unprioritized]

Dumps all open issues and counts of positive, negative, and neutral reactions in TSV format. For import to analyze in Google Sheets.

If only-unprioritize is passed, only show unprioritized issues.

enumerate_team_members.dart

Usage: dart bin/enumerate_team_members.dart [always-include-team] organization-login Dumps a TSV list of all teams in the indicated organization, with the members of each team.

search.dart

Usage: dart bin/search [--tsv] github query Returns the first 1,000 results of the given github query in either TSV or markdown format.

priority_over_time.dart

Usage dart bin/priority_over_time.dart [--queries] [--customers] [--summarize] [--delta <days> --from date --to date

Returns a summary of open and closed P0s, P1s, and P2s weekly over the given span. If --summaries is passed, reports in TSV; otherwise markdown. If --queries is passed, shows each search term used for the open and closed queries. if --customersis passed, shows only issues that also have at least one customer label. If --delta is provided with a numeric argument, reports the counts for the periods in delta days; otherwise 7 days is assumed.

enumerate_cherrypicks

Usage: dart bin/enumerate_cherrypicks [--summary] [--formatted] --release x.y

Lists pending cherrypicks in the Flutter and Dart repositories for the release x.y.

If [--summary] is provided, shows the TSV summaries for input into the hotfix review sheet. If [--formatted] is provided, shows the list of hotfixes in HTML for import into a release plan.

If neither is provided, both are shown.

flutterfire_closed_over_time.dart

Usage dart bin/flutterfire_closed_over_time.dart [--queries] [--customers] [--summarize] [--delta <days> --from date --to date

Returns a summary of open and closed high priority issues weekly over the given span for firebaseextended/flutterfire issues. If --summaries is passed, reports in TSV; otherwise markdown. If --queries is passed, shows each search term used for the open and closed queries. if --customersis passed, shows only issues that also have at least one customer label. If --delta is provided with a numeric argument, reports the counts for the periods in delta days; otherwise 7 days is assumed.

flutterfire_all_closed_over_time.dart

Usage dart bin/flutterfire_all_closed_over_time.dart [--queries] [--customers] [--delta <days> --from date --to date

Returns a TSV summary of open and closed issues weekly over the given span for firebaseextended/flutterfire issues. If --summaries is passed, reports in TSV; otherwise markdown. If --queries is passed, shows each search term used for the open and closed queries. if --customersis passed, shows only issues that also have at least one customer label. If --delta is provided with a numeric argument, reports the counts for the periods in delta days; otherwise 7 days is assumed.

Comments
  • add stats reporting for dart core and dart tools packages

    add stats reporting for dart core and dart tools packages

    • add stats reporting for dart core and dart tools packages

    To the dart bin/report.dart weekly stats reporting, this adds:

    • --dart-core, to show stats for the dart core (tier 1) packages
    • --dart-tools, to show stats for the dart tools (tier 2) packages
    • --month, to show stats on a monthly basis (instead of weekly)

    Here's the new CLI:

    Run a week-based report on issues opened and closed.
    
    Usage: report weekly [arguments]
    -h, --help                 Print this usage information.
        --dart-core            Query the Dart Ecosystem core packages.
        --dart-tools           Query the Dart Ecosystem tools packages.
        --date=<2022-01-26>    Specify the date to pull data from (defaults to the last full week).
        --month                Return stats based on calendar months (instead of weeks).
    
    opened by devoncarew 2
  • add a command to generate the weekly commit rate for many dart repos

    add a command to generate the weekly commit rate for many dart repos

    • add a command to generate the weekly commit rate for many dart repos

    We'll use this info to help figure out the load on our CIs (and the review load) for auto-rolling dependencies into the dart sdk repo.

    opened by devoncarew 1
  • add stat reporting for dart core and dart tools packages

    add stat reporting for dart core and dart tools packages

    • add stat reporting for dart core and dart tools packages

    To the dart bin/report.dart weekly stats reporting, this adds:

    • --dart-core, to show stats for the dart core (tier 1) packages
    • --dart-tools, to show stats for the dart tools (tier 2) packages
    • --month, to show stats on a monthly basis (instead of weekly)

    Here's the new CLI:

    Run a week-based report on issues opened and closed.
    
    Usage: report weekly [arguments]
    -h, --help                 Print this usage information.
        --dart-core            Query the Dart Ecosystem core packages.
        --dart-tools           Query the Dart Ecosystem tools packages.
        --date=<2022-01-26>    Specify the date to pull data from (defaults to the last full week).
        --month                Return stats based on calendar months (instead of weeks).
    
    opened by devoncarew 1
  • Update README.md

    Update README.md

    Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.

    List which issues are fixed by this PR. You must list at least one issue.

    If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.

    Pre-launch Checklist

    • [ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
    • [ ] I read the Flutter Style Guide recently, and have followed its advice.
    • [ ] I signed the CLA.
    • [ ] I listed at least one issue that this PR fixes in the description above.
    • [ ] I updated/added relevant documentation (doc comments with ///).
    • [ ] I added new tests to check the change I am making, or this PR is test-exempt.
    • [ ] All existing and new tests are passing.

    If you need help, consider asking for advice on the #hackers-new channel on Discord.

    opened by csells 1
  • add a 'bin/report.dart weekly' report

    add a 'bin/report.dart weekly' report

    • adds a 'bin/report.dart weekly' report
    Run various reports on the Flutter related GitHub repositories.
    
    Usage: report <command> [arguments]
    
    Global options:
    -h, --help    Print this usage information.
    
    Available commands:
      weekly   Run a week-based report on issues opened and closed.
    
    Run "report help <command>" for more information about a command.
    
    opened by devoncarew 1
  • Update this repo to use package:lints

    Update this repo to use package:lints

    Update this repo to use package:lints; done as several commits for easier review.

    Note that dart fix was able to address many of the issues (~100). Below are the ones that remained - several were then addressed by hand:

    Analyzing flutter-github-scripts.dart... 1.2s
    
       info • bin/enumerate_team_members.dart:67:11 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/enumerate_team_members.dart:82:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/enumerate_team_members.dart:122:9 • Prefer typing uninitialized variables and fields. • prefer_typing_uninitialized_variables
       info • bin/enumerate_team_members.dart:125:17 • Avoid empty catch blocks. • empty_catches
       info • bin/enumerate_team_members.dart:127:9 • Prefer typing uninitialized variables and fields. • prefer_typing_uninitialized_variables
       info • bin/enumerate_team_members.dart:131:17 • Avoid empty catch blocks. • empty_catches
       info • bin/enumerate_team_members.dart:155:9 • Prefer typing uninitialized variables and fields. • prefer_typing_uninitialized_variables
       info • bin/enumerate_team_members.dart:158:17 • Avoid empty catch blocks. • empty_catches
       info • bin/enumerate_team_members.dart:160:9 • Prefer typing uninitialized variables and fields. • prefer_typing_uninitialized_variables
       info • bin/enumerate_team_members.dart:163:17 • Avoid empty catch blocks. • empty_catches
       info • bin/flutterfire_all_closed_over_time.dart:80:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/flutterfire_closed_over_time.dart:109:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/notable-contributors.dart:1:1 • Name source files using `lowercase_with_underscores`. • file_names
       info • bin/notable-contributors.dart:153:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/priority_over_time.dart:109:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • bin/who_is_doing_what.dart:227:11 • Equality operator `==` invocation with references of unrelated types. • unrelated_type_equality_checks
       info • bin/widw-server.dart:1:1 • Name source files using `lowercase_with_underscores`. • file_names
       info • lib/github_datatypes.dart:128:11 • Equality operator `==` invocation with references of unrelated types. • unrelated_type_equality_checks
       info • lib/github_datatypes.dart:150:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:603:37 • Equality operator `==` invocation with references of unrelated types. • unrelated_type_equality_checks
       info • lib/github_datatypes.dart:733:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:763:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:932:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:963:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:1107:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:1140:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:1759:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_datatypes.dart:1783:9 • DO use curly braces for all flow control structures. • curly_braces_in_flow_control_structures
       info • lib/github_queries.dart:155:25 • Name non-constant identifiers using lowerCamelCase. • non_constant_identifier_names
       info • lib/github_queries.dart:497:9 • Name non-constant identifiers using lowerCamelCase. • non_constant_identifier_names
       info • lib/github_queries.dart:510:9 • Name non-constant identifiers using lowerCamelCase. • non_constant_identifier_names
       info • lib/github_queries.dart:520:9 • Name non-constant identifiers using lowerCamelCase. • non_constant_identifier_names
    
    32 issues found.
    

    Three lints were ignored; one - unrelated_type_equality_checks - has 3 violations. They should likely all be investigated as they're almost certainly bugs. I don't know if the scripts they're occurring in are used anymore; if not, we should just delete the scripts.

    opened by devoncarew 1
  • Null safety

    Null safety

    Actually do the migration to null safety.

    In testing following this, I believe there are several broken scripts (unclear if they're broken from null safety or not).

    The firebase scripts return 0s. Several scripts hang (or at least take a long time?) A few scripts (e.g. performance_report) error out with a GraphQL error about " in the label string. Probably a result of package:graphql upgrades, not entirely sure how it's supposed to be resolved.

    This is a find patch to work from to complete the null safety migration, but it would take someone familiar with this code to actually complete this (and end up with all the scripts working 100%) I think?

    Please feel welcome to ignore this.

    opened by eseidel 1
  • Fix analysis errors

    Fix analysis errors

    I went looking for github scripts in Dart and came across these. :)

    When I opened them in Visual Studio Code, there were various analyzer errors which I fixed here.

    I also applied dartfmt as part of editing. Sorry? :(

    Please review carefully, for any bugs which these fixes may be hiding (e.g. unused variables which the analyzer error was showing a bug in the code).

    I also fixed the graphql_query_tests.dart to use the throwsException matcher, instead of hand-rolled one. This required changing from throwing bare strings to throwing ArgumentError.

    publish_to: none was required since there was a git-based package dependency (which are not allowed on pub I guess?)

    I tested today_report.dart as well as the graphql_query_tests.dart (graphql_parse_tests do not pass currently, I did no try to make them pass).

    Please feel welcome to reject this. I was just fixing the errors to make it easier to edit locally (I intend to add a few more scripts for my personal use if nothing else). Thank you!

    opened by eseidel 1
  • add a 'report release' commmand to generate stable release metedata

    add a 'report release' commmand to generate stable release metedata

    add a 'report release' command to generate stable release metadata

    • add a new release command to the dart bin/report.dart tool
    • this generates an issues_closed.md file in the format of the older bin/issue.dart command
    • it uses graphql to perform the filtering on the server (query) side instead of the client side, and pages through the closed issues per week, in order to avoid a 1000 issues limit for the 'search' function

    This new command generally always completes, and takes about 30 seconds to run.

    opened by devoncarew 0
  • Update run-release-reports.sh

    Update run-release-reports.sh

    updated for Flutter 2.10

    Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.

    List which issues are fixed by this PR. You must list at least one issue.

    If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.

    Pre-launch Checklist

    • [ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
    • [ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
    • [ ] I read the Flutter Style Guide recently, and have followed its advice.
    • [ ] I signed the CLA.
    • [ ] I listed at least one issue that this PR fixes in the description above.
    • [ ] I updated/added relevant documentation (doc comments with ///).
    • [ ] I added new tests to check the change I am making, or this PR is test-exempt.
    • [ ] All existing and new tests are passing.

    If you need help, consider asking for advice on the #hackers-new channel on Discord.

    opened by csells 0
  • remove an unused script (and the associated dep)

    remove an unused script (and the associated dep)

    • remove an unused script - who_is_doing_what.dart
    • remove the associated package dep - git: https://github.com/csells/columnar-output.dart.git

    This change will let us migrate this repo to null safety (https://github.com/csells/columnar-output.dart.git was not migrated).

    opened by devoncarew 0
  • add a command to query for default branch names

    add a command to query for default branch names

    • add a command to query for default branch names

    Running:

    dart bin/report.dart default-branch

    Will return:

    Repository, Default branch, Stars
    dart-lang/.github, main, 4
    dart-lang/api.dart.dev, master, 15
    dart-lang/appengine, master, 95
    dart-lang/args, master, 169
    ...
    
    opened by devoncarew 0
Owner
Flutter
Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.
Flutter
A flutter based app using python scripts as backend for a quotes app.

Fluthon APP A new Flutter project which is supported from a python script and lists quotes . Deployment ?? -> /Script - python main.py. -> Run main.d

Yash Joshi 4 Nov 16, 2022
used REStful APIs to fetch reports of covid-19

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

Aun Abbas Ali 2 Oct 9, 2022
A Flutter project that list all the repositories of any specific user

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

null 0 Dec 21, 2021
tmodinstaller - A beautiful mod installer for minecraft supporting custom repositories and more

tmodinstaller A beautiful mod installer for minecraft supporting custom repositories and more. TMod Installer is a cross platform mod installer and up

Tricked 16 Aug 28, 2022
A doctor consultant app, called Health Care. Written with Flutter.

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

Samilly Nunes 1 Oct 28, 2021
Student Management app for the Faculty of Health Science

Software Design Project - App Repository Student Management app for the Faculty of Health Science Build-Test Status Developers Sedzani Suraksha Favour

Derrin 3 May 24, 2021
Health Performance Monitor ui design in a neomorphism style.

Health Performance Monitor UI Health Performance Monitor ui design in a neomorphism effect built using Flutter. Show some ❤️ and star the repo, it mak

Roshini Mahendran 11 Jun 17, 2022
Mibos App. Mind, Body, and Spirit Health

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

Shalom Sims 1 Oct 27, 2021
A simple personal health record app.

PHR A personal health record, you can record your weight, height, blood pressure, blood glucose to track your own health. TODO Mocup UI Data Model for

Anuchit Chalothorn 6 Dec 20, 2022
LiveLine - A Health Monitoring/Awareness/Risk-Alert App which will display a Person's Heart rate, SpO2 level concentration and Body Temperature

A Health Monitoring/Awareness/Risk-Alert App which will display a Person's Heart rate, SpO2 (oxygen% in the body) level concentration and Body Temperature

Arpit Patawat 6 Jun 7, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
a project for learning all Flutter Widgets , sync from flutter.dev the officia website.

Flutter Widgets Catalog (WIP) 计划 1、使用Flutter开发一个全平台的Flutter Widgets Catalog APP,并且开源。在这个APP中可以通过图形化的方式查看所有Widgets的介绍,示例,视频教程。 2、所有文档内容由前一天从flutter.dev

ezshine 32 Aug 3, 2022
A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案)

A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案) 100% 还原 UI,只需要按照设计图写的宽高写即可 先看图片,设置的标准宽度是 360 iPhone 8 --------------------------

聂志洋 108 Sep 27, 2022
Flutter 2.0 (Null safety) Basic, Dynamic & Silver style Staggered Grid views made using flutter staggered grid view package. 🦺

Staggered Grid View Developement Stack Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Nakshatra Singh 9 Oct 28, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
Email and Password Authentication In Flutter & Firebase in Flutter 2.2

Email and Password Authentication In Flutter & Firebase in Flutter 2.2

BackSlash Flutter 43 Nov 23, 2022
Learn Flutter on Flutter! A widget directory with implementation samples!

Fludget Browse through a variety of widgets used in flutter This application is developed to learn Flutter using Flutter. Different widgets used in fl

ACM VIT 29 Nov 23, 2022