Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
c9bbf3c
Updated to fix issues with Team Editor and Town Info screens, fixed s…
Apr 7, 2022
8858e37
Fixing to prep for release. Updated to v5.0.48
Apr 12, 2022
a607f90
Fixing bugs in team editor.
Apr 27, 2022
9cf258e
Updated based on work by @TylerOrtiz to the app in the C4BTV repo
opdgig-dos-ny Mar 21, 2024
297042b
Eas configuration.
TylerOrtiz Mar 24, 2024
36fb986
Rename app config static to line up next to dynamic config.
TylerOrtiz Mar 24, 2024
0e4b445
Load ios google maps config.
TylerOrtiz Mar 24, 2024
84f47fe
Switch firebase config to load from manifest which is easier to manage.
TylerOrtiz Mar 24, 2024
db1a56c
Use expo application to get build metadata.
TylerOrtiz Mar 24, 2024
f4f0d3c
Switch to more generic environment switches on eas.json to then load …
TylerOrtiz Mar 24, 2024
2a66a4f
Try adding easignore.
TylerOrtiz Mar 24, 2024
7547a52
Update .easignore so it pulls only needed assets.
TylerOrtiz Mar 25, 2024
3634476
Remove expo updates for now.
TylerOrtiz Mar 25, 2024
22459e7
Remove huge image that's not used.
TylerOrtiz Mar 25, 2024
0ae5f12
Simplify config loading to bypass secrets for firebase config.
TylerOrtiz Mar 25, 2024
663f145
Add expo-updates back in and configure.
TylerOrtiz Mar 25, 2024
bb08f12
Consolidate on js load approach.
TylerOrtiz Mar 27, 2024
f234c0f
Merge pull request #20 from TylerOrtiz/feature/eas-migration
nfloersch Mar 27, 2024
fc3e7d7
Working on fixing team editing and navigation issues.
Mar 27, 2024
128bf63
Merge branch 'master' of github.com:nfloersch/green-up-app
Mar 27, 2024
afeee94
Changing the ignore
Mar 27, 2024
c7229cc
Fixes for the team editor/viewer
Mar 27, 2024
0c77c42
Stil fixing team editing
Mar 27, 2024
5b31699
Fixes to Team member management, Team editing. Working on issues with…
opdgig-dos-ny Mar 27, 2024
0cfe2e5
Remove shoutem from home screen.
TylerOrtiz Mar 29, 2024
fa6448f
Menu shoutem replaced.
TylerOrtiz Mar 29, 2024
acb4add
Replace shoutem components on team details form.
TylerOrtiz Mar 29, 2024
476c625
Update return type for divider.
TylerOrtiz Mar 29, 2024
cad8bda
Get secondary button style in.
TylerOrtiz Mar 29, 2024
26b8ab6
Create button component.
TylerOrtiz Mar 29, 2024
b399e16
Convert button bar to basic react native.
TylerOrtiz Mar 30, 2024
f4445a5
Remove shoutem from find team.
TylerOrtiz Mar 30, 2024
b43ee54
Remove shoutem from supplies screen.
TylerOrtiz Mar 30, 2024
5d77bd1
Remove shoutem from message summaries
TylerOrtiz Mar 30, 2024
da2eaa9
Remove shoutem from new message screen.
TylerOrtiz Mar 30, 2024
6a8e374
Remove shoutem from login.
TylerOrtiz Mar 30, 2024
6caf035
Merge pull request #21 from TylerOrtiz/feature/replace-shoutem
TylerOrtiz Mar 30, 2024
299089d
New components to replace shoutem.
TylerOrtiz Mar 31, 2024
3083597
Remove shoutem from create account.
TylerOrtiz Mar 31, 2024
9320991
Shoutem from message details.
TylerOrtiz Mar 31, 2024
64e344c
Buttonbar fix.
TylerOrtiz Mar 31, 2024
78de3a5
Comment out celebrations for now as its not currently active.
TylerOrtiz Mar 31, 2024
97ca7b6
Comment out remaining celebrations screens
TylerOrtiz Mar 31, 2024
d4352cc
New components for Title and Subtitle.
TylerOrtiz Mar 31, 2024
765e641
Shoutem removed from town disposal details.
TylerOrtiz Mar 31, 2024
4637f6a
Remove shoutem from town info/disposal site selector, invite form.
TylerOrtiz Mar 31, 2024
2461c37
Replace shoutem on supplies detail page.
TylerOrtiz Mar 31, 2024
4888cbe
Remove shoutem from team details.
TylerOrtiz Mar 31, 2024
9bd992a
Fix broken home screen when odd numbered teams exist.
TylerOrtiz Mar 31, 2024
1f94018
Remove shoutem from new team screen.
TylerOrtiz Apr 1, 2024
e9491bf
Remove shoutem from town info / help modal.
TylerOrtiz Apr 1, 2024
a4777eb
Remove shoutem package.
TylerOrtiz Apr 1, 2024
6e410cf
Add example env file, swtich eas update url env name.
TylerOrtiz Apr 1, 2024
f2a270b
Reorient around a specific greenup env variable for environment rathe…
TylerOrtiz Apr 1, 2024
2195490
Working app build.
TylerOrtiz Apr 1, 2024
4ed99f1
Merge pull request #22 from TylerOrtiz/feature/replace-shoutem-2
TylerOrtiz Apr 1, 2024
d350d4a
Minor fixes to forms for layout and Shoutem removal.
opdgig-dos-ny Apr 3, 2024
b7cd973
Updated splash screen
opdgig-dos-ny Apr 3, 2024
434d79f
Added winning essay item.
opdgig-dos-ny Apr 3, 2024
641270b
Set up custom minifier settings which seems to fix the initial crash …
TylerOrtiz Apr 5, 2024
4a0ba04
Bump reanimated, make OTA automatic check happen only on failure.
TylerOrtiz Apr 5, 2024
842a17c
Merge pull request #23 from TylerOrtiz/fix/build-crash
TylerOrtiz Apr 5, 2024
450d5e8
Add sentry sdk.
TylerOrtiz Apr 6, 2024
dc1dede
Merge pull request #24 from TylerOrtiz/feature/sentry
TylerOrtiz Apr 6, 2024
c6924b4
Add expo dev client support
TylerOrtiz Apr 7, 2024
6a2adfb
Set default start scripts to point at expo go for backwards compatibl…
TylerOrtiz Apr 7, 2024
5d7670f
Disable default sentry enablement while developing locally.
TylerOrtiz Apr 7, 2024
81ea93a
Merge pull request #25 from TylerOrtiz/feature/expo-dev-client
TylerOrtiz Apr 7, 2024
721faf7
Minor change
opdgig-dos-ny Apr 7, 2024
5b5d661
Merge branch 'master' of https://github.com/nfloersch/green-up-app
opdgig-dos-ny Apr 7, 2024
121f464
Minor edits to content
seinick Apr 10, 2024
deb6f8a
Fixing the team time entry items and updating build number.
seinick Apr 18, 2024
028ef06
Updating the date, start, and end time editing for creating a team, t…
seinick Apr 22, 2024
76f8cc3
Updating for 2025
seinick Mar 19, 2025
748c087
Trying to get a build plugin working
seinick Mar 19, 2025
aa00979
Updates - this version built successfully on EAS on Mar 19, 2025
seinick Mar 20, 2025
9f1349a
Updates for 2025
seinick Mar 31, 2025
524a4ca
Minor images update
seinick May 30, 2025
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
44 changes: 44 additions & 0 deletions .easignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Ignore everything by default
/*

# Include ignores
!.gitignore
!.easignore

# Include configs
!firebase-config.dev.js
!firebase-config.qa.js
!firebase-config.prod.js

# Include all app code to be deployed
!/action-creators
!/assets
!/clients
!/components
!/constants
!/data-sources
!/libs
!/models
!/navigation
!/patches
!/reducers
!/screens
!/store
!/styles
!App.js
!.babelrc
!.eslintrc
!.firebaserc
!app.config.js
!app.config.json
!babel.config.js
!eas.json
!firebase.json
!firestore.indexes.json
!firestore.rules
!LICENSE.md
!metro.config.js
!package.json
!tsconfig.json
!yarn.lock
!.nvmrc
6 changes: 6 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
GREENUP_ENVIRONMENT="local"
EAS_PROJECT_ID="<project id here>" # Not needed typically
EAS_UPDATE_URL="<update url here>" # Not needed typically
GOOGLE_MAPS_API_KEY="<key here>" # Not needed typically
SENTRY_DSN="<dsn here>" # Not needed typically
SENTRY_AUTH_TOKEN="<auth token here>" # Not needed typically
41 changes: 28 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,33 @@
.env
# dependencies
node_modules/

# Expo
.expo/
dist/

# Native
*.orig.*
*.jks
*.p8
*.p12
*.key
*.mobileprovision

# Metro
.metro-health-check*

assets/fonts/*
environment.js
node_modules/**/*
*.expo
.expo/**/*
firebase-config.js
firebase-config.qa.js
firebase-config.dev.js
firebase-config.prod.js

