HHS Library Mobile App Development

By David McAllister and Eric Cheng

The Homestead High School Library App is designed to provide a mobile interface that works alongside a stable backend database structure to provide users with information about available books, their holds, and their checkouts. Additionally, it implements a scanner that connects to web APIs in order to allow users to discover and hold books with their phone cameras. The app was developed in conjunction with Homestead High School's library to ensure our app would be useful in a real world situation.

This application was programmed entirely in Apple's Swift language. The backend was coded with a mix of MySQL and PHP.

Key Features

  • Robust backend relational database to store information
  • Book barcode scanner using RESTful APIs to generate book information
  • Well commented database access code
  • Checkout with your phone for ease of access
  • Intelligent keyword search algorithm to look for books
  • Hold system that lets you reserve a book to pick up later
  • Customized map with genre pins to identify book locations
  • Bug reporting to enable continuous development
  • Smart resource management to reduce database calls and memory leaks
  • Facebook integration to allow for a social aspect to our application

Challenges

  • Backend: Integrating with the school's database manager, Destiny, was much more complicated than expected. We ended up hosting a parallel database that synced with the existing solution through RESTful APIs on a daily basis (code not included in this repository)
  • New stack: This was the first major app development project either of us had engaged in, which entailed a lot of debugging and problem-solving associated with learning any new stack
  • Approval: Getting administrative approval was a complex process. As a result, the code is under a shared non-commercial ownership between the school district and us, the developers.
  • Marketing: Getting a student body of 2400 student on-board with a new tech solution was a large endeavor. Ultimately, we produced a sizzle-reel cinematic trailer that we distributed on snapchat and instagram, reaching over 1800 students. Video: https://youtu.be/bl76ojGNM3M

Getting Started

The following are the best ways to test HHS Library given your access to certain devices.

Mac OS Computer

Download XCode from the Mac App Store and create a free developer account on Apple's Developer Portal

Once you are done downloading XCode, consult the Installation and Use section of this ReadMe.

Prerequisites

To view the code

-Mac OS
-XCode
-Alternative Swift IDE (i.e. AppCode for Mac OS, text editor like Atom or SublimeText on Windows)

To run the application on your computer

-Mac OS
-XCode
-Developer signing

Installation and Use

A step by step series of how to run our project assuming prerequisites are met.

  1. Open Xcode and select "Open another project..."
  2. Locate the submission folder and enter the MAD folder inside, clicking on the white MAD.xcworkspace file proj2
  3. After clicking open, click on the uppermost blue MAD file. You may see some red errors. proj3
  4. Change the provisioning profile to your own developer account. proj4
  5. It may say “Failed to create provisioning profile.” proj5
  6. Edit the bundle identifier by adding a number to the end and click “Try Again.” proj6
  7. You can now view all the classes and storyboards that go into the application.
  8. [Make sure xcode is opening a simulator of a valid and modern iPhone.] proj8
  9. To directly download the app onto your phone, plug your own phone into the computer and select your phone to download the app on your phone. You may have to approve the application on your iPhone.
  10. After the application opens, log in with school id “1234567” and password “test.”
  11. Feel free to browse the app! The scanner portion of the app only works on an actual phone where a camera can be accessed.
  12. You can log in with facebook within the Onboarding Pages or the Profile Page. Please use the following login information to see how our app uses facebook friend systems to enhance user experience.
  13. Email: dmcallister452@student.fuhsd.org
  14. Password: fblaJudgeLogin img_5589 Onboarding Page On First Launch

  15. Below is an example barcode to be used with the scanner.
    You can also scan any book not found in the library to pull up information about it from online api's.
    We encourage you to try this out with books around your house!

barcode

  1. If you ever run into any issues, submit a bug report at the bottom of the "My Books" page.

Database Structure

Database is a relational MySQL database running the InnoDB engine. It uses various foreign key checks to ensure the integrity of the data and eliminate potential errors in database calls. You can see our design schema here

Deployment

This application is supported by a server side script, so any user just has to connect with their account (made with the library when they join the school)

Built With

  • MySQL server hosted with bluehost.com
  • PHP access code hosted with bluehost.com
  • Swift code for UI and implementation
  • CocoaPods for library dependency management
  • Lottie by Airbnb for in-app animations
  • Adobe Photoshop CC for app graphics
  • XCode Integrated Development Environment

Authors

  • Eric Cheng - Database Structure and Backend - Eric-Cf
  • David McAllister - UI design and API functionality - mcallisterdavid

License

This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE.md file for details

Acknowledgments

  • Thanks to Stanford Mobile App Development course for iOS app development learning resources
  • Thanks to Mr. Kuramoto, the San Mateo Library branch manager, for answering our questions about library operations
  • Thanks to Mr. Shelby, former computer engineer, for giving us feedback on user testing
  • Special thanks to Mrs. Amity Bateman for answering our questions on what features Homestead High School wanted most from a library app

Copyright Information

  • Book information and cover images powered by Google Books, labeled within the app consistent with their API usage policies
  • Facebook logo used for application graphics with explicit permission from the Facebook Brand Resource Center
  • Google logo used for application graphics in accordance with trademark usage guidelines available here
  • The App Store, iOS, iPhone, iPad, XCode, and Swift are all registered trademarks of Apple Inc.
  • Photo of Homestead High School cafeteria and horse statue provided by the Homestead High School Epitaph
  • Following image acknowledgements are consistent with the Freepik terms of use
  • "Boxing day sale background" image designed by Freepik
  • "Safety lock logo" image designed by Freepik
  • "Colorful books pack" image designed by Freepik
  • All other images and icons are completely original
Share this project:
×

Updates