Daily check-out/check-in for recycling department crewmembers needing GT property.
This is part of a suite of apps made for Georgia Tech's OSWM&R, which also includes:
- route-recorder: Buddy app for recycling department crewmembers working recycling routes
- recycling-website: Management and data viewing portal for recycling department administrators
- Flutter install
- also be sure to set up your editor
- After Flutter is installed, Flutter web support must be set up
- make sure you have a recent Chrome or Chromium-based web browser installed
- run:
flutter channel beta
flutter upgrade
flutter config --enable-web
- More information here, though this documentation is not exact for our situation.
- the Firebase CLI
- access to our Firebase console
- read/write access to this Github repo
- read/write access to our private Github repo
- credentials (see below)
- Go to our Firebase console settings
- Retrieve the code for the Firebase config object (Your Apps -> Web apps -> checkin-web -> Firebase SDK Snippet -> Config)
- Copy the file
web/index-template.html
to a new file,web/index.html
- Since this file contains your private config, it's been placed into
.gitignore
-- do not attempt to un-ignore it
- Since this file contains your private config, it's been placed into
- Replace the
firebaseConfig
variable inweb/index.html
with the Firebase config object
This process initializes Flutterfire, the official Firebase services for Flutter, with our credentials.
It is not necessary to secure Firebase API keys like this, but we do so as an extra layer of security.
This project uses Firebase Firestore.
To run locally for development:
- In a CLI, install dependencies with
flutter pub get
(this is also easily done in the Android Studio UI) - Set your output device to be a web browser; this option should have been made available by the Flutter web setup
- In the root directory of this project, run firestore emulators with
firebase emulators:start --import=./test/sample-data
- Only Firestore is emulated. The app will use the emulated Firestore instance instead of the production instance.
- Firestore Rules are not emulated, so be mindful when testing new changes.
- Some sample model data will be initialized for your testing convenience. You can also add more models in the emulator UI.
- In another CLI window or tab, run the app with
flutter run --dart-define=ENVIRONMENT=development
The current deployment method builds this Flutter project as a webapp and deploys it to a private Github Pages instance.
- Make sure our private Github repo is cloned to your machine
- In your clone of the private repo, delete all non-hidden files (don't delete the
.git
directory, of course) - In a CLI, navigate to this app and build for the web with
flutter build web
- Copy the contents of the
build/web
directory to your clone of the private repo - Push the changes of the private repo
More information:
Made by the Developer Student Club at Georgia Tech.