# Firebase
firebase-config*.js

# Include the sample file
!firebase-config.example.js

# Env
.env*
!.env.example

### Linux ###
*~
Expand Down Expand Up @@ -718,8 +738,3 @@ fastlane/screenshots
.pnp.js

app.json

firebase-config.prod.js
firebase-config.qa.js
firebase-config.dev.js
firebase-config.js
1 change: 1 addition & 0 deletions .node_version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18.19.1
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18.19.1
115 changes: 60 additions & 55 deletions App.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,64 @@
// @flow
import React, { useState } from "react";
import AppLoading from "expo-app-loading";
import { Asset } from "expo-asset";
import * as Font from "expo-font";
import { loadAsync } from "expo-font";
import AppLoading from "./components/app-loading";
import AppState from "./components/app-state";
import Session from "./components/session";
import { Ionicons } from "@expo/vector-icons";
import AppNavigator from "./navigation/app-navigator";
import { NavigationContainer } from "@react-navigation/native";
import { LogBox } from "react-native";
import initSentry from "./clients/sentry";
import 'expo-dev-client'; // Loads expo dev client tools

// This and the following two lines account for missing base64 support in some versions of Node
import {decode, encode} from 'base-64'
if (!global.btoa) { global.btoa = encode }
if (!global.atob) { global.atob = decode }
import { decode, encode } from "base-64";
import MainTabNavigator from "./navigation/main-tab-navigator";
if (!global.btoa) {
global.btoa = encode;
}
if (!global.atob) {
global.atob = decode;
}
// Some versions of Firebase assume access to a Window object that react-native does not have
window.addEventListener = x => x;

