Compare commits
No commits in common. "ce19e1ae75f8789e1bc7c8606f717441abe6809c" and "31491b79af85900be416a93cc801377c30b8c02b" have entirely different histories.
ce19e1ae75
...
31491b79af
46
README.md
|
|
@ -1,46 +0,0 @@
|
|||
# Wien Talks
|
||||
|
||||
**An app developed during the [2nd Flutter Vienna Hackathon](https://www.meetup.com/fluttervienna/events/310014357/).**
|
||||
|
||||
## Team
|
||||
|
||||
_Grätzel-Goblins_ — Timo, Max & Mike
|
||||
|
||||
## Description
|
||||
|
||||
_Wien Talks_ is an app to share the iconic and quotable lines you hear Viennese
|
||||
people drop throughout their day. It doesn't matter if it's a U6 train
|
||||
conductor's insults that he made during an announcement or the Spar cashier's
|
||||
funny retort to "Zweite Kassa bitte!", _Wien Talks_ is made to record, preserve
|
||||
and share Viennese quotes with others.
|
||||
|
||||
Quotes are community-moderated—users can up- or down-vote posts. Additionally,
|
||||
when creating a new quote, the location from which the user made it is added,
|
||||
too. This allows you to see what's going on near you.
|
||||
|
||||
## Screenshots
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<img src="unicorn/Screenshot_1755421875.png" width="300" alt="Default quotes list"/>
|
||||
<div><sub>Default quotes view</sub></div>
|
||||
</td>
|
||||
<td align="center">
|
||||
<img src="unicorn/Screenshot_1755421892.png" width="300" alt="Filtered quotes list"/>
|
||||
<div><sub>Filtered quotes</sub></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<img src="unicorn/Screenshot_1755421897.png" width="300" alt="Reuse location from quote"/>
|
||||
<div><sub>Tap a card → create with same location</sub></div>
|
||||
</td>
|
||||
<td align="center">
|
||||
<img src="unicorn/Screenshot_1755421907.png" width="300" alt="Custom location picker"/>
|
||||
<div><sub>Set a custom location</sub></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
---
|
||||
|
Before Width: | Height: | Size: 1,011 KiB |
|
Before Width: | Height: | Size: 930 KiB |
|
Before Width: | Height: | Size: 570 KiB |
|
Before Width: | Height: | Size: 566 KiB |
75
wien_talks/.github/workflows/deployment-aws.yml
vendored
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
name: Deploy to AWS
|
||||
on:
|
||||
push:
|
||||
branches: [ deployment-aws-production, deployment-aws-staging ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target:
|
||||
description: 'Target'
|
||||
required: true
|
||||
default: 'production'
|
||||
type: choice
|
||||
options:
|
||||
- 'staging'
|
||||
- 'production'
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy to AWS
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup Dart SDK
|
||||
uses: dart-lang/setup-dart@v1.6.5
|
||||
with:
|
||||
sdk: 3.5
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-west-2
|
||||
|
||||
- name: Create passwords file
|
||||
working-directory: wien_talks_server
|
||||
shell: bash
|
||||
env:
|
||||
SERVERPOD_PASSWORDS: ${{ secrets.SERVERPOD_PASSWORDS }}
|
||||
run: |
|
||||
pwd
|
||||
echo "$SERVERPOD_PASSWORDS" > config/passwords.yaml
|
||||
ls config/
|
||||
|
||||
- name: Get Dart packages
|
||||
working-directory: wien_talks_server
|
||||
run: dart pub get
|
||||
|
||||
- name: Compile server
|
||||
working-directory: wien_talks_server
|
||||
run: dart compile kernel bin/main.dart
|
||||
|
||||
- name: Create CodeDeploy Deployment
|
||||
id: deploy
|
||||
env:
|
||||
PROJECT_NAME: wien_talks
|
||||
AWS_NAME: wien-talks
|
||||
DEPLOYMENT_BUCKET: wien-talks-deployment-6559518
|
||||
TARGET: ${{ github.event.inputs.target }}
|
||||
run: |
|
||||
# Deploy server to AWS
|
||||
TARGET="${TARGET:=${GITHUB_REF##*-}}"
|
||||
echo "Deploying to target: $TARGET"
|
||||
mkdir -p vendor
|
||||
cp "${PROJECT_NAME}_server/deploy/aws/scripts/appspec.yml" appspec.yml
|
||||
zip -r deployment.zip .
|
||||
aws s3 cp deployment.zip "s3://${DEPLOYMENT_BUCKET}/deployment.zip"
|
||||
aws deploy create-deployment \
|
||||
--application-name "${AWS_NAME}-app" \
|
||||
--deployment-group-name "${AWS_NAME}-${TARGET}-group" \
|
||||
--deployment-config-name CodeDeployDefault.OneAtATime \
|
||||
--s3-location "bucket=${DEPLOYMENT_BUCKET},key=deployment.zip,bundleType=zip"
|
||||
99
wien_talks/.github/workflows/deployment-gcp.yml
vendored
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
name: Deploy to GCP
|
||||
on:
|
||||
push:
|
||||
branches: [ deployment-gcp-production, deployment-gcp-staging ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
target:
|
||||
description: 'Target'
|
||||
required: true
|
||||
default: 'production'
|
||||
type: choice
|
||||
options:
|
||||
- 'staging'
|
||||
- 'production'
|
||||
|
||||
env:
|
||||
# TODO: Update with your Google Cloud project id. If you have changed the
|
||||
# region and zone in your Terraform configuration, you will need to change
|
||||
# it here too.
|
||||
PROJECT: "<PROJECT ID>"
|
||||
REGION: us-central1
|
||||
ZONE: us-central1-c
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Deploy to Google Cloud Run
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setting Target Mode from Input
|
||||
if: ${{ github.event.inputs.target != '' }}
|
||||
run: echo "TARGET=${{ github.event.inputs.target }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Setting Target mode based on branch
|
||||
if: ${{ github.event.inputs.target == '' }}
|
||||
run: echo "TARGET=${GITHUB_REF##*-}" >> $GITHUB_ENV
|
||||
|
||||
- name: Set repository
|
||||
run: echo "REPOSITORY=serverpod-${{ env.TARGET }}-container" >> $GITHUB_ENV
|
||||
|
||||
- name: Set Image Name
|
||||
run: echo "IMAGE_NAME=serverpod" >> $GITHUB_ENV
|
||||
|
||||
- name: Set Service Name
|
||||
run: echo "SERVICE_NAME=$(echo $IMAGE_NAME | sed 's/[^a-zA-Z0-9]/-/g')" >> $GITHUB_ENV
|
||||
|
||||
- name: Test
|
||||
run: echo $SERVICE_NAME
|
||||
|
||||
|
||||
- id: "auth"
|
||||
name: "Authenticate to Google Cloud"
|
||||
uses: "google-github-actions/auth@v1"
|
||||
with:
|
||||
credentials_json: "${{ secrets.GOOGLE_CREDENTIALS }}"
|
||||
|
||||
- name: Create passwords file
|
||||
working-directory: wien_talks_server
|
||||
shell: bash
|
||||
env:
|
||||
SERVERPOD_PASSWORDS: ${{ secrets.SERVERPOD_PASSWORDS }}
|
||||
run: |
|
||||
pwd
|
||||
echo "$SERVERPOD_PASSWORDS" > config/passwords.yaml
|
||||
ls config/
|
||||
|
||||
- name: Configure Docker
|
||||
working-directory: wien_talks_server
|
||||
run: gcloud auth configure-docker ${{ env.REGION }}-docker.pkg.dev
|
||||
|
||||
- name: Build the Docker image
|
||||
working-directory: wien_talks_server
|
||||
run: "docker build -t $IMAGE_NAME ."
|
||||
|
||||
- name: Tag the Docker image
|
||||
working-directory: wien_talks_server
|
||||
run: docker tag $IMAGE_NAME ${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT }}/${{ env.REPOSITORY }}/$IMAGE_NAME
|
||||
|
||||
- name: Push Docker image
|
||||
working-directory: wien_talks_server
|
||||
run: docker push ${{ env.REGION }}-docker.pkg.dev/${{ env.PROJECT }}/${{ env.REPOSITORY }}/$IMAGE_NAME
|
||||
|
||||
# Uncomment the following code to automatically restart the servers in the
|
||||
# instance group when you push a new version of your code. Before doing
|
||||
# this, make sure that you have successfully deployed a first version.
|
||||
#
|
||||
# - name: Restart servers in instance group
|
||||
# run: |
|
||||
# gcloud compute instance-groups managed rolling-action replace serverpod-${{ env.TARGET }}-group \
|
||||
# --project=${{ env.PROJECT }} \
|
||||
# --replacement-method='substitute' \
|
||||
# --max-surge=1 \
|
||||
# --max-unavailable=1 \
|
||||
# --zone=${{ env.ZONE }}
|
||||
0
wien_talks_client/.idea/.gitignore → wien_talks/wien_talks_client/.idea/.gitignore
generated
vendored
|
|
@ -44,7 +44,6 @@ app.*.map.json
|
|||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
android/key.properties
|
||||
|
||||
|
||||
.env
|
||||
44
wien_talks/wien_talks_flutter/android/app/build.gradle.kts
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
plugins {
|
||||
id("com.android.application")
|
||||
id("kotlin-android")
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.wien_talks"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_11.toString()
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.wien_talks"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 544 B |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 295 B |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
|
Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 450 B |
|
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 282 B |
|
Before Width: | Height: | Size: 462 B After Width: | Height: | Size: 462 B |
|
Before Width: | Height: | Size: 704 B After Width: | Height: | Size: 704 B |
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B |
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 586 B |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 862 B After Width: | Height: | Size: 862 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 762 B After Width: | Height: | Size: 762 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |