This repository uses Firebase to handel the backend, and Flutter to compile code to iOS & Android.
If you want to take this as a starting point
- Install flutter Follow these steps
- After you fork the repo continue by removing /.firebaserc and /firebase.json
- Install Firebase Command Line Tools through npm Detailed instructions
- In the commandline / terminal navigate to this repository
- run
firebase login
and go through the steps to sign in - run
Firebase init
You need to select hosting, firestore, & functions - Then select make new project
- This project uses default locations for Hosting, and Firestore, & we wrote our functions in Javascript, but Typescript is prefered.
- run
firebase Deploy
to push everything up to the cloud and your ready to go.
- Lab: Write your first Flutter app
- Cookbook: Useful Flutter samples
- Flutter for Visual Studio Code
- Bracket Extension for Visual Studio Code
.
├── backend
│ └── firebase.dart //Interface to interact with Firebase
├── constants.dart //Values that are needed across multiple files
├── main.dart //Starting point of application & wrapper for authentication
├── models
│ └── user.dart //User object uid is based on authentication
└── widgets
├── layout
│ ├── SettingsLayout.dart //settinga spage in app, 'settings' tab
│ ├── UpCommingEventsList.dart //default page in app, 'events' tab
│ └── loading.dart //Loading page that is called when getting information from internet
└── pages
├── SignIn.dart //Page called when user is not signed in
├── eventDetailPage.dart //Page called when user taps on an event
├── makeEvent.dart //Page called when an admin pushes the Floating action button
└── register.dart //Page called when the signed out user wishes to create an acount
├── events
│ └── ex_event
│ ├── event_time:DateTime
│ ├── location:string
│ ├── name:string
│ └────response (SubCollection of each event created as needed)
│ └── rsvp
│ └── {Users_uid: String}: isComming | isNotComming | if null default to isNotComming
├── orginazations
│ └── ex_org
│ ├── adminUsers:{users_uuid}
│ ├── facultySponsor:String
│ ├── facultySponsorEmail:String
│ ├── name:string
│ └── full_name: String
└── users
└── ex_usr
├── displayName:string
├── email:string
├── following:String array
├── isAdmin:bool
└── isAdminOf:String