KyleMcMullin / CS3450-Group7

Group 7's CS3450 project repository
0 stars 3 forks source link
group-project mobile-development restuarant school-project

Dan’s Frappes and Raps

This app creates a place for customers to buy frappe’s and the owner to keep track of inventory, and orders and pay employees.

Workspace Layout

The documentation and resources for this project is kept in the "docs" folder. This includes use case diagrams, the project plan, database diagrams, and more as the project progresses.

The mobile app project is stored in the folder “androidapp”

The Firebase project is based from https://console.firebase.google.com/u/0/project/cs3450-group7/overview

Version-Control Procedures

Collaborators will create a branch off of the master branch in Kyle’s Github account under the project ‘CS3450-Group7.’ Each branch will be associated with a Github issue, and said branch will be prefixed with ‘IssueNumber-Name-BriefTitle’. Ie. 1-Kyle-FirstIssue. After local development is completed on said branch, the collaborator will create a Pull Request and change their Issue status to ‘In Review’. After pull request completion, the collaborator will send a link to the Pull Request to the Discord channel #pull-requests. Reviewers will react with a thumbs up if the PR is approved, or comment on the PR and create a Discord thread stating that comments are added. After reworking the PR to deal with comments, the collaborator will post in the thread that a new iteration has been pushed, to which reviewers will react with a thumbs up or continue the process. Once the PR has been merged to main, the collaborator will change their Issue status to ‘Done’.

