# Project Plan **Author**: 370 Spring 21 Section 33 Team 5 ## 1 Introduction The product is an Android application that is a manager of grocery lists. There can be multiple lists that can be named by the user, and items can be added to a list, deleted, searched for, and more. ## 2 Process Description **Grocery List Manager Activities** - Creating/Renaming/Deleting List - Here the user can create a list by name, the user can change the name of the any list, and finally the user can delete the list entirely. - The entrance criteria here is a string the user will input that represents the name of a specific list. This string will be used as the unqiue id for the list and can be used to locate, rename, and delete said list. - The exit criteria is the user either creating, renaming, or deleting a list successfully. The activity will be completed once one of those processes is completed. **Create New Item Activity** - Creating item - The application adds a new user-created item to its database in the event that no similar item to the one the user requests for cannot be found in the DB. - The entrance criteria would be if the database has no match for an item that the user is searching for. It would then ask the user for information to save a new item to the DB. - The exit criteria would be the user selecting a type for the new item, and then saving the new item with the type into the DB, thus completing the operation. **Item Type Activities** - Creating item type - This will allow a user to create a new item type group if a specific needed item type group isn't present in the list of item type groups. - The entrance criteria would be if the database doesn't contain the item type group in question. The user inputs the name of the item type group into the database adding it to the select of options to choose from. - The exit criteria here is having the item type name successfully added to the database making it retrievable to the user. **Grocery List Items Activities** - Removing/Adding/Changing quantity of an item from the list - Here the user will be able to add and remove an item from the list, and change the quantity of that item. - The entrance criteria would be for the user to need to change an item in the list, whether it's adding, removing or changing the quantity. For adding, the user would open a hierarchical list, and then first select the item type, and then select the name of the item. Then they specify the quantity of that item. For deleting, the user would just delete the item from the list. - The exit criteria would be the remove/add/quantity operations being completed, or cancelled. **Checkmark Activity** - Check off items - The user will be able to check off items in their list(s) to show that they've obtained said item while shopping. They are persistent and are saved immediately. - The entrance criteria would be for the user to have found an item on the list in the shop. They would then check off the item in the list. - The exit criteria would be the operation being completed, and the checkmark being saved immediately and persisting until the user is finished shopping and deletes the list. ## 3 Team - Chris Chromak, Nadine Rodriguez, Swarna Dasrao, Apurbo Das, Sanjid Alam, Daniel Yoh - Roles **Project manager** - is in charge of the operation, which includes planning, overseeing, and leading projects. This job spans the entirity of the project from conception to completion. **QA lead/tester** - Responsible for quality asssurance testing, typically within a software development organization or department. Also ensuring perfectly-functioning software and web applications to customers. **Frontend dev** - are responsible for what users of an application see and interact with at the 'front' of the app. They essentially oversee the visual aesthetic of the application. **Backend dev** - are responsible for creating the bulk of the code that works behind-the-scenes, the back of the frontend so to speak. They work closely with the frontend developers, and oversee the development of the application's code, making sure that it is functional and organized so that little problems arise when the user nondirectly interacts with the backend through the frontend. **Database dev** - oversee the database. They are in charge of a database's design and development, and work closely with the software developers. They must modify and edit the DB to suit the needs of the application, and must also troubleshoot any bugs that may come up within the database. - Roles, Table Edition™ | Team Member | Role | | ----------- | ----------- | | Chris Chromak | Project manager | | Nadine Rodriguez | QA lead/tester | | Swarna Dasrao | Frontend dev | | Apurbo Das | Database dev | | Sanjid Alam | title | | Daniel Yoh | Backend Dev | <!-- NEW VERSION --> # Project Plan **Author**: 370 Spring 21 Section 33 Team 5 ## 1 Introduction The product is an Android application that manages grocery lists. This application will allow multiple lists that can be named by the user, items can be added to a list, deleted, searched for, and edited. ## 2 Process Description The steps and phases of the software development lifecycle were used in the creation of our web application. We gathered requirements and analyzed them, designed models, and performed implementation and testing. **Requirement Gathering and Analysis** - In this phase, we gathered the requirements from the stakeholders of the proposed application. Then, we analyzed the specifications so that we had a good understanding of how our app should function. **Design** - In the design phase, we applied our anaylysis of the requirement to design an outline. The diagrams and documentation were constructed to further develop on the requirements. Furthermore, the diagrams and documentaion helped to create a project architecture which would be implemented. **Implementation** - In the implementation stage, we used the architecture developed during the design phase to implement our grocery application. Also, uses cases and classes were produced in this phase. **Testing** - In the last phase, we used various tests such as unit tests and system-level tests to ensure that the functions of the application works. Functionality was tested and bugs were fixed. These tests are further elaborated in the Test Plan document. ## 3 Team - Chris Chromak, Nadine Rodriguez, Swarna Dasrao, Apurbo Das, Sanjid Alam, Daniel Yoh - Roles **Project manager** - is in charge of the operation, which includes planning, overseeing, and leading projects. This job spans the entirety of the project from conception to completion. **QA lead/tester** - Responsible for quality asssurance testing, typically within a software development organization or department. Also ensuring perfectly-functioning software and web applications to customers. **Frontend dev** - are responsible for what users of an application see and interact with at the 'front' of the app. They essentially oversee the visual aesthetic of the application. **Backend dev** - are responsible for creating the bulk of the code that works behind-the-scenes, the back of the frontend so to speak. They work closely with the frontend developers, and oversee the development of the application's code, making sure that it is functional and organized so that little problems arise when the user nondirectly interacts with the backend through the frontend. **Database dev** - oversee the database. They are in charge of a database's design and development, and work closely with the software developers. They must modify and edit the DB to suit the needs of the application, and must also troubleshoot any bugs that may come up within the database. - Roles, Table Edition™ | Team Member | Role | | ----------- | ----------- | | Chris Chromak | Project manager | | Nadine Rodriguez | QA lead/tester | | Swarna Dasrao | Frontend dev | | Apurbo Das | Database dev | | Sanjid Alam | title | | Daniel Yoh | Backend Dev | <!-- NEW VERSION 2.0 --> # Project Plan **Author**: 370 Spring 21 Section 33 Team 5 ## 1 Introduction The product is an Android application that manages grocery lists. This application will allow multiple lists that can be named by the user, items can be added to a list, deleted, searched for, and edited. ## 2 Process Description The steps and phases of the software development lifecycle were used in the creation of our web application. We gathered requirements and analyzed them, designed models, and performed implementation and testing. **Inception** - In this phase, we gathered the requirements from the stakeholders of the proposed application. Then, we analyzed the specifications so that we had a good understanding of how our app should function. These aspects would cover the entrence criteria for the phase, along with gathering information related to how much this development will cost, a risk analysis, and general software architectures. The exit criteria for this phase consists of idfferent documents forming our general concept such as a use-case model, project glossary, busienss case, project plan, and a rick assessment. It would be nice, but is not needed, to have a couple protoypes. **Elaboration** - Here, we applied our anaylysis of the requirement to design an outline. The diagrams and documentation were constructed to further develop on the requirements. Furthermore, the diagrams and documentaion helped to create a project architecture which would be implemented. The exit criteria here is having a design model, test cases, and an executable prototype. The project pland and risk assesment should also be revised. Finally, a preliminary user manual should be constructed. **Construction** - In the construction phase, we used the architecture developed during the design phase to implement our grocery application. At this point, all features have been developed and thoroughly tested. The exit criteria for this phase is that all use cases have been realized, our software has been integrated on given platforms, a completed, final user manual, and system-wide documents are finalized. These documents may be related to design, test cases, application structure, and code. **Transition** - For the final phase, Transition, the basic entrance criteria is that the application has been deployed. In this phase, we observe any issues or bugs in the software handling them with updates and new releases. Customer service and assistance members are also trained to fully understand the software to aid users. The exit criteria for this phase is that our project will be completed and more so that it is in use. ## 3 Team - Chris Chromak, Nadine Rodriguez, Swarna Dasrao, Apurbo Das, Sanjid Alam, Daniel Yoh - Roles **Project manager** - is in charge of the operation, which includes planning, overseeing, and leading projects. This job spans the entirety of the project from conception to completion. **QA lead/tester** - Responsible for quality asssurance testing, typically within a software development organization or department. Also ensuring perfectly-functioning software and web applications to customers. **Frontend dev** - are responsible for what users of an application see and interact with at the 'front' of the app. They essentially oversee the visual aesthetic of the application. **Backend dev** - are responsible for creating the bulk of the code that works behind-the-scenes, the back of the frontend so to speak. They work closely with the frontend developers, and oversee the development of the application's code, making sure that it is functional and organized so that little problems arise when the user nondirectly interacts with the backend through the frontend. **Database dev** - oversee the database. They are in charge of a database's design and development, and work closely with the software developers. They must modify and edit the DB to suit the needs of the application, and must also troubleshoot any bugs that may come up within the database. - Roles, Table Edition™ | Team Member | Role | | ----------- | ----------- | | Chris Chromak | Project manager | | Nadine Rodriguez | QA lead/tester | | Swarna Dasrao | Frontend dev | | Apurbo Das | Database dev | | Sanjid Alam | title | | Daniel Yoh | Backend Dev |