Giter VIP home page Giter VIP logo

tennis-court-scheduling's Introduction

Tennis Court Scheduling

coverage style: very good analysis License: MIT

Schedule people to use the tennis court.

Para leer el README en espaΓ±ol Clic aqui

Features ✨

  • Schedule tennis courts up to 3 people per day
  • Shows the schedules from the current day onwards
  • Automatically deletes past schedules
  • Query the AccuWeather API and store the data in cache
  • Shows the probability of rain from the current day to 4 days ahead
  • 100% unit test/widget coverage
  • English and Spanish locales support

Getting Started πŸš€

Install "derry" package to use scripts in the pubspec.yaml file.

dart pub global activate derry

or run the commands without the script manager mannualy replacing "derry" for the command.

Then get the dependencies with:

flutter pub get

Remember to set the .env file, there is an example example.env you require create an app in AccuWeather to obtain an apikey.

API_URL=<AccuWeather API URL>
API_KEY_WEATHER=<AccuWeather apikey>

And generate the aditional code with build_runner

derry codegen

# or

dart run build_runner build

And you are ready run

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

To build is the same as run

flutter build apk --flavor production --target lib/main_production.dart

Running Tests πŸ§ͺ

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

derry update-coverage

To view the generated coverage report you can use lcov.

derry open-coverage-report

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:tennis_court_scheduling/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"
    }
}
```com.andrexi.tennis_court_scheduling
   com.andrexi.tennis_court_scheduling

`app_es.arb`

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

Update icons

You can change app icon configuration for each flavor in the files flutter_launcher_icons-<flavor> and then run:

dart run flutter_launcher_icons

Update the Splash Screen

To update the splash screen using flutter_native_splash run:

derry update-splash

Update the coverage and its badge

Simply run the following command that contains all the steps to do that.

derry update-coverage

tennis-court-scheduling's People

Contributors

andrexi avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.