An app that alerts you (by push notification or persistent alarm) upon the arrival or departure of a public transport vehicle from a stop
This is a monorepo managed by npm workspaces. The individual components of this project are stored in separate packages:
Package Name | Description |
---|---|
@voyalert/app | The React Native app |
@voyalert/backend | The Express backend server |
@voyalert/utils | Tiny dev utility scripts |
@voyalert/i18n | The i18next JSON files |
Upcoming features and improvements can be viewed on the Trello of VoyAlert.
COMING SOON
This section covers how to build the full project — both @voyalert/app and @voyalert/backend. Note that iOS is NOT supported as of now.
- Node and NPM
- OpenJDK 17 — download prebuilt from Microsoft
- Android Studio and Android 14 SDK (API 34)
- Docker
- Git (optional — only for
git clone
)
- Start by cloning this repository and installing the dependencies:
git clone https://github.com/ondrejnedoma/voyalert
cd voyalert
npm i
-
Add the Android Studio platform-tools to PATH. This folder is by default %LOCALAPPDATA%\Android\Sdk\platform-tools
-
Create the ANDROID_HOME environment variable. This folder is by default %LOCALAPPDATA%\Android\Sdk
-
Set up the app signing keys and the according gradle variables. Use these React Native instructions for reference.
-
This step is optional. If you want to be able to use a custom backend with the app (and not only the default prod one), replace the
voyalert/packages/app/android/app/google-services.json
file with your own one, obtained from the Firebase console. Generate a Firebase service account private key, and place it invoyalert/packages/backend/firebase.json
. -
Ensure Docker is up and ready to build the backend image:
docker ps
- Run the
build
command. A new terminal window will pop up (the React Native Metro server), close that window for the build process to finish:
npm run build
- After the build finishes, the app AAB can be found in
voyalert/packages/app/android/app/build/outputs/bundle/release/app-release.aab
, and the backend as a Docker imagevoyalertbackend
.
Feel free to open issues and pull requests regarding anything you think would be beneficial for this project!