Skip to content

Commit

Permalink
Merge branch 'development' into ft/setup-deeplinks
Browse files Browse the repository at this point in the history
  • Loading branch information
Xazin authored Feb 28, 2023
2 parents eb1debb + 194e955 commit f59cc83
Show file tree
Hide file tree
Showing 113 changed files with 3,181 additions and 1,299 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
workflow_dispatch:

env:
flutter_version: "3.3.4"
flutter_version: "3.7.1"
flutter_channel: "stable"
java_version: "12.x"

Expand Down
46 changes: 41 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,41 @@
# collaction_app

Welcome to [CollAction](https://collaction.org), the first CrowdActing platform in the world!

The CollAction app is written in Flutter and fully opensource. Would you like to contribute to this project? Send an email to [email protected] and we'll get in touch :)
<a href="https://collaction.org/">
<h1 align="center">
<picture>
<img alt="Flutter" src="https://collaction.org/github/collaction-logo-large.png">
</picture>
</h1>
</a>

**CollAction cross-platform mobile application (iOS and Android)**

[![collaction](https://collaction.org/github/collaction-website-badge.svg)](https://collaction.org)
[![codecov](https://codecov.io/gh/CollActionteam/collaction_app/branch/development/graph/badge.svg?token=UVTCEGI5O1)](https://codecov.io/gh/CollActionteam/collaction_app)
[![workflow](https://github.com/CollActionTeam/collaction_app/actions/workflows/ci.yml/badge.svg?branch=development)](https://github.com/CollActionteam/collaction_app/actions)

## Contributing

All contributions are welcome, whether it is filing a bug report, filing a feature request, opening a pull request, or any other contribution.

We have a couple of documents which will guide you towards a good first contribution, our contributing documentation walks you through all of our conventions that we require you to uphold when contributing.

- [Contributing to CollAction](https://github.com/CollActionteam/collaction_app/blob/development/docs/CONTRIBUTING.md)

Additionally, if you want to do development, we have written a document that will help you setup your local environment.

- [Getting Started](https://github.com/CollActionteam/collaction_app/blob/development/docs/GETTING_STARTED.md)

## Community

We are working on building an extensive community feature that will help us grow and bond, meanwhile you can checkout our socials, follow us, and share your feedback.

[![Instagram](https://img.shields.io/badge/Instagram-833AB4?style=for-the-badge&logo=instagram&logoColor=white)](https://www.instagram.com/collaction_org/)
[![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/CollAction_org)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/company/stichting-collaction)
[![CollAction Website](https://img.shields.io/badge/website-000000?style=for-the-badge&logo=About.me&logoColor=white)](https://collaction.org)

## Download

The CollAction application is readily available and free to use from the Apple AppStore and Google Play.

[![AppStore - CollAction](https://img.shields.io/badge/App_Store-0D96F6?style=for-the-badge&logo=app-store&logoColor=white)](https://apps.apple.com/us/app/collaction-power-to-the-crowd/id1597643827)
[![Google Play - CollAction](https://img.shields.io/badge/Google_Play-414141?style=for-the-badge&logo=google-play&logoColor=white)](https://play.google.com/store/apps/details?id=org.collaction.collaction_app)
Binary file added assets/images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/unauthenticated_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 37 additions & 13 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,36 @@
# Contributing to CollAction

We welcome any and all contribution. To make contributing easy we have setup this document, describing guidelines that will make your contribution smoother.

- [Filing an issue](#filing-an-issue)
- [Filing a feature request](#feature-request)
- [Branches naming conventions](#branches)
- [Commit conventions](#commits)
- [Pull requests](#prs)
- [Filing an issue](#filing-an-issue-or-a-bug)
- [Filing a feature request](#filing-a-feature-request)
- [Branches naming conventions](#branches-naming-conventions)
- [Commit conventions](#commit-conventions)
- [Pull requests](#pull-requests)

# Filing an issue or a bug

# <a name="filing-an-issue"></a> Filing an issue or a bug
We are super stoked if you are ready to file your first issue/bug report! If that is the case, please use the issue template or [click here to file a bug report](https://github.com/CollActionteam/collaction_app/issues/new?assignees=&labels=&template=bug_report.md&title=%5BBUG%5D%3A+Your+issue+title+here).

Before filing an issue, try searching in the issues for keywords related to the issue you are experiencing, there is a chance that someone else already filed the same issue!

It's important when you file an issue, that you try to complete the template as much as possible, this helps with narrowing down the issue, discussing possible solutions, and in the end solving the issue and continuing to build great features!

But fret not, if you somehow have a hard time finding the information requested in the template, we will do our best to help you after you have created the issue. Keep in mind, the most important thing when filing an issue, **is the steps on how to reproduce the bug!**
# <a name="feature-request"></a> Filing a feature request

# Filing a feature request

A feature request is all you need when you have a spark of inspiration. When filing a feature request you do it in the [issues section](https://github.com/CollActionteam/collaction_app/issues), remember to select the feature request template, or [click here to start filing a feature request](https://github.com/CollActionteam/collaction_app/issues/new?assignees=&labels=&template=feature_request.md&title=%5BSUGGESTION%5D%3A+Your+suggestion+title+here).

Describe your idea in as much detail you can, no need to be super technical, but the better your idea is described, the easier its intent is to understand. Sadly it's not easy to guarantee that all features are as relevant, or all features will be implemented, we have to filter them to select the features with the most value. Don't be discouraged if your first feature request is denied, feel free to try another feature.

Before filing a feature request, try searching in the issues for keywords related to the feature request you have in mind, there is a chance that someone else already filed the same or a similar request!
# <a name="branches"></a> Branches naming conventions

# Branches naming conventions

We use simple naming conventions for branches, to easily navigate and track multiple branches across features. Branches follow a 3 part logic, the first part describes the type of work is being done on the branch.

<a name="tags"></a>Often used tags are: `feat`, `feature`, `chore`, `task`, `refac`, `refactor`, `fix`, `bugfix`, `docs`, `documentation`, etc.
Often used tags are: `feat`, `feature`, `chore`, `task`, `refac`, `refactor`, `fix`, `bugfix`, `docs`, `documentation`, etc.

The second part is what issue or feature the branch relates to. This is used by taking the issue number, and prefixing it with `gh-`.

Expand All @@ -38,56 +44,74 @@ These three parts are separated by a slash (`/`), and concatenating the parts ex
`feat/gh-104/profile-avatar`, `chore/gh-97/update-readme`, etc.

Don't use underscore (`_`) in branch naming, and don't use uppercase letters.
# <a name="commits"></a> Commit conventions

# Commit conventions

To ensure our commit history stays clean, and can more easily be used for tracking, we follow some simple conventions that go hand in hand with our [branches naming conventions](#branches).

The format for the commit title is:
`<tag>(<scope>): <subject>`
`<tag>(<scope>): <subject>`

The format for a commit with body and footer is:

```
<tag>(<scope>): <subject>
<newline>
<body>
<newline>
<footer>
```

A full example commit:

```
feature(user): add missing user repository method
Motivation: Ability to update the authenticated user was missing
Closes: #117 Relates: #132
```

### Tag

The tag describes the type of work that was actually done in the commit. This can differentiate from the branch name which the commit comes from, in case something changed and the purpose of the commit is not the same as it was intended. Most of the times, the commit tag will be the same as the branch tag.

See [example tags](#tags) from the branch naming conventions section.

### Scope
The scope is not required, in case the scope is specific then it should be added for clarity.

The scope is not required, in case the scope is specific then it should be added for clarity.

See [example scopes](#scopes) from the branch naming conventions section.

### Subject

The subject should be a short description written in clear, imperative and present tense. Use keywords in present tense such as `update`, `change`, `modify`, etc.

Examples: `update text to fit ui copy`, `hide tabs on profile`, `show onboarding on first app open`, etc.

### Body

Similar to the subject, always use imperative, present tense. The body can be used to present the motivation for the changes in the commit. The body is not a required part, similar to the scope!

### Footer

The footer is used for referencing Github issues, and if the commit is related to one or more specific issues, they should be linked in the footer.

References to issues with Github are made by prefixing the issue number with `#`.

Often used examples: `Relates: #100`, `Closes: #97 Relates: #103`.

If the commit relates to multiple issues, you can repeat the keyword for any amount of times necessary: `Relates: #60 Relates: #69`.
# <a name="prs"></a> Pull requests

# Pull requests

When your feature is ready to be merged, you can open a pull request to `development`, please do note, we never allow pull requests directly to `master`.

Use your commit title for the PR title as well, if you have multiple small commits on your branch, squash them all into one commit and make sure it follows [our commit conventions](#commits).

Remember to reference any github issues that might be related to your PR, in the PR message!

One rule for when you are done opening your PR:

- Don't tag everyone to review/approve your PR, we keep an eye open on PRs daily, and we might have other priorities. We will get to your PR when time is right.
84 changes: 84 additions & 0 deletions docs/GETTING_STARTED.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Start contributing

We are happy to hear that you want to contribute, below you will find all steps and information that will get you from having a cloned repository to a working development environment.

Included below are some tips that will make your development easier when working with our application.

## Getting started with Flutter

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)

For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials, samples, guidance on
mobile development, and a full API reference.

## Code generation

In order to generate code related to `freezed`, `injectable`, and `json_serializable` choose a
command to run when you need to build or re-build these files:

_The watch command keeps re-building generated files. It is generally not recommended to use._

```bash
flutter pub run build_runner watch -d
```

_If you want to build generated files once run this command, it's preferred._

```bash
flutter pub run build_runner build -d
```

Note: The argument `-d` is shorthand for `--delete-conflicting-outputs` introduced in build_runner 2.3.0

## Immutable app settings

We use an environment file called `.env` to define secrets used in the application. These secrets are bundled with the application at build-time.

Make a copy of the `.env.example` file, name it `.env` and fill out the missing secrets.

If you are missing secrets required for the application to run, reach out to a team member.

## Firebase configuration

In order to use features provided by Firebase, download the corresponding `google-services.json`
and `GoogleService-Info.plist` from the Firebase console project, and add them to the project files.

Phone authentication has to be enabled in the Firebase console.

You can find or add phone numbers to use for testing in the Firebase Console by navigating to
Authentication > Sign-in method > Sign in providers > Phone > Phone numbers for testing

## Generating open-source Licenses

To generate the OpenSource licenses dart file via [flutter_oss_licenses](https://pub.dev/packages/flutter_oss_licenses), run the command `flutter pub run flutter_oss_licenses:generate.dart lib/presentation/licenses/oss_licenses.dart` from the project root.

> Note: Run `flutter format .` once [oss_licenses.dart](../lib/presentation/licenses/oss_licenses.dart) is created.
## Tests and test coverage

We use [codecov](https://codecov.io/gh/CollActionteam/collaction_app) to make it visible in PR's what the test coverage is, and what changes to the coverage has been made.

If you are using [Visual Studio Code](https://code.visualstudio.com/) you can install these two extensions:

- [Flutter Coverage](https://marketplace.visualstudio.com/items?itemName=Flutterando.flutter-coverage)
- [Coverage Gutters](https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters)

Now when you run `flutter test --coverage`, you will be able to see the test coverage in the TESTING tab, under "FLUTTER COVERAGE".

Additionally, if you don't want to run `flutter test --coverage` to generate the lcov test coverage files manually, which Coverage Gutters uses to show you line-for-line coverage in files, and Flutter Coverage uses to show you test coverage percentages, you can change your settings.

Open up settings and search for `Flutter Test Additional Args` and add `--coverage`. Now when you run tests from VSCode in the TESTING tab, it will run it with the `--coverage` argument, and the Flutter Coverage will update accordingly.

Using Coverage Gutters, remember to hit "Watch" on the blue status bar on VSCode.

## Git hooks setup

We have set up Git hooks to prevent extra whitespace and other possible mistakes before pushing the code to your branch. Run the below command in the project root directory to copy the pre-push hooks to your local `.git` directory.

```bash
cp ./hooks/* ./.git/hooks/
```
103 changes: 0 additions & 103 deletions docs/README.md

This file was deleted.

Loading

0 comments on commit f59cc83

Please sign in to comment.