// Stop annoying Android users with useless warnings.
LogBox.ignoreLogs(["Setting a timer for a long period of time", "getNode"]);
//LogBox.ignoreAllLogs();
// LogBox.ignoreLogs(["Setting a timer for a long period of time", "getNode", "old version of react-navigation library"]);
// LogBox.ignoreAllLogs();

type PropsType = { skipLoadingScreen: boolean };
// Bootstrapping the app
const App = ({ skipLoadingScreen }: PropsType): React$Element<any> => {

const [isLoadingComplete, setIsLoadingComplete] = useState(false);

const loadResourcesAsync = async (): Promise<any> => Promise.all([
Asset.loadAsync([
require("./assets/images/circle-turquoise.png"),
require("./assets/images/circle-blue.png"),
require("./assets/images/circle-red.png"),
require("./assets/images/circle-yellow.png"),
require("./assets/images/circle-green.png"),
require("./assets/images/circle-purple.png"),
require("./assets/images/circle-orange.png"),
require("./assets/images/green-up-logo.png")
]),
Font.loadAsync({
// This is the font that we are using for our tab bar
...Ionicons.font,
"Rubik-Regular": require("./assets/fonts/Rubik/Rubik-Regular.ttf"),
"Rubik-Medium": require("./assets/fonts/Rubik/Rubik-Medium.ttf"),
"Rubik-MediumItalic": require("./assets/fonts/Rubik/Rubik-MediumItalic.ttf"),
"Rubik-Bold": require("./assets/fonts/Rubik/Rubik-Bold.ttf"),
"Rubik-BoldItalic": require("./assets/fonts/Rubik/Rubik-BoldItalic.ttf"),
"Rubik-Black": require("./assets/fonts/Rubik/Rubik-Black.ttf"),
"Rubik-BlackItalic": require("./assets/fonts/Rubik/Rubik-BlackItalic.ttf"),
"Rubik-Light": require("./assets/fonts/Rubik/Rubik-Light.ttf"),
"Rubik-LightItalic": require("./assets/fonts/Rubik/Rubik-LightItalic.ttf"),
"rubicon-icon-font": require("./assets/fonts/Rubik/rubicon-icon-font.ttf")
})
]);
const loadResourcesAsync = async (): Promise<any> =>
Promise.all([
Asset.loadAsync([
require("./assets/images/circle-turquoise.png"),
require("./assets/images/circle-blue.png"),
require("./assets/images/circle-red.png"),
require("./assets/images/circle-yellow.png"),
require("./assets/images/circle-green.png"),
require("./assets/images/circle-purple.png"),
require("./assets/images/circle-orange.png"),
require("./assets/images/green-up-logo.png")
]),
loadAsync({
// This is the font that we are using for our tab bar
...Ionicons.font,
"Rubik-Regular": require("./assets/fonts/Rubik/Rubik-Regular.ttf"),
"Rubik-Medium": require("./assets/fonts/Rubik/Rubik-Medium.ttf"),
"Rubik-MediumItalic": require("./assets/fonts/Rubik/Rubik-MediumItalic.ttf"),
"Rubik-Bold": require("./assets/fonts/Rubik/Rubik-Bold.ttf"),
"Rubik-BoldItalic": require("./assets/fonts/Rubik/Rubik-BoldItalic.ttf"),
"Rubik-Black": require("./assets/fonts/Rubik/Rubik-Black.ttf"),
"Rubik-BlackItalic": require("./assets/fonts/Rubik/Rubik-BlackItalic.ttf"),
"Rubik-Light": require("./assets/fonts/Rubik/Rubik-Light.ttf"),
"Rubik-LightItalic": require("./assets/fonts/Rubik/Rubik-LightItalic.ttf"),
"rubicon-icon-font": require("./assets/fonts/Rubik/rubicon-icon-font.ttf")
})
]);

const handleLoadingError = (error: Error) => {
// In this case, you might want to report the error to your error
Expand All @@ -59,35 +67,32 @@ const App = ({ skipLoadingScreen }: PropsType): React$Element<any> => {
};

const handleFinishLoading = () => {
// This pause lets a user see the loading screen longer,
// which is good because it has a winning poster picture on it.
// The pause is long enough that people can see the poster,
// and short enough it shouldn't bother anyone.
setTimeout(() => {
setIsLoadingComplete(true);
},
4000
);
// This pause lets a user see the loading screen longer,
// which is good because it has a winning poster picture on it.
// The pause is long enough that people can see the poster,
// and short enough it shouldn't bother anyone.
setTimeout(() => {
setIsLoadingComplete(true);
}, 4000);
};

const load = (
<AppLoading
onError={ handleLoadingError }
onFinish={ handleFinishLoading }
startAsync={ loadResourcesAsync }
/>
<AppLoading onError={handleLoadingError} onFinish={handleFinishLoading} startAsync={loadResourcesAsync} />
);

initSentry();

const mainApp = (
<AppState>
<Session>
<AppNavigator/>
</Session>
<NavigationContainer>
<Session>
<MainTabNavigator />
</Session>
</NavigationContainer>
</AppState>
);

return (!isLoadingComplete && !skipLoadingScreen ? load : mainApp);

return !isLoadingComplete && !skipLoadingScreen ? load : mainApp;
};

export default App;
export default App;
50 changes: 20 additions & 30 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

1) **Phone a friend**: The first step is always to chat up folks on [#green-up][3] on Slack. Visit our channel [here][4] or if it's your first time, get an invitation [here][5].

2) **Get a Dev Environment Running**: We've got a super simple setup working through GitPod - an online, container based development environment that is literally a 1-step setup.
2) **Get a Dev Environment Running**: Our "Full Local Environment" setup is up to date as of 03 April 2022.

