Skip to content
Baru Yogesh edited this page Apr 19, 2023 · 24 revisions

MyPi Final Design Report

Table of Contents

  1. Team Names and Project Description
  2. User Interface Specification and Design
  3. Test Plan and Results
  4. User Manual
  5. Final Spring PPT Slideshow
  6. Final Expo Poster
  7. Self-Assessment Essays
    • Initial Self-Assessments
    • Final Self-Assessments
  8. Summary of Hours and Justification
  9. Summary of Expenses
  10. Appendix
    • Code Repositories
    • Fall Project Work

1. Team Names and Project Description

Members

  • Jackson Hacker, contributor
  • Baru Yogesh, contributor
  • Badri Vellambi, professor

Project Abstract/Description

MyPi is a mobile application that allows large groups of people to generate ideal pizza orders. An organizer at a large event can create an order, which all attendees may join and select their pizza topping preferences. Using a modified vertex cover algorithm over a bipartite mapping of candidate pizzas to users, an order that will satisfy everyone's unique preferences is generated.

2. User Interface Specification and Design

Initial Wireframes:

UI Concept for Landing Page:

3. Test Plan and Results

Full Test Plan with Case Descriptions and Results can be found here

Test Results

Test Id Normal/ Abnormal Blackbox/ Whitebox Functional/Performance Unit/Integration Result and Notes
CO1 Normal Blackbox Functional Integration PASS- Calls to Create Order endpointsucceed from app, and resulting order can be looked up with /order endpoint
CO2 Abnormal Blackbox Functional Integration PASS- Without a connection to the active backend, an error message is shown when an attempt is made to create an order
MAJO1 Normal Blackbox Functional Unit PASS- Order created using postman and a user can join via mobile app using the associated code
MAJO2 Abnormal Blackbox Functional Unit PASS- Using a random invalid code to join an order results in an error message
TOP1 Both Whitebox Functional Unit PASS- Once joined into an order, users are shown only toppings from the database, and are able to select them as expected
ALGO1 Normal Whitebox Performance Unit FAIL- HTTP requests to generate orders time out when a group is of 40 users or larger
ALGO2 Normal Whitebox Functional Unit PASS- All attempted test inputs on the algorithm generate N/2 or more pizzas, with every user being satisfied
GEN1 Normal Blackbox Functional Integration PASS- Using about 10 devices, we were able to create, join, and generate an order that makes sense
API1 Normal Whitebox Functional Unit PASS- Running a Postman collection that hits all endpoints was successful
API2 Abnormal Whitebox Performance Integration PASS- Running our Postman collections several times in parallel was handled gracefully

4. User Manual

Full User Manual can be found here

User Manual Screenshots

image image

FAQ

Is this app available for iOS and Android?

Yes, MyPi is currently available for both iOS and Android through the Expo Go app.

Do all of my users have to be on the same platform as me?

No, MyPi is cross-platform and can be used by both iOS and Android users simultaneously for the same order.

How long does it take to generate an order?

Please allow up to 30 seconds for the order to be generated.

5. Final PowerPoint Presentation

Spring Presentation can be seen here

6. Final Expo Poster

Our Expo poster can be viewed here

7. Self-Assessment Essays

Fall Individual Capstone Assessments

Jackson Fall Assessment

Baru Fall Assessment

Spring Final Assessment Essays

Jackson Final Assessment

8. Summary of Hours and Justification

Jackson Hour Summary

Fall: 30 Total Hours

Work Description Hours Spent
Researching original What2Pizza implementation 2
Exploring alternative Front-End frameworks to React Native 2
Practicing and Brushing up on React Native 4
Wireframing and Concept Art 5
Researching existing algorithms for preference matching 4
Meeting with and Speaking to Professor 3
Weekly Fall Assignments for planning and documentation (can be found in Appendix) 10
Total 30

Spring: 47 Total Hours

Work Description Hours Spent
Meetings with Professor 4
Weekly Spring Assignments (Test Plan, User Manual, Poster) 8
Mobile App Screen Design/Development and Navigation 8
Mobile App Connection to Back-End and Error Handling 10
Algorithm Development and Testing 12
Testing, Debugging, and putting together Demo 5
Total 47

Total Hours for Jackson: 77

Baru Hour Summary

Fall: 28 Hours

Work Description Hours Spent
Researching original What2Pizza implementation 2
Researching existing algorithms for preference matching 4
Making choices between different technologies (MongoDB vs SQL, FastAPI vs Flask, etc.) 4
Learning FastAPI, Pydantic, and other libraries for writing the server 5
Meeting with and Speaking to Professor 3
Weekly Fall Assignments for planning and documentation (can be found in Appendix) 10

Spring: 48 Hours

Work Description Hours Spent
Meetings with Professor 4
Weekly Spring Assignments (Test Plan, User Manual, Poster) 8
Creating Data Models for different datatypes 4
Writing REST endpoints for all connections with client 10
Configuring web services (Heroku, MongoDB) 5
Algorithm Development and Testing 12
Testing, Debugging, and putting together Demo 5

Total Hours for Baru: 76

Total Hours Spent on Project: 153

9. Summary of Expenses

No Budget Used- Software was developed using entirely free tools and personal devices.

10. Appendix

Fall Project Work

Professional Biographies

Team Contracts and Personal Assessments

Software Design Diagrams

Task List

Milestones, Timeline, and Effort Matrix

Project Constraint Essay

Fall Project Presentation