Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
153 changes: 77 additions & 76 deletions .github/workflows/build-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
- ryan-2025-update
pull_request:
branches:
- main
Expand All @@ -12,80 +13,80 @@ jobs:
build_web_and_apk:
name: Build Web and APK
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install Flutter
uses: subosito/flutter-action@v1
with:
flutter-version: '3.x'
- name: Get dependencies
run: flutter pub get

- name: Test
run: flutter test --coverage
- name: Build web release project
run: flutter build web

- name: Create CNAME file
run: echo "mergedata.ca" > ./build/web/CNAME

- name: Upload web production-ready build files
uses: actions/upload-artifact@v2
with:
name: production-files
path: ./build/web

- name: Deploy to GitHub Pages
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/web

- name: Build APK
run: flutter build apk --release

- name: Rename APK
run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk

- name: Upload APK
uses: actions/upload-artifact@v2
with:
name: MergeData.apk
path: build/app/outputs/flutter-apk/MergeData.apk

- name: Bump version and push tag
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
id: create_tag
uses: mathieudutour/github-tag-action@v6.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
default_bump: patch

- name: Create Release
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.create_tag.outputs.new_tag }}
release_name: Release ${{ steps.create_tag.outputs.new_tag }}
draft: false
prerelease: false

- name: Upload Release Asset
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/app/outputs/flutter-apk/MergeData.apk
asset_name: MergeData.apk
asset_content_type: application/vnd.android.package-archive
- name: Checkout code
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v1
with:
flutter-version: "3.x"

- name: Get dependencies
run: flutter pub get

- name: Test
run: flutter test --coverage

- name: Build web release project
run: flutter build web

- name: Create CNAME file
run: echo "mergedata.ca" > ./build/web/CNAME

- name: Upload web production-ready build files
uses: actions/upload-artifact@v4
with:
name: production-files
path: ./build/web

- name: Deploy to GitHub Pages
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/web

- name: Build APK
run: flutter build apk --release

- name: Rename APK
run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk

- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: MergeData.apk
path: build/app/outputs/flutter-apk/MergeData.apk

- name: Bump version and push tag
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
id: create_tag
uses: mathieudutour/github-tag-action@v6.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
default_bump: patch

- name: Create Release
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.create_tag.outputs.new_tag }}
release_name: Release ${{ steps.create_tag.outputs.new_tag }}
draft: false
prerelease: false

- name: Upload Release Asset
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/app/outputs/flutter-apk/MergeData.apk
asset_name: MergeData.apk
asset_content_type: application/vnd.android.package-archive
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/

# IntelliJ related
Expand Down
51 changes: 48 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,57 @@
# MergeData
Robot scouting app developed by FRC Team 2706 Merge Robotics.
<br>Now featuring... a working Google Sheets integration!!!
#### A scouting app for the FIRST Robotics Competition developed by Team 2706 Merge Robotics.

## Documentation
<a href="https://mergedata.ca">View App</a> · <a href="#quickstart">Quick Start Guide</a> · <a href="#faq">Frequently Asked Questions</a>

<details>
<summary>Table of Contents</summary>
<ol>
<li><a href="#features">Features</a></li>
<li><a href="#app">View App</a></li>
<li><a href="#description">Description</a></li>
<li><a href="#quickstart">Quick Start Guide</a></li>
<li><a href="#faq">Frequently Asked Questions</a></li>
<li><a href="#license">License</a></li>
<li><a href="#support">Support</a></li>
</ol>
</details>

<div id="features"></div>

## Features:
### **Modular**
* Every season, a new JSON file is created, which controls all the questions in the app. You can easily tweak it anytime to reflect changes to your scouting procedure. No coding skills needed!
### **Universal**
* We use Flutter, a framework compatible with most platforms, including iOS, Android, and in a web browser.
### **Google Sheets Integration**
* Scouts can save and send data to a Google Sheets spreadsheet once scouting is done.

<div id="app"></div>

## View App
Our app is hosted on GitHub Pages at https://mergedata.ca. It is also available on the <a href="https://apps.apple.com/ca/app/mergedata/id6498867130">Apple App Store</a> and as an <a href="https://github.com/FRC2706/MergeData/releases/latest">APK</a> for Android devices.

<div id="description"></div>

## Description
MergeData is a modular FRC scouting app that is designed to be run on any device, including devices running iOS, Android, Windows, GNU/Linux, and macOS. Every season, a configuration file (JSON) gets created which allows the scouting questions to be easily changed to collect any data that is important for your team's scouting strategy. When done scouting, the data can be saved locally, scanned by other devices via a QR code, or uploaded to a Google Sheets spreadsheet.

<div id="quickstart"></div>

## Quick Start Guide
Installation instructions coming soon <sup>TM</sup>

<div id="faq"></div>

## Frequently Asked Questions
Coming soon <sup>TM</sup>

<div id="license"></div>

## License
This project is under the Apache 2.0 license, please read the `LICENSE` file for more information.

<div id="support"></div>

## Support
For support, bug reports, or feature requests, please create an issue [here](https://github.com/FRC2706/MergeData/issues).
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.7.10'
ext.kotlin_version = '1.9.25'
repositories {
google()
mavenCentral()
Expand Down
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-all.zip
2 changes: 1 addition & 1 deletion android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false
id "com.android.application" version "8.1.0" apply false
}

include ":app"
Loading