Find the GOOD in the world.
Table of Contents
- email: [email protected]
- password: dogood2211
log-in credentials
☀️ Backend Repository
Do.Good.Demo.mov
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.
If you'd like to demo this API on your local machine:
- Ensure you have the prerequisites
- Clone the backend repo:
git clone [email protected]: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
- Clone this repo:
git clone [email protected]: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/
- Ruby Version 3.1.1
- Rails Version 7.0.4.x
- Bundler Version 2.4.9
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.
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
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
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 |