# African Public Library Hackathon (Idea Map) ## Goals - Broaden ALP's donor and collector base through a digtal portal - Develop an incentivized, points-based donation process that facilitates consistent use - Create a seamless donation system for new and returning donors - Create a seamless cataloguing experience for collectors that can be expanded to librarians - Help donors and collectors visualize the impact of their donations - Make donating easier during COVID-19 by digitizing the donation process - Bring awareness to black owned businesses - Generate socially conscious partnerships that further strengthen incentive/point system #### Figma Greybox Wireframes: https://www.figma.com/file/I2Prt07ufgnl2XV220HuDm/Kitabu-Greybox-Wireframes?node-id=0%3A1 #### Static Wireframes: https://miguel-lorenzo.dev/kitabu-wireframes/index.html ##### Tech used: - ISBN db (https://isbndb.com/isbn-database) - Barcode scanner (https://www.dynamsoft.com/Products/Dynamic-Barcode-Reader.aspx #### TO-DO's [X] Build static mobile-friendly wireframes [x] Connect necessary 3rd Party API's (Dynamsoft + Google Books) [X] Port to React using Material UI w mock data [x] Skeleton out fetch requests on client side [x] Create schema, models and endpoints necessary for all use-cases [x] Connect client to backend [] Polish & design [x] Housekeeping/Submission [] Add tests if there's time ![](https://i.imgur.com/evo5SWX.jpg) ### User Stories #### As a donor... - I want to login using phone number (or existing credentials / google / facebook) - I want to scan books on my browser - I can list the condition of each book I donate - I can create a ticket logging my donation batch (i.e. list of books they'll be sending out) - I can view where to drop off the books to based on my location - I can select who to give to - I can see past books I've sent and points I've accumulated, and the status of each donation - I can show the collector a QR code with my donation - I can see other information near the QR code detailing the name of the collector, their address, business hours and phone number for help #### As a collection partner... - I can recieve tickets of users donating books via QR code which adds their donation to my queue - I can add my whole queue into my shipping box in one button - I can create shipping details out of my donations that has a QR code to scan the whole inventory - I can approve and deny donations based on their condition - I can add individual books to my shipping list if I want to ship a collection - I can log out and log back in to view my saved queue in case I want to revisit later - Shipped books are deleted from my queue #### Technical considerations: - Need to consider when to make the request to the ISBNdb API --- is there a callback function built in on the barcode scanner that we can create a request afterwards? ## Client-side: ### Components - App.js - Nav bar - Book item - Book list - Ticket with QR Code - User card - Login/Register Form - QR/Barcode Scanner (with state) - Queue Widget ### Views General: - Landing page - Login Page - Register Page Donors: - Donor Dashboard Page - Donation History/Pts Page - QR Code/Ticket Pages - *Edit information Page [Low Priority]* Collectors: - Collector Dashboard Page - Shipping list final page (for printing) - *Shipping History page [Low Priority]* - *Edit information page [Low Priority]* ## Routes