{"id":21862275,"url":"https://github.com/innfactory/flutter-todo-starter","last_synced_at":"2026-05-02T23:35:35.667Z","repository":{"id":179978787,"uuid":"629417305","full_name":"innFactory/flutter-todo-starter","owner":"innFactory","description":"Flutter Template for starting new projects. It includes a Flutter app with offline sync and a Scala backend.","archived":false,"fork":false,"pushed_at":"2024-05-21T14:11:03.000Z","size":3918,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-29T17:36:24.837Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/innFactory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-18T09:15:52.000Z","updated_at":"2025-06-14T10:43:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"5fad82ca-a25b-42df-9bdb-69a3fbb975b4","html_url":"https://github.com/innFactory/flutter-todo-starter","commit_stats":null,"previous_names":["innfactory/flutter-todo-starter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/innFactory/flutter-todo-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fflutter-todo-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fflutter-todo-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fflutter-todo-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fflutter-todo-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/innFactory","download_url":"https://codeload.github.com/innFactory/flutter-todo-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/innFactory%2Fflutter-todo-starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269417448,"owners_count":24413378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-28T03:14:32.342Z","updated_at":"2025-10-17T16:09:02.918Z","avatar_url":"https://github.com/innFactory.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# innFactory Flutter Todo Starter \u003cimg src=\"./docs/innFactoryIcon.svg\" width=\"50\" height=\"50\"\u003e\n\nThis project is a starting point for scalable and complex flutter applications.\n\n## Getting Started\n\n### FVM / Flutter\n\nThis project uses [fvm](https://fvm.app/) to manage flutter versions. If you have already installed flutter or dart on your machine, you should uninstall it before installing fvm. After installation run the following command to install the correct flutter version:\n\n```bash\n# To install the correct flutter version defined in .fvm/fvm_config.json\nfvm use\n\n# The template ususally uses the stable version of flutter. FVM doesn't care if your stable version is up to date. To make sure you have the latest stable version run the following command:\nfvm flutter upgrade\n```\n\nTo make working with `fvm` easier we recommend creating aliases for the `flutter` and `dart` commands in your `.bashrc` or `.zshrc` file:\n\n```bash\nalias flutter=\"fvm flutter\"\nalias dart=\"fvm dart\"\n```\n\nThis will ensure that running any `flutter` or `dart` command always uses the project's defined flutter version or the accompanying dart version.\n\n### Melos\n\nAdditionally since the project uses an architecture made up of multiple packages, we use [melos](https://melos.invertase.dev/~melos-latest) to manage the packages. To install the correct version of melos and initialize the project run the following command:\n\n```bash\nflutter pub get\n```\n\nWe also recommend you setup an alias for working with melos:\n\n```bash\nalias melos=\"flutter pub run melos\"\n```\n\nIn the `melos.yaml` File in the project root directory you can find all the scripts that are available to you. To run a script simply run the following command:\n\n```bash\nmelos run \u003cscript_name\u003e\n```\n\nThe most important commands are:\n\n* `melos bs` or `melos boostrap` - Run the [bootstrap](https://melos.invertase.dev/~melos-latest/commands/bootstrap) command (Install all dependencies in all packages)\n* `melos run codegen` - Run `build_runner` in all relevant packages\n\n### Running the App\n\nThe app has three environments: `development`, `staging` and `production`. But only\n`development` is initially configured.\n\nUsing VSCode all environments are configured as launch configurations. If you need to run the app from the command line you can use the following command:\n\n```bash\nflutter run --flavor \u003cenvironment\u003e --target app/lib/main_\u003cenvironment\u003e.dart\n\n# Example\nflutter run --flavor development --target app/lib/main_development.dart\n```\n\n\u003e Note: The mocked sign in credentials are `email` and `password`.\n\n\n## Project structure\n\nGenerally the project consists of the following packages.\n\n### **app** (`app`)\n\nThis is the entry point for launching the app and contains the ui pages and routing.\n\n### **core** (`packages/core`)\n\nThe core package contains the EnvironmentConfig, logging and utility functions used in all packages, etc. It also acts as a dependency core, providing essential packages with centrally defined versions.\n\n### **database** (`packages/database`, also referenced as \"local\")\n\nThe database package contains the database and the corresponding local dtos, tables and daos.\n\n### **api-client** (`packages/api-client`)\n\nThe api client package contains a generated api client, which processes the basic network requests and generates the corresponding remote dtos.\n\n### **api** (`packages/api`, also referenced as \"remote\")\n\nThe api package references the generated api client and acts as a proxy which injects e.g. the auth token and provides wrapper functions for network requests for each feature.\n\n### **feature packages** (e.g. `packages/todo`)\n\nEach feature has its own package, which is divided into the following sections:\n\n- application: The application folder contains the logic for the ui, e.g. controller and usecases, as well as forms\n- domain: The domain folder contains models,  repositories, provider and widgets\n- infrastructure: The infrastructure folder contains the repository implementation and mapper functions\n\n### Functional Programming\n\nThe Project uses functional programming patterns from [fpdart](https://pub.dev/packages/fpdart).\n\n### Backend\n\nThis repository also contains a simple backend service to store the todos. Get it running by following the instructions in the [backend README](./backend/README.md).\n\nYou will need to configure your IP address in the `packages/core/lib/src/environment.dart` file. To get the app connected to your local backend instance.\n\n### Flutter introduction tasks\nThis repository also contains simple tasks to get familiar with the structure.\nThese are available in [english](flutter_introduction_en.md) and [german](flutter_introduction_de.md).\n\n\n\n\n### Screenshots\n\u003cimg src=\"./docs/todo_page.png\" width=\"195\"  \u003e \u003cimg src=\"./docs/sync_overview.png\" width=\"195\"\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnfactory%2Fflutter-todo-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finnfactory%2Fflutter-todo-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finnfactory%2Fflutter-todo-starter/lists"}