Giter Club home page Giter Club logo

coopcycle-app's Introduction

CoopCycle

Build Status

Prerequisites

  • Install Node, Java Development Kit, Watchman & React Native CLI as described here.

    • You can install react-native-cli with following command:

          npm install –g react-native-cli
      
    • Or you can use npx which ships with Node.js instead of installing React Native CLI.

      With npx react-native <command>, the current stable version of the CLI will be downloaded and executed at the time the command is run.

  • Install dependencies to compile node-canvas depending on your OS.

Setup - Firebase

Create a Firebase account.

Android

Follow the Firebase instructions to download and copy google-services.json to the android/app folder.

iOS

Follow the Firebase instructions to download and copy GoogleService-Info.plist to the ios/ folder.

Setup - All Platforms

Install dependencies with Yarn.

$ yarn install

Populate your local .env file:

$ cp .env.dist .env

Setup - Linux

  • To launch an Android emulator on Linux, you will need to enable acceleration.

  • You can run the app on your Android device following these instructions.

    • You can display and control your Android device connected via USB with scrcpy.

Setup - Android

Get a Google Maps API Key

A Google Maps API Key is needed at compilation time for Android (see AndroidManifest.xml).

GOOGLE_MAPS_BROWSER_KEY=YOUR_API_KEY
GOOGLE_MAPS_ANDROID_KEY=YOUR_API_KEY

Those keys won't work for address autocomplete if you don't have billing enabled in Google Cloud. Before enabling billing in your project, read and check the the terms and conditions for the free trial.

Setup - iOS

iOS development requires macOS and CocoaPods.

bundle install

Install the dependencies:

cd ios && USE_FRAMEWORKS=static NO_FLIPPER=1 bundle exec pod install

Or using pod-install:

cd ios && USE_FRAMEWORKS=static NO_FLIPPER=1 npx pod-install

Running App

Start the bundler

yarn start

Run the Android app

yarn android

Run the iOS app

yarn ios

Testing

yarn test
Detox (end-to-end testing):

Setup: https://wix.github.io/Detox/docs/introduction/environment-setup

Build the app:

Android:

detox build -c android.emu.debug

iOS:

detox build -c ios.sim.debug

Run tests:

Android:

detox test -c android.emu.debug

iOS:

detox test -c ios.sim.debug

Mics

Run a single test:

detox test -c ios.sim.debug e2e/foodtech/first_launch.spec.js

Run a single test in debug mode:

detox test -c ios.sim.debug --inspect-brk e2e/foodtech/first_launch.spec.js

Make sure that you have emulators set up as specified in .detoxrc.js > devices or use --device-name parameter while running tests. For example:

detox test -c android.emu.debug --device-name="Pixel_8_API_34" e2e/foodtech/first_launch.spec.js

Troubleshooting

« Have you tried turning it off and on again? »

watchman watch-del-all
rm -rf $TMPDIR/react-*
rm -rf $TMPDIR/metro-*
rm -rf ~/.rncache
rm -rf node_modules
rm yarn.lock
yarn cache clean
yarn install

coopcycle-app's People

Contributors

552020 avatar alexsegura avatar atala avatar awesomekuro avatar bdskoop avatar botxoriders avatar dependabot-preview[bot] avatar dependabot[bot] avatar dingusdong avatar eliasmalik avatar fadomire avatar jfoclpf avatar juanpabl avatar lucasferraro avatar mcorreggiari avatar miguelpeixe avatar nadimhammami avatar paulianoianopaul avatar pierre-lhoste avatar pierwmaria avatar r0xsh avatar sgobotta avatar tetol44 avatar thadah avatar trendspotter avatar vincentdcom avatar vladimir-8 avatar vova1vova avatar weblate avatar zampatezaragoza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

coopcycle-app's Issues

Restaurant order management screen

Introduce a screen to manage restaurant orders.

  • When a user with ROLE_RESTAURANT authenticates, a new menu appears.
  • When an order is placed, the screen should update in real time and notify the user with a sound.

Improve WebSocket management

Instead of putting the "Reconnection.." loader for websocket above the map, just put a small loader. For example in replacement of the wifi icon on the above.

The task list will be updated at reconnection anyway.

@alexsegura what do you think?

Translate app

  • Switch all messages to English
  • Add a setting to change language
  • By default, set language to instance's default language (new endpoint needed)

Investigate the "keepAwake" behavior on iOS and Android

From Molenbike reports:

Feedback Android

  • l'écran se met en veille sur son portable (Android 8.1)

Feedback iOS

  • le screen ne se lock jamais : problème de batterie, problème de tâches qui se valident "dans la poche"
    -> problème de batterie à analyser

Gmaps behavior :
Dans google maps, pendant la navigation, il est possible de locker l'écran. l'App continue à tourner et est accessible juste en reallumant l'écran sans unlock. Ça me semble l'idéa

Investigate : pin behavior https://support.google.com/nexus/answer/6118421?hl=en

On TaskListPage, highlight changes

When a new task is assigned / unassigned, the task list should reflect the changes.

  • Highlight the new assigned tasks
  • Scroll to the first changed task

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.