Complete workflow process:

  • Github issue is created, assigned to collaborator
  • Create branch off of master with title ‘IssueNumber-Name-BriefTitle
  • Change Issue status to In Progress
  • Do local development on said branch
  • Create a Pull Request
  • Change Issue status to ‘In Review’
  • Link Pull Request to Issue by mentioning in description
  • Send link to Pull Request in Discord
  • Until all reviewer comments are resolved
  • Respond to comments and push iterations from branch to PR
  • Reply in Discord thread with each new change for review
  • When PR is approved, merge into main
  • Set Issue status to Done
  • Note: The Issue status changes should happen automatically, however, it is the collaborators responsibility to ensure they do.

    Tool Stack Description and Setup Procedure

    Kotlin/Jetpack Compose - Modern and convenient framework for Android app development using Kotlin, a language the group is either familiar with or eager to learn.

    Firebase Database - Staying within the Google Development ecosystem and using Firebase to implement directly with the android app.

    User Build Instructions

    Developer Build Instructions

  • Clone the project in gitbash: $ git clone https://github.com/KyleMcMullin/CS3450-Group7
  • Download Android Studio from https://developer.android.com/studio/?gclid=Cj0KCQjwjvaYBhDlARIsAO8PkE0v0-l02_3h-vZsmZ_j8CWVdFaTR2ZeVUl0yRLmu1JkYqv6YCv1FVMaAoQhEALw_wcB&gclsrc=aw.ds
  • Follow the default installation steps
  • Select Open Project and navigate to the ‘app’ folder in the repository you cloned. Select it.
  • Wait for the project to load in Android Studio, this may take several minutes.
  • In the top task bar, select Tools -> Device Manager.
  • Select Create Device.
  • Select or search for “Resizable”, then click Next.
  • Select API 33 for “Release Name”. If you have not previously done so, you will need to download it. Then click Next.
  • Name the device if you wish, make sure startup orientation is Portrait and Graphics are Automatic. Then click Finish.
  • Click the green run button in the top right to open the emulator and auto-launch the app
  • Use app as expected
  • Firebase web access instructions

    All Firebase edits and info can be found on the firebase console https://console.firebase.google.com/u/1/project/dansfrappesraps/overview

    Unit Testing Instructions

    Unit tests will cover all use cases laid out in the use case diagrams, ensure functionality of the UI, and ensure functionality of the database based on our risk analysis.

    Unit tests:

    Usability testing

    We all ran through the app as users as if we knew nothing of the application, and tested it that way.

    System Testing Instructions

    Start the program by following the setup instructions, then click the green play button on Android Studio. This will turn on the emulator and load the app onto it. When prompted to login, choose one of the following three options, manager@dans.com Password: 123456789 employee@dans.com Password: 123456789 customer@dans.com Password: 123456789 If you chose to test the manager side of the app some of the items you can test, that are in the sidebar, are, The profile page: In the profile page you should be able to see your name, that you are a manager, the email you signed up with, and your current balance. You should be able to withdraw money from your balance, and there should be a button in the top right corner that brings you to the "Update User Info" page. Here you will be able to change your name and email in our database. Manage Payroll: Here you are able to edit an employees number of hours worked and Approve the payment of said employees. You are also able to edit how much they get paid hourly. Manage Inventory: In manage inventory you are able to see all of the inventory that your store has currently. You can filter through them by what type they are, Flavor, Add-Ins, Powder, Topping, Coffee, Milk, Sweetener, Drink, and tea. When clicking on an item in the list, it will bring you to the "edit item" screen. Here you can change the name, quantity, price per unit, and type of the item. Clicking on the blue floating action button in the bottom right will bring you to the "Create new item" screen Here you can make your own item and decide its name, how much you want, the price per unit, and the type of the item. Track Orders: On this page you are able to view each of the orders that were made by customers. After clicking checkout on the cart page, the drinks that they ordered are sent to this page. Manage Menu: Here you are able to look at all of the drinks on your menu and if you click one one of them you can change the name, select a new image, and change the default amount of each ingredient the drink has. Clicking on the bright red trash icon on the top right of each drink will remove the drink from your menu. Clicking on the blue floating action button at the bottom right of the screen should bring you to a page where you can create a drink for your shop. You will want to set a drink name, image, and how many of each ingredient you want in the new drink Lastly, the Manage Users page: In the manage users page you, as a manager, are able to look at every customer, employee, and other managers in your shop. You should be able to see their name, balance, and email address, on top of whether they are an employee or manager, and if they are you can see how much they make hourly. Clicking the blue floating action button at the bottom right should let you create a new user. It will ask for their name, email and whether they are a customer, employee, or manager. And clicking "create a user" should add them to the users list. On the home page you should be able to see the list of drinks that your cafe/restraunt serves. Clicking on one should let you choose a size of drink and customize it. Managers are not able to add the drink to their cart though. They can track customers orders with the cart button at the bottom left of the home screen. If any of these items are not working how they should, email us at dansfraps@dans.com If you chose to test the employee side of the app, then some of the items you can test are, Like the Manager page: The profile section: Here It will show your name, the fact that you are an employee at your store, and your email address. It will also allow you to withdraw the money that your manager paid you. At the top right, the settings button with a cog wheel on it, should let you change your name and email address that is saved in the database. Payroll: As an employee, you should be able to see your name at the top. Followed by how much you are paid hourly, and your account balance. This is also where an employee will be able to input how many hours they have worked and send it to their manager. Menu and order tracking: In the home screen you are able to see all of the drinks your cafe serves. Clicking on them allows you to see what each drink has in them and what size they are. The order tracking screen lets you see what orders customers have made, and paid for. You will be able to mark them as complete and delivered when you finish making the drinks If any of these items are not working how they should be, email us at dansfraps@dans.com If you chose to test the customer side of the app, Profile: Shows your name, email address, and your current account balance. You are also able to add more money to your account. In the top right is the settings button. It will bring you to a page that you are able to change the name and email address that you have saved. Menu: Here you can customize, or order the default drink. When you click the "Add to cart" button, it will send you back to the menu page and send the drink to your cart. Cart: The cart page has all of the drinks you ordered as well as the amount you ordered, and how much they all cost. Clicking the checkout button will remove the items used from the restraunt/cafe's inventory, and take the money out of the user's account. If any of these are not working how they should, email us at dansfraps@dans.com *Other development notes, as needed*