Recyclopedia is a muti-platform mobile application that helps people to understand recycling information.
This app is aiming to addresses the issue of
- Hard to locate the recycle trash bins in school
- Not being able to identify the categories of the trash
and provide solutions that promote better waste management practices in Boston University’s area.
- Introduction
- Technical Detail
- Getting Started
- Run The Project
- Known bugs
- Risks and Limitations
- More Information
As Boston University strives to become a more sustainable campus, we see a disconnect between the university’s Zero Waste goals and student understanding regarding what is recyclable and what is not. The main reason for this disconnect is the lack of easily accessible resources to help students sort their waste accurately and confidently. Sustainability@BU has already incorporated the Recyclopedia Resource, which can be found on the Sustainability@BU website, into their list of resources available to students. This resource addresses that disconnect by allowing users to type in an item and telling them whether the item is recyclable or not, as well as what must be done to the item to prepare it for recycling like rinsing out a food container. We believe that converting the existing Recyclopedia Resource into an application for waste sorting would be a straightforward way to increase the accuracy of student recycling and help students feel more confident in the decisions they make when sorting waste.
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
contains API docs and file structure Additional technical structure in side this folder.
explains the dataflow
lib/providers get data from Strapi API
components gets data from and listens to providers for data updates
Flutter 3.7.3 installation guide
After the installation, run the following command in terminal/powershell
cd src/recyclopedia/
# install dependencies
flutter pub get
# update json_serializable autogenerated code
flutter pub run build_runner build --delete-conflicting-outputs
# check below for how to add google map api key, it is necessary for the project to function properly.
Important: To run this project, you will need an API key.
Get an API key at https://cloud.google.com/maps-platform/.
You might want to put the key in an .env
file, and exclude it from version control, then refer the key by the environment variable in different platform's code.
Checkout this link.
first run
flutter create --platforms android .
it will create a platform specific code for running the project locally.
The folder created is excluded from version control
Specify your API key in the application manifest inside the generated folder, relative path:
android/app/src/main/AndroidManifest.xml
:
<manifest ...
<application ...
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="@string/<Your environment variable for the key>"/>
first run
flutter create --platforms ios .
it will create a platform specific code for running the project locally.
The folder created is excluded from version control
Add import GoogleMaps
on the top in AppDelegate.swift
;
Specify your API key in AppDelegate.swift
:
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("YOUR API KEY HERE")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
first run
flutter create --platforms web .
it will create a platform specific code for running the project locally.
The folder created is excluded from version control
Add your API key to web/index.html
in the <head>
tag:
<script src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY_HERE>"></script>
For additional help setting up the plugin, see the plugin's README page.
First, make sure the environment is set up as instructed from the getting started section. To be more specific, make sure that the dianostic from Flutter Doctor are resolved properly.
Then run:
flutter run
-
Direct to the root directory (if you have not already done so) of the project by running
cd src/recyclopedia
-
Select your environment to run. e.g. If you want to use Android phone to run the project, select an Android phone enmulator.
-
Click on the top-right trangle to start.
-
Direct to the root directory (if you have not already done so) of the project by running
cd src/recyclopedia
-
Select your environment to run. e.g. If you want to use Android phone to run the project, select an Android phone enmulator.
Follow this link. First, make a .apk file of the project. Follow this link.
- Google Play Developer Console
- Link Developer Account with Google Wallet Merchant Account
- Create Application
- App Store Listing
- Upload App Bundles or APK To Google Play
- Time For Content Rating
- Fix App Pricing and Distribution
- Publish the Application
Following this link.
- On the navigation rail, quickly switching between the map section and other sections may cause a bug
- After selecting an trash item, there is a "find bin" button at the bottom of the screen. Clicking that button will redirect the user to the map page, but there is no backward button or navigation rail if the map page is reached in such a way, meaning the user is stuck on the map page.
- On the home page, for alphabetical categorizing the trash items. Sections will take at least two rows of space even if there are at most one row of contents to display, resulting in extra spaces between sections.
- When navigating from map marker to place details, before switch place category, we are able to navigate to tap on map for navigation; however, after switch category, we are not able to do so.
This section identifies foreseeable harms and misunderstandings...
This app should not be used to locate the user, it currently lacks the ability to access the location of the user while using the app.
This app is currently in beta, contents displayed are solely for testing purposes. Please regard with caution.
More about his project, contact BU sustainbility or BU Spark!
To add yourself to the repository, open a Pull Request modifying COLLABORATORS
, entering your GitHub username in a newline.
All Pull Requests must follow the Pull Request Template, with a title formatted like such [Project Name]: <Descriptive Title>
Strapi comes with a full featured Command Line Interface (CLI) which lets you scaffold and manage your project in seconds.
npm run build
ENV_PATH=./.env.production NODE_ENV=producti npm run develop
- Clone this repo and cd into strapi-se folder
- Follow following command:
npm run build
ENV_PATH=./.env.production NODE_ENV=producti npm run develop
- Going to "http://0.0.0.0:1337/admin" to add/edit content type