All Projects → QuintinHull → trashed

QuintinHull / trashed

Licence: other
Trashed is an organizational tool designed to help users keep their communities clean.

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to trashed

Flask Boilerplate
Simple flask boilerplate with Postgres, Docker, and Heroku/Zeit now
Stars: ✭ 251 (+1830.77%)
Mutual labels:  heroku, sqlalchemy
abode
🏠 Explode one-line address strings using Golang
Stars: ✭ 52 (+300%)
Mutual labels:  geocode, google-maps-api
heroku-integrated-firefox-geckodriver
Buildpack enables your client code to access Firefox along with Geckodriver in a Heroku slug.
Stars: ✭ 40 (+207.69%)
Mutual labels:  heroku
vue-universal-modal
Universal modal plugin for Vue3
Stars: ✭ 57 (+338.46%)
Mutual labels:  modal
salesforce-iam-flows
Node.js application that implements some of the most common SAML and OAuth flows in Salesforce.
Stars: ✭ 31 (+138.46%)
Mutual labels:  heroku
airbnb-map-search
Airbnb Map Search Page Rebuilt with Vue
Stars: ✭ 32 (+146.15%)
Mutual labels:  google-maps-api
google-maps-v3-opacity-control
Custom overlay opacity control for use with Google Maps JavaScript API V3
Stars: ✭ 17 (+30.77%)
Mutual labels:  google-maps-api
Meteor-Files-Demo
Demo application for ostrio:files package
Stars: ✭ 16 (+23.08%)
Mutual labels:  heroku
py-data-api
A user-friendly client for AWS Aurora Serverless's Data API
Stars: ✭ 37 (+184.62%)
Mutual labels:  sqlalchemy
react-redux-modal-flex
[DEPRECATED] Make easy a modal/popup with Redux
Stars: ✭ 14 (+7.69%)
Mutual labels:  modal
yt-heroku-demo
Code and instructions used in my YouTube video on how to deploy Spring Boot applications on Heroku
Stars: ✭ 21 (+61.54%)
Mutual labels:  heroku
searchmap
Find places and Draw on Map using Google Maps API
Stars: ✭ 53 (+307.69%)
Mutual labels:  google-maps-api
bs5-utils
A JavaScript utility package for Bootstrap 5 components.
Stars: ✭ 26 (+100%)
Mutual labels:  modal
htui
Heroku Terminal User Interface
Stars: ✭ 109 (+738.46%)
Mutual labels:  heroku
haikunatorphp
Generate Heroku-like random names to use in your php applications.
Stars: ✭ 99 (+661.54%)
Mutual labels:  heroku
heroku-stack-container-repo
After deploying this repo your Heroku app will have stack as container. After that you just have to deploy your own original app.
Stars: ✭ 43 (+230.77%)
Mutual labels:  heroku
arugo
Virtual rating system for codeforces using codeforces API.
Stars: ✭ 30 (+130.77%)
Mutual labels:  heroku
django-s3file
A lightweight file upload input for Django and Amazon S3
Stars: ✭ 66 (+407.69%)
Mutual labels:  heroku
laravel5-heroku
Laravel 5 with best practices for deployment on Heroku - created by
Stars: ✭ 18 (+38.46%)
Mutual labels:  heroku
AUCR
Analyst Unknown Cyber Range - a micro web service framework
Stars: ✭ 24 (+84.62%)
Mutual labels:  sqlalchemy

Untitled-drawing-4.png

Trashed is an organizational tool for users who want to take ownership in keeping their communities clean.

Try the site live | Check out the Wiki | Visit the developers portfolio

Screen-Shot-2021-03-23-at-6-38-18-PM.png

Technologies used in Trashed

JavaScript | Python | SQLAlchemy | Flask | React | Redux

Google Maps API | Geocode API | HTML | CSS | Docker | Heroku

Features implemented

  • Users can log in or sign up to access the site.
  • A user has the ability to report a trashed area that displays on Google Map.
  • A user has the ability to organize clean up events for a trashed area.
  • The search bar can locate using a case insensitive search term and display results to the user.
  • A user has the ability to post tips to share different ways to reduce waste at home.
  • A user can only edit an area, event, or tip that they created.
  • A user can only delete an event or tip that they created.

Challenges

It was a challenge deciding how to allow users to interact with a map and add markers to the map that didn't require them to know the latitude and longitude of the location they wished to add. After research and looking at documentation, I decided to implement a Geocode API to obtain the latitude and longitude of each created area. Another challenging aspect of this feature was finding a way to use Geocode that would send back the latitude and longitude before the post request was sent to the back end. For my solution, I used two helper functions (one for latitude and one for longitude) that utilized Geocode.fromAddress() and passed in an interpolated string that made up the entire address provided by the user. From there I was able to call each helper function and await the results inside of an asynchronous handleSubmit() before it was sent to the appropriate thunk.

Screen-Shot-2021-03-23-at-6-36-47-PM.png

Getting started

  1. Clone the repository

    git clone https://github.com/QuintinHull/trashed.git
  2. Install dependencies

    pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
  3. Create a .env file based on the example with proper settings for your development environment

  4. Setup your PostgreSQL user, password and database and make sure it matches your .env file

  5. Get into your pipenv, migrate your database, seed your database, and run your flask app

    pipenv shell
    flask db upgrade
    flask seed all
    flask run
  6. To run the React App in development, checkout the README inside the react-app directory.


IMPORTANT! If you add any python dependencies to your pipfiles, you'll need to regenerate your requirements.txt before deployment. You can do this by running:

pipenv lock -r > requirements.txt

ALSO IMPORTANT! psycopg2-binary MUST remain a dev dependency because you can't install it on apline-linux. There is a layer in the Dockerfile that will install psycopg2 (not binary) for you.


Deploy to Heroku

  1. Create a new project on Heroku

  2. Under Resources click "Find more add-ons" and add the add on called "Heroku Postgres"

  3. Install the Heroku CLI

  4. Run

    heroku login
  5. Login to the heroku container registry

    heroku container:login
  6. Update the REACT_APP_BASE_URL variable in the Dockerfile. This should be the full URL of your Heroku app: i.e. "https://flask-react-aa.herokuapp.com"

  7. Push your docker container to heroku from the root directory of your project. This will build the dockerfile and push the image to your heroku container registry

    heroku container:push web -a {NAME_OF_HEROKU_APP}
  8. Release your docker container to heroku

    heroku container:release web -a {NAME_OF_HEROKU_APP}
  9. set up your database:

    heroku run -a {NAME_OF_HEROKU_APP} flask db upgrade
    heroku run -a {NAME_OF_HEROKU_APP} flask seed all
  10. Under Settings find "Config Vars" and add any additional/secret .env variables.

Thanks for reading my README!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].