Skip to content

The frontend of a SOA application that lets users view and create volunteer events

Notifications You must be signed in to change notification settings

menyeart/do_good_web

 
 

Repository files navigation


Logo

Welcome to Do Good

Find the GOOD in the world.


With the constant bombardment of negative news, it's easy to think there is no good left in the world. Do Good aims to increase the good by connecting people with opportunities to complete random acts of kindness in an approachable and fun way.


Table of Contents
  1. About The Project
  2. Getting Started
  3. Future Iterations
  4. Contributors

About The Project

☀️ Production Website
☀️ Backend Service
☀️ Backend Repository

Do Good was created by Back End students at Turing School of Software and Design as their consultancy project.

The mission of Do Good is to provide users with convenient access to positivity and an opportunity to be part of the good in the world.

Users simply click the "Find a Random Act of Kindness" button and are presented with 3 random acts to choose from. Once chosen, they schedule the "good deed" and it gets added to their dashboard. Users are able to invite others to join in on the fun as well as add it to their calendars because, let's be real, life can get hectic.

For visitors who aren't ready to jump into completing an act, they can browse our library of kind act photos for the feel-goods.

(back to top)

Built With


Ruby Ruby on Rails Rspec Badge Postgresql Heroku AmazonAWS GoogleCloud CircleCI TailwindCSS

(back to top)


Getting Started


If you'd like to demo this API on your local machine:

Prerequisites

  • Ensure you have the prerequisites

Backend Repository

  • Clone the backend repo: git clone git@github.com:do-good-2211/do_good_api.git
  • Navigate to the root folder: cd do_good_api
  • Run: bundle install
  • Run: rails db:{create,migrate}
  • Inspect the /db/schema.rb and compare to the 'Schema' section below to ensure migration has been done successfully
  • Run: rails s

Frontend Repository

  • Clone this repo: git clone git@github.com:do-good-2211/do_good_web.git
  • Navigate to the root folder: cd do_good_web
  • Run: bundle install
  • Run: rails db:{create}
  • Visit http://localhost:5000/

Prerequisites

  • Ruby Version 3.1.1
  • Rails Version 7.0.4.x
  • Bundler Version 2.4.9

Testing

To test the entire spec suite, run bundle exec rspec. All tests should be passing.

Happy path, sad path, and edge testing were considered and tested. When a request cannot be completed, an error message is returned at the top of the page.

(back to top)

Wire Frames

Route: "/" Landing Page:
    
      Wire Frame
    
  
Route: "/random_acts" Random Acts Page:
    
      Wire Frame
    
  
Route: "/login" Login/Register Page: (Google login window will appear after link is clicked)
    
      Wire Frame
    
  
Route: "/good_deeds/new" New Good Deed Form Page:
    
      Wire Frame
    
  
Route: "/dashboard" User's Show Page:
    
      Wire Frame
    
  
Route: "/good_deeds/:id/edit" Good Deed's Edit & Delete Page:
    
      Wire Frame
    
  

(back to top)

Technologies Used

Google Cloud Platform was used to allow users to sign in with their Google account.

Google OAuth

Signing in to the Do Good app is made simple by allowing users to sign in with Google.

More information on the gem used for this(omniauth-google-oauth2) can be found here


Amazon Web Services was used to allow users to upload photos for their completed good deeds.

Amazon S3 Cloud Object Storage

By including amazon's web serfice for storage, we can allow users to upload their pictures which are then saved as objects in a "bucket".

More information on the gem used for this(aws-sdk-s3) can be found here


Google Calendar API was used to create a calendar event on the user's Google Calendar.

Events

Users can see their google calendar on their dashboard. Each of their good deeds will display on the dates they have a deed scheduled.


Tailwind CSS was used for styling

(back to top)

Future Iterations

Possible Features
Only list friends, not all users
Find ways to speed up processing
Consider adding background workers
Accept/Decline Invitation
- Allow invitee to accept or decline invitation
Good Deeds Facade Refactor
- Break down into helper methods
Upload Video/Multiple Media
- Users can can upload both images and videos
Stories of Good
- Users can share stories of good that happened to them
Find good/opportunities
- Users can find where to do good in their area
Badges and points
- Users can earn points and badges for their good deeds
User Metrics
- Users can see their own metrics
- Users can see a library of their deed history

(back to top)

Contributors

Huy Phan Jasmine Hamou Kara Jones-Hofmann Matt Enyeart Melony Erin Franchini Mike Dao
Huy Phan Jasmine Hamou Kara Jones-Hofmann Matt Enyeart Melony Erin Franchini Mike Dao
Collaborator Collaborator Collaborator Collaborator Collaborator Project Manager
GitHub GitHub GitHub GitHub GitHub GitHub
LinkedIn LinkedIn LinkedIn LinkedIn LinkedIn LinkedIn

(back to top)

About

The frontend of a SOA application that lets users view and create volunteer events

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 54.5%
  • HTML 44.1%
  • JavaScript 1.2%
  • Other 0.2%