An Social Application based on sharing leftover with others. Users can publish or holding leftover party through this applicaion, also those in need can use this appliaction to pick up the leftovers.
- About our Proposal(Q&A): Pineapple Bank-GDSC Solution Challenge 2021-Proposal
Please Click Here
- Please Create Your Own Firebase Project, and download the google-service.json file put them in PineappleBank\android\app\google-services.json
- Get the API key of Geocoding API and Maps SDK for Android on Google Cloud Platform
- Enable Firebase Project to Blaze.(Need Payment Account)
Our project is Flutter 2.2.0 project
dart: >=2.12.0-259.9.beta <3.0.0
flutter: >=1.22.0
Android studio 4.0.1
sign_button: ^1.0.2
cupertino_icons: ^1.0.0
provider: ^5.0.0
firebase_core: "^0.7.0"
firebase_auth: "^0.20.0+1"
cloud_firestore: "^0.16.0"
firebase_storage: "^7.0.0"
flutter_spinkit: "^4.0.0"
carousel_slider: ^3.0.0
google_sign_in: "^4.5.1"
chips_choice: ^2.0.1
image_picker: ^0.6.7+22
image_cropper: ^1.3.1
http: ^0.12.0+3
google_maps_flutter: ^0.5.32
search_map_place: ^0.3.0
geolocator: ^6.2.1
flutter_facebook_login: ^3.0.0
firebase_messaging: ^6.0.16
animations: ^2.0.0
geocoding: ^1.0.5
flutter_local_notifications: ^1.4.0
fluttertoast: ^8.0.7
firebase_ml_vision: ^0.12.0+2
firebase_ml_custom: ^0.2.0+1
tflite: ^1.1.1
path_provider: ^1.6.28
- Flutter 2 (2.2.1)
- Google Maps Platform
- Maps SDK for Android
- Geocoding API
- Google Firebase
- Storage
- Authentication
- Firestore
- Cloud Messaging
- Cloud Functions
- Firebase Machine Learning (Custom)
- AutoML
- Tensorflow Lite
- Publish Leftover Posts
- Holding a Leftover Events
- Personal Leftover Tracer
- Supply Leftover's Map
- Chatting with Leftover provider
- Food Recognition using ML
- Save Your Favorite Leftover Post
Signin Page | Main Page | Map | Profile Page |
---|---|---|---|
Find Food | Find Event | Post Edit | Food Post |
Chat List | Chat Window | Food Detect | Food Trace |
--user
-- user_id
-- display_name
-- chatting_with
-- email
-- photo
-- provider
-- pushToken
-- publish_posts
-- save_posts
-- user_id
--post
--post_id
-- belonging_people_user_id
-- picking_position
-- city
-- district
-- publish
-- already_pick
--food
--food_id
-- best_before_time
-- food_type
-- name
-- introduction
-- photo
--event
--event_id
-- city
-- district
-- holding_people_user_id
-- name
-- introduction
-- event_type
-- holding_date
-- end_date
-- picking_position
-- event type
--message
--message_id
--receive_user_id
--message
- Models
- Define the Data Model that can store fetch data from Firestore.
- event (Leftover event party)
- food (Store food in database)
- foodPost
- place
- post (Store post data binding with food)
- user (Store user data in our project)
- Define the Data Model that can store fetch data from Firestore.
- Screen/Home
- Store the dart file that design for the interface after the user has passed the authentication which includes search article/event page, publish your leftover page, personal profile page, etc.
- foodFindEventPage(All event posts)
- foodFindFoodPage(All food posts)
- foodFocusPage(Expiring leftovers and event)
- foodPineapplePage(Preset articles and post class)
- home(call mainPage)
- placePage(the Map Page)
- placeSelect(Map selector)
- PostEditPage(Add new food post/all user)
- PostEditPage_Event(Add new event post(volunter only))
- ProfilePage(User information, badges, Event, Setting .etc)
- Profile_TabPage(Food Trace page, Event Page)
- Store the dart file that design for the interface after the user has passed the authentication which includes search article/event page, publish your leftover page, personal profile page, etc.
- Screen/Authenticate
- Store the dart file that design for the interface before the user pass the authentication.
- authenticate (switch between register page and sign_in page)
- register (register new account in our app)
- sign_in (login our app by your account)
- Store the dart file that design for the interface before the user pass the authentication.
- Screen/chatRoom
- The chat room system.
- chatProviderPick
- chatProvider
- chatReceiver
- chatRoom
- chatWindow
- The chat room system.
- Services
- Design the authenticate method including Email/Password Registration/Sign-in, Social auth, Create FirebaseUser method, etc.
- auth
- dataprocess(tidy up data process function in this file)
- Design the authenticate method including Email/Password Registration/Sign-in, Social auth, Create FirebaseUser method, etc.
- Util
- Store some utility method that can be implemented in other file or class including loading screen, upload/fetch data from Firestore method, alertdialog widget, etc., also in Util files we define some constant in order to modify our hinttext, background color and screen size more convinent.
- cardSlider
- constants
- customIcon
- findEventCardList
- findFoodCardList
- loading (generate loading screen in our app)
- loadingIndicator
- mapLoadingDialog
- presetItem(Preset Saved Page and Preset Marked Page) 10.styleDesign 11.styleDesignImg
- Store some utility method that can be implemented in other file or class including loading screen, upload/fetch data from Firestore method, alertdialog widget, etc., also in Util files we define some constant in order to modify our hinttext, background color and screen size more convinent.
- Firebase Authentication
- Cloud Firestore
- Cloud Storage
- Material Design
- MDC-101 Flutter: Material Components (MDC) Basics (Flutter)
- MDC 102 Flutter: Material Structure and Layout
- MDC 103 Flutter: Material Theming with Color, Shape, Elevation, and Type
- MDC 104 Flutter: Material Advanced Components
- Google Maps Flutter
- Add Custom Marker Images to your Google Maps in Flutter
- Building chat app with Flutter and Firebase
- Train and deploy on-device image classification model with AutoML Vision in ML Kit
- On-Device Machine Learning: Train And Run TensorFlow Lite Models In Your Flutter Apps
- Our Week Report 5/28
- Our Week Report 6/4
- Oscar Chen(陳泰元)[TW], s110616038@stu.ntue.edu.tw
- Jessie Hsieh(謝妤婕)[TW], jessie60125@gmail.com
- Sean Chang(張子賢)[TW], chungsean74@gmail.com
- Alec Chen(陳碾曆)[HK], alecchan1995@gmail.com
Under APACHE2.0 LICENCE
Welcome to send us Email!