3) **Check the Project Board**: We have our open software tickets organized under [projects](https://github.com/codeforbtv/green-up-app/projects). If you're new to the project, look for those labeled as ['good first issue'](https://github.com/codeforbtv/green-up-app/labels/good%20first%20issue).

Expand All @@ -15,41 +15,27 @@

## Environment Setup

### Quickstart: using GitPod

1) **Launch a Gitpod Workspace**: The easiest way to start contributing is by skipping the setup process and using GitPod in your browser by clicking here:
(https://gitpod.io/#https://github.com/codeforbtv/green-up-app). It always takes a few minutes, so do this step first.

2) **Get a Config File**: You won't be able to run the code without a firebase-config.js file. The fastest approach is to use our shared dev environment (..which we share, so please treat it kindly). There is one pinned to the [#green-up Slack channel][3] for our dev environment. If you have trouble finding it, just ask anyone in the channel. Save your firebase-config.js in the root of the project.

3) **Download the Expo App**: The Green Up app is configured to be run on your physical phone inside the Expo mobile app (aka the "Expo Client"). Expo is a shell that runs the unpublished mobile app.
* [Download for iPhones][1]
* [Download for Android][2]

4) **Restart Expo**: When the GitPod workspace starts a config file in the project instructs it to install the Green Up app, and then it opens a terminal in the editor, runs the `expo start` command to launch the expo cli. Use `ctrl+c` to kill the cli tool, and type `expo start --host tunnel` to restart it with the new config information.

