Use case diagram helps me formulate and understand what functionality we need to think about right and then also identify who who are the actors who are going to be the users of the system so we'll go through and we'll identify for door Dash it's going to be the users right customers are the main actors for the um project and then the admin and so when you create a use case diagram you have two actors you have then ovals to identify the functionality so often times I do use case diagrams with my stakeholders because use case diagrams are a good way to brainstorm what functionality we need to include so here um re what do you think what what do we need in the door Dash app what functionality um from a customer standpoint we definitely um want them to view the menu so the items view menu okay we want them to able to place an place an order okay we want them to be able to select the items basically add them to the card add menu items to we want them to be able to edit or remove these items from the card and finally when they are done with their selections we want them to be able to make the payment and see their delivery status whilst the delivery is in process uh we want them to be able to cancel the delivery as well if um and if they're if it's um basically they're cancelling um late a bit uh like right before the delivery date we want them to um we want to be you know able to charge them for that cancellation as well so here um I think we we talked about customers but we didn't talk about like food Outlets like the people that need to put their restaurants or the restaurant owners right so we need to think about them too so for them we want to give them the ability to add add their restaurant or add their venue to the door Dash app right to so like we said view menu we need to have give them the ability to load the menu right mhm so I'm going to say I copi this over so add new food uh places MH to the uh to the okay I think this looks like a good start anything else that you can think about that we need to add maybe are delivery drivers to be able to see so um add delivery drivers as an actor I mean oh actor okay yes that's right and then I was thinking about functionality so we do also need to add functionality to um to allow them to register as or should we okay so if this is the app maybe um on the website we get them to register as a driver because there's probably a registration process right for drivers and verification so maybe we don't make that available on the app but shouldn't they be able to see um the deliveries on the app or the delivery that they're making right now they should be able to see where they're going right yes yes yes but I was talking about if we needed to like for example if I was interested in becoming an um did we say if this was Uber Eats or door Dash door Dash right if I was interested in becoming a door Dash um driver um I would need to go through the registration process so maybe we don't make that into the app I don't know if it's in the app right now or not but um maybe that's something that we put onto the website um for if somebody's interested in becoming um a door Dasher then they have to go through the process on the site and not the app website makes more senses yeah Okay cool so here are are the main things that we need to do in the app so now um let's try to identify who needs access to what and this helps out because um this helps in doing this process before the requirements because for example let's do this and then then I'll explain why this this helps a lot so for customers um they need to um View The Menu right so we link the actors to the functionality they need to be able to place orders add my items to [Music] cart edit [Music] remove process payment view delivery status cancel delivery okay so that's all we have so the these are all the things that um when we start to talk to our stakeholder we need to make sure that we're capturing this information for the driver though what what what do we need to capture what does the driver need access to do this driver need access to add new menu like new places to the app no no right so what about view menu items to towards the latter part of the delivery cycle I think um once the he can he can view you like um he can track uh where he's going to be delivering and um on the app what status it shows so you know if the food is prepared he goes to the place to to pick up the F yeah so does driver only need access to view delivery not delivery status right then maybe yeah so um what do we say preparation stus can be a thing prep status um also um the delivery address basically he he will know where he's delivering first and um how much that delivery is going to make him so it's up to him if he wants to take that delivery or not oh so we need to add functionality that um for the driver to pick up the the delivery right exactly yes so pick up and select the delivery that he wants to pick up so he gets a notification like these are the deliveries and like he can choose select delivery right see this is why you know doing a use case diagram is super helpful because we haven't dived into the requirements what if we had started diving into the requirements and then realize that we missed a functionality so this is for this reason alone um I find that use case diagrams are super helpful like I said you know this is one approach of gathering requirements this is what I like to start out with first um but not necessarily the only way to do things I'm just making more space is there anything else that we need to think about for the driver um not for from a high level perspective I don't think so [Music] okay and then the Food Outlet what do they need access to they need access to the menu items what else they would also need access to cancelling orders as well uh so view view menu I think we can add another functionality for comments like a customer can leave a comment like I want the items to be this way or I want like extra cut Larry or something and the Food Outlet would need would also need access to um that part of the of the application to see like what the additional comments or if there are any additional um items required with the delivery so like notes and comments notes in comments exactly yes okay so the Food Outlet needs access to that for sure right and the customers as well yes okay oh yeah thank you for catching that okay and then what else oh uh you you you marked it the wrong one for the customers it's the second one so customers cannot add new food places yeah yeah yeah got thank you okay cool okay so food Outlets we only have notes and view menu what else view menu um they can also they should be able to manage their [Music] um inventory on the app right because they should be able to see um that let's say they run out of certain items they should be able to notify either the admin or like make that change themselves on the app okay that that thing is we're out of that so new functionality right that would be a new functionality so um what do we call that we call that like their um food like store dashboard like admin dashboard where they can go in and make selections of like saying that oh we're not going to serve vanilla lattes today or right out of stock yeah so that way gets off of the available things that people could order so modify their menu so this will let them like modify their menus MH and we we did not um add reviews as well which is very important for food delivery app because people see ratings when they're ordering so food Outlets should be able to see that as well as customers oh this is this is getting too much yeah and this is what happens when you create um work you know use case diagrams um it's important to identify this stuff before you start get knee deep into requirements and then later realize you forgot something so this is from a brainstorming standpoint with your stakeholders super super helpful because um at least now I have all the things that um I need to work on uh and make sure that I'm organizing my thoughts clearly I'm talking to the right stakeholders about each of the functionality because the folks that you talk about your stakeholders that are your customer group or your drivers or Outlet will be will most likely be different stakeholders right and so this is why this is important okay so let's go through this um let's spend maybe 30 seconds on this and then move over to the requirements because we'll keep adding more so we were working with customers and customers need reviews um and drivers for drivers we said um for now we have two food prep status uh delivery status and cancel delivery right yes is and then for food Outlets we need to give them access to this new dashboard that we added MH um that will let them manage their stuff and then cancel orders as well okay where's cancel orders uh at the bottom it's the last one I think and then for admins admin would be the person managing the door Dash app we need to give them the ability to um um so um the most basic functionality I see for an admin is to upload um discounts and offers for admins okay [Music] uhuh um I think admin would be the secondary a secondary user in this because these are going to be the primary for me right right so let's see if we could move this guy over here it's getting messy mhm and the driver down here so you guys could see the chicken scratch okay so we'll make admin um a secondary user because of course we know that they need to manage all the backend but for the purposes of us Gathering requirements from a customer standpoint we'll just you know use this here um add new food places so this is going to be the admin right um no they can register on their own okay yeah so is that going to be the food outet but admin can do verification okay so do we need this here add new food places to the we can link it to admin yes um because they they admin might require to do some verification right okay yeah so this guy is not lonely here okay okay I think this looks like a good start what do you think yep I think it looks good so now this the ovals that we said represent functionality the this is what you're going to be gathering requirements for right each of these things require um more than not a lot of requirements Gathering sessions and so pick one which one do you want to work on um let's work on placing orders I guess because that's yeah sounds good I'll bold that so this is I'm going to label this rename as our use case and then as business analyst you guys um need to be super organized we said placing order right yes since this is the most high level one because this will have a lot of internal functionalities that's why it be a good so generally again there are many different ways to gather requirements one of the toolkits that um in your ba toolkit right you can use workflow diagrams you could use Jazz sessions you could do interviews you can um do surveys but the one that I like the most is you know when you're interacting with your stakeholder whether it's one-on-one interview session whe it's in a Jad session I like to rely on workflow diagrams because um it makes it easy for us to understand how the functionality is going to flow so um as you know that I've done many many videos on doing workflow diagrams they're absolutely my favorite because um it's a very logical approach of how the system needs to work so when placing orders um are we at this point going to assume that somebody has an account already on door Dash yeah we we're going to assume that they have added the items into their card and now they're finalizing the process so door Dash app so we're going to your starting point is when they're already in the app right right and then let's label this because we always want to uh label our workflow diagram so your readers and I was saying this to one of our students um as ring assignment reviews you're you're not creating creting workflow diagrams to show your stakeholders how smart you are right you're creating a pretty like a not a pretty but easy to follow picture so that way you can gather feedback on your workflow diagram so folks that you know like to create um really long um workflow diagrams that's okay but the goal is for your stakeholders to see a picture and identify what things are missing that's the key thing when you're creating workflow diagrams uh placing orders not purchasing placing orders yes placing orders okay so um this is so when your stakeholders look at this you know when we're I'm done with this session with my stakeholder what I'm going to do is send meeting notes right summarize what we talked about summarize any decisions that we made right um and then talk about next steps so if I'm we work on this diagram together I've updated it send it with my meeting notes I'm going to give my stakeholders time to review and give uh come back to me with any questions they may have and then finalizing the flow because again we have all of this to document now as part of our requirements so you want to talk about things create diagrams finalize it because after you do the workflow diagram is when you start to document your requirements okay so that's the general flow so okay so we log in what what do what needs to happen um so initially they'll be viewing the menu items okay actually before that they'd be they'd be selecting a Food Outlet before viewing their menu so they they log into the app and they they see a uh they see a customer um Dash where they can select um not a dashboard basically a customer interface where they can basically select um a certain Food Outlet where they want to order from so identify okay mhm what's next um then they view the items that are that that Food Outlet has uploaded on door Dash so view their menu yeah View The Menu then what then they select the items that they want to purchase or get delivered so add menu item yep what if they want to add more than one mhm if they want to then we Loop them back in here mhm oops they don't want anymore then we take them to to the card they can be the card do they process payment um because uh I don't use um door Dash but isn't somebody like isn't the customer's payment already saved on the app cuz they don't have to put in their credit card right not the first uh not sorry if the if it's the first time they will have to if it's not the first time then they won't okay but I think so we we we should add a decision Point here before the payment uh before them processing their payment like if they want to edit or remove certain items and if they don't we continue if they do then they can do that okay so finalize maybe finalize or finalize selection just it can be uh if it's yes then we move to process payment mhm and if they want to make edits where do we take them um we take [Music] them or here and view card could have the functionality to remove to remove edit uhhuh yeah right yep on that page we can have yep make loses payment and then what happens um then they receive a notification and they can view their delivery status as well that their order is on the way they receive a notification that their order is on the way and they can um view the delivery status as well so order confirmation is one thing right and then do they get a notification on who's going to we delivering their food when the driver picks up I think so they would yeah that makes more sense yeah we would like them to view thatst F and like they can view like how good the driver is basically they can view the driver's reviews you know okay so notification of driver plus estimated delivery time yes right because customers would want to know like when am I getting my food right and then do we we end there um yes we no we end once the once the customer receives the food okay yeah customer or say um who delivered who delivered this and then we end okay so this is our workflow diagram for placing orders right on the app so once we do this I'm going to as I said uh as a business analyst or even a scrum Master right even if you're trying to write requirements um uh or user stories you need to create a workflow diagram or some sort to make sure that we haven't missed anything I always meet with my stakeholders um send meeting notes within 24 hours of as I mentioned what we talked about any decisions we made um and then the next steps which is hey we worked on this together review this and let me know if there's any edits or changes and if there are no let me know if this is finalized so we can move on to the next step right so that's that's the next step so this is um it's not a mystery it's not that difficult to gather requirements because it's mostly just an interaction with your stakeholders in understanding how do they want to build a system like what function alties do they want and even this one is high level right so process payment we can do a workflow diagram detailing out how to gather payment information um and such so again as you start to build these out as you start to gather requirements this is um a good way to uh go into detail and gather uh and documenting those requirements so what we're going to do here is based on what we created we'll um document business requirements right these are going to be functional business requirements and or user story so we'll take a few of these not all of it um and start to show you how to document requirement so you see the end to-end picture not only like you're starting from scratch we started from scratch right we identified all the major functionality that we need to put into our requirements we did a workflow diagram and I I'll show you how to do the requirements so here um let's pick one thing um let's just do the first one so uh it's identify Food Outlet or restaurant so um from a functional business requirement we write requirements um from a system standpoint so the way the the format that you use is the system shall have the ability to um list all um food Outlets restaurants in my area and we need to Define business rules right um what does that mean like what what does my area mean and a radius of 10 mes again yeah MH and the customers right not mine but customers um um with [Music] within the customers delivery range yeah and we have to identify like what the delivery range may be mhm so um zero to 9 miles and I think I I don't know if they drive that far like if you're if they um make you pay something extra if it's like further than 10 miles but I'm I'm not clear but we're going to just assume that the delivery range is 0 to 10 miles from the customers from the customers delivery address so the delivery fee is charged um based on how far you are from the outlet oh is it already yeah okay so um then maybe we the business rules need to be different to say if it's 0 to 10 miles um from Custom then the delivery fee is I don't know $5 okay range 10 to 15 miles I'm just I'm totally making this up 7.5 so we'll we'll copy and paste this MH so 16 to 20 21 2 25 but then how do we determine um the Food Outlet so we we'll we'll need business rules this is business rules for delivery fee so we need to utilize an API which shows uh a location API which will automatically track the C according to the customer address their location and then it will only show them the food Outlets that are available that are near to them within a certain radius yes yeah yes so let's say 25 miles is our maximum limit we won't show anything beyond 25 miles so here um the requirements would be um the system shall have the ability to list all Food Outlet restaurants um starting from so what I'm trying to say is starting from the closest I want listed first and then things that are further away would be down bottom on the list so it's not that we're not going to show them but um what we list first you know on the top um are the ones that are the closest right does that make sense that makes sense okay the system shall have the ability to list all food Outlets starting from the uh starting from the restaurant Outlets that are the closest to the customers 2 25 miles mhm okay that's one requirement so now what that does is this requirement is to um to list all of the food apps the system shall have the ability to list um all food Outlets restaurants running from Outlets restaurants that are closest to the customer delivery address ranging from 0 to 25 miles so now this is this satisfies this just one thing MH right now um if we want to move further and say um once a Food Outlet has been selected now we want to display the men for the customer so the system shall have the ability to allow customers to select a outlet system shall have the ability to allow customers to select a Food Outlet restaurant um that is within their delivery range make sense allow them to view the menu with that and allow them to to view the menu for that particular restaurant right so inter View The Menu yeah so now we're going through and documenting requirements based on the workflow diagram mhm okay and now like again these are functional requirements we could do the same for user story so I'll just copy and paste this so I know and we can now do a user story as a user uh as a customer I want the ability to see Outlets um so that I can select a um shouldn't we add like as a customer I want there will I want the ability to see food Outlets as restaurants that are within 25 miles of my location yeah so um so that I can select the restaurant closest to me or yeah um and then given when then MH given that I am on the door Dash app when I um so do they have to say that I'm looking for when they open the app when I so once they're on the app they could just see the food Outlets displayed right when I log into the app would that yeah so given that um when I log given that I am a registered user wouldn't make more sense yeah that's right e does that sound right that does yes okay so we've covered this one and then we can U make sure that the same business rules apply I'm tired I know okay um and then um the system shall have the ability to allow customers to select within the delivery range and allow them okay now this one the next one is going to be for viewing the menu right so I'll copy and paste this again as a customer I want the ability to see uh I want I want to see the menu for a for a um restaurant MH of my choice so so that I can make my food selections mhm given that I am on the app uh given that I am when I select mhm then I am able able to view the offered menu items right right and it's that simple right so we went from high level functionality to workflow diagrams to requirements and you continue building these out until you have all your functional requirements or all your user stories.