Integrating Charity into Everyday Life
Share Jar
Motivation
1. Why don’t we donate more?2. What does donation currently look like?3. How do you close the gap between donators and charitable organizations?
Project Goals
1. Decrease donation time and increase accessibility to physical donation locations. 2. Create a user friendly web system that is secure and scalable.3. Implement a flexible database architecture.
User Experience
Register a user card to access your account
Press card against the
physical unit
Deposit change in open slot
Signal sent to server to update user account with added amount
Login to account Select charities Input donation amount
System Overview
Physical Unit Deposits Server Web System
UsersDeposits
Physical Unit
Physical Unit (1)Coin Sorter and Display Units
Physical Unit (2)Arduino Microcontroller and RFID Reader
-Wait for RFID confirmation-Connect Interrupts-Read data on clock signals-Convert values to digits-Check every 2.5 seconds to confirm that no additional change has been added
Software Process
Master Slave
MOSI
Physical Unit (3)Arduino Ethernet Shield
-Connect to server-Wait for change in value-Call file to execute MySQL inserts
Software Process
Deposits ServerUpload, Insert, Process, Create
-Connect to MySQL database-Insert values-Update CSV file with new inserts
Software Process
Web System
RoR and Model View Controller
http://courses.csail.mit.edu/6.831/archive/2008/lectures/L3-ui-software-architecture/
Web System (1)User System: Build and Testing
Web System (2)Charities, Favorites, Donations
Users Charities
FavoritesDonations
favorite_charities
charity_id
belongs_to belongs_to
has_many has_many
has_many
Web System (3)Cards, Deposits, and Connection to Server
?
Results
-Average donation time of 7 seconds (with broken RFID)-Easy signup and registration system-Simple ways to favorite charities, and create donations-Potential for much smaller, easily installable donation units
Main Issues Faced
-SPI setup-Arduino timing-Networking issues-MVC implementation-RFID reader inaccuracies
Future Work
- Further implement integration testing- Connect deposits data to Rails server- Create application for mobile platforms- Begin to test in Production Mode
Questions?