5) **Profit!** When the giant QR code appears in the editor...
* **iPhones**: point your camera at the QR code and the app will launch in expo
* **Android**: open the Expo mobile app and click "Scan QR Code"

This will open the app on your phone. Now create an account and begin exploring!

### A Full Local Environment

1) **Get a Config File**: You won't be able to run the code without a firebase-config.js file. The fastest approach is to use our shared dev environment (..which we share, so please treat it kindly). There is one pinned to the [#green-up Slack channel][3] for our dev environment. If you have trouble finding it, just ask anyone in the channel. Save your firebase-config.js in the root of the project.
1) **Get a Config File**: You won't be able to run the code without a firebase-config.local.js file. The fastest approach is to use our shared dev environment (..which we share, so please treat it kindly). There is one pinned to the [#green-up Slack channel][3] for our dev environment. If you have trouble finding it, just ask anyone in the channel. Save your firebase-config.local.js in the root of the project.

1) **(Optional) Use Your Own Firebase Account**: Setup a Firebase app and use those app settings to configure firebase-config.js,
Get your own Firebase database here (https://firebase.google.com/) or, if you want to contribute to this project, find us on [Slack][4] and we'll gladly share ours. Not on our Slack board? [Get an invitation.][5]
1) **(Optional) Use Your Own Firebase Account**: Setup a Firebase app and use those app settings to configure firebase-config.local.js,
Get your own Firebase database here (https://firebase.google.com/) or, if you want to contribute to this project, find us on [Slack][4] and we'll gladly share ours. Not on our Slack board? [Get an invitation.][5]

2) **Ensure you have `nvm` installed**: Do this by running `nvm ls`. If you see a list of `node` versions printed to your console, then you're all set. Otherwise, follow the [setup instructions](https://github.com/nvm-sh/nvm#installing-and-updating).

3) **Install Project Dependencies**:
`.nvmrc` file should drive the correct node version to use without specifying it explicitly.

```bash
nvm install v10
nvm use v10
npm install
npm install -g expo-cli@3.13.3
nvm install
nvm use
# optional nvm alias green-up v18.19.1
yarn install
# flow
npm install -g flow
# or
yarn global add flow
```

4) **Download the Expo App**: The Green Up app is configured to be run on your physical phone inside the Expo mobile app (aka the "Expo Client"). Expo is a shell that runs the unpublished mobile app.
Expand All @@ -59,14 +45,18 @@ npm install -g flow
5) **Start the Application**: Run the project in the root folder.

```bash
expo start
npx expo start
# or
yarn start
# or
npm start
```

6) **Profit!** When the giant QR code appears in the editor...
* **iPhones**: point your camera at the QR code and the app will launch in expo
* **Android**: open the Expo mobile app and click "Scan QR Code"

This will open the app on your phone. Now create an account and begin exploring!
This will open the app on your phone. Now create an account and begin exploring!

## How to Contribute Your Work

Expand Down Expand Up @@ -94,4 +84,4 @@ See the [LICENSE](./LICENSE.md) for information on this project's license.
[2]: https://play.google.com/store/apps/details?id=host.exp.exponent&referrer=www
[3]: https://codeforbtv.slack.com/messages/green-up/
[4]: https://codeforbtv.slack.com/
[5]: https://cfbtv-slackin.herokuapp.com/
[5]: https://cfbtv-slackin.herokuapp.com/
Loading