-
Notifications
You must be signed in to change notification settings - Fork 2
Home
- Team Names and Project Description
- User Interface Specification and Design
- Test Plan and Results
- User Manual
- Final Spring PPT Slideshow
- Final Expo Poster
- Self-Assessment Essays
- Initial Self-Assessments
- Final Self-Assessments
- Summary of Hours and Justification
- Summary of Expenses
- Appendix
- Code Repositories
- Fall Project Work
- Jackson Hacker, contributor
- Baru Yogesh, contributor
- Badri Vellambi, professor
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.


Full Test Plan with Case Descriptions and Results can be found here
| 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 |
Full User Manual can be found here

Yes, MyPi is currently available for both iOS and Android through the Expo Go app.
No, MyPi is cross-platform and can be used by both iOS and Android users simultaneously for the same order.
Please allow up to 30 seconds for the order to be generated.
Spring Presentation can be seen here
Our Expo poster can be viewed here
| 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 |
| 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 |
| 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 |
| 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 |
No Budget Used- Software was developed using entirely free tools and personal devices.
Team Contracts and Personal Assessments