Presentation is loading. Please wait.

Presentation is loading. Please wait.

GrubTruck (iOS Food Truck App)

Similar presentations


Presentation on theme: "GrubTruck (iOS Food Truck App)"— Presentation transcript:

1 GrubTruck (iOS Food Truck App)
Jonny Forney, Tyler Golias, Jacob Holcomb, Kaitlin Wrasman Jonny

2 Introduction & Agenda Team Leader: Jonny Forney
Team Members: Tyler Golias, Jacob Holcomb, Kaitlin Wrasman Agenda Project Background Project Discussion Conclusion Questions Jonny

3 Project Background Problem
Toledo has a variety of food trucks that aren’t well publicized with no good way to publicize their food No good central location for trucks and customers to connect No accurate location tracker for customers to utilize Jonny

4 Project Background Solution GrubTruck
Application that allows food trucks and customers to interact and share information iOS application, developed using Swift Accommodates both food truck operators and their customers Integrates a map API to provide real-time locations and routes Solves the communication gap between food trucks and their customers around Toledo Jonny

5 Project Discussion Jonny Work Completed API User Interface
Division of Work API Tyler Jacob User Interface Jonny Kaitlin Learning Experiences Using XCode, Swift Merging changes Effective collaboration Meeting with interested parties Work Completed API User Interface Login/Registration Pages Map View and Search Truck Detail Page Profile/Settings Page Truck Specific Functionality Upload menu and photos Update current location Jonny

6 Jonny

7 Jonny

8 Kaitlin

9 Kaitlin

10

11

12 Kaitlin

13 Kaitlin

14

15 Food Truck Details Presents the food truck user’s custom menu to the customers. Bridges between the Map View and Menu Item Management.

16 GrubTruck Web API Overview
The API Created using Node JS. There were a few reasons we chose this: Node JS is lightweight and efficient and used by many as a server-side Ample library support through Node Modules There were a few small roadblocks Node JS presented that we overcame: Javascript is Asynchronous (Callbacks) Needed comprehensive Logging (Winston Node Module)

17 Database and Migrations
We chose PostgreSQL as our database because it was open source, secure and easy to use. Migrations We made small incremental changes to the database known as migrations where each change is a different migration file. Sequelize Node Module helped keep these migrations together and we could migrate from version to version as needed.

18 User Management User Management Actions
User Creation (And Verification) User Promotion (From General User to Food Truck User) User Recovery / Password Change Password hashing done using bcrypt hashing function.

19 Menu Item Management Allows only food truck users to complete the following tasks: Create Menu Items Delete Menu Items Deactivate/Activate Menu Items Search for Specific Items Get All Menu Items for a Specific Truck The overall goal was to provide food truck users with a way to present their own personal menus with fields such as menu item title, price, description, availability, status (is it active?), and its image (base64 encoded string).

20 JSON Web Tokens (Authentication)
A JSON Web Token (JWT) is a standard RFC 7519 practice for creating access tokens in such a way that user claims can be introduced and utilized. Contains three parts that make it unique: Header (contains the type of encryption and the algorithm applied) Payload (claims, expiration date, issue date, etc.) Signature (server signs the token with a secret that only it knows) Changing the header or payload will render the signature invalid. We utilized JWTs to wrap each API route and to present the claim of customer vs. food truck user. Each route requires a JWT to be passed.

21 Testing (Unit and Integration Tests)
Utilized a module known as nodeunit. Created over 20 individual unit tests to analyze each route that is provided as a service by the API. This included tests for login, user creation and validation, creating menu items, deleting menu items, updating food truck locations, and much more. Unit tests were bundled in such a way to completely test key components of the application (Integration tests): Registration, Administration, Password Recovery, Menu Item Management, Food Truck Management, User Profile Management, and an overall complete test.

22 Logging The logging system for the Web API utilizes two files that store information for the following: API Access (who accessed it and when?) API Processing (what happened when the server processed a request?) {"level":"info","message":" [SUCCESS] - User from requested path /api/user_management/resetpassword/process","timestamp":" T00:55:03.909Z"} {"level":"info","message": "[SUCCESS] - JWT token passed authentication.","timestamp":" T00:40:58.913Z"} {"level":"info","message": "[SUCCESS] - Food Truck title and subtitle saved as TEST TITLE and TEST SUB TITLE for user with id 116. /api/user_management/updateprofile","timestamp":" T00:40:58.917Z"}

23 Conclusion Future Plans
Contacted members of The Toledo Food Truck Association Met with Director of Strategic Initiatives, Margaret Traband Reached out to the City of Toledo’s Information Technology Department Discussed plans for the future of the app Tyler

24 Thank you...We are now open for any questions!
Tyler


Download ppt "GrubTruck (iOS Food Truck App)"

Similar presentations


Ads by Google