Giter Club home page Giter Club logo

macroview's Introduction

MacroView

shiny-deploy

Available at: https://macroview.shinyapps.io/MacroView/

Group Members

  • Austin Shih @austin-shih
  • Chester Wang @ChesterAiGo
  • Jakob Thoms @J99thoms
  • Samson Bakos @samson-bakos

Overview

This repository contains the MacroView dashboard project. The project aims to create an application that allows potential users track their daily calorie/ macronutrient intake by using the Nutrient Value of Some Common Foods dataset accessed here.

Who are we and who should use this dashboard?

We are a team of 5 UBC MDS students who created this Shiny app as part of the masters program and hope to empowering individuals to make informed and healthy lifestyle choices.

This dashboard is essentially a nutrition tracking dashboard that enables health-conscious individuals to accurately track and visualize their macronutrient intake. Our intended users are anyone who wants to track their nutrition easily, for free, and with reliable nutrition data. MacroView will be accessible for both experienced body-builders and individuals who are new to nutrition tracking and don't know where to start.

Dashboard Functionality

The dashboard will have four tabs, Main Dashboard, About, Data, Download, and Statistics, with the Main Dashboard tab containing the main app funcionality. The About tab contains user information and app usage. The Data tab conatins explanations and links to the dataset used in the app. The Download tab allows the user to download the cleaned and merged dataset used in the app. Finally, the Statistics tab will show the user top foods containing the most per gram concentration of the selected nutrition components. The live app can be accessed here.

Main Dashboard

The Main Dashboard layout will have user input on the left and visualizations on the right.

On the left hand columns there are two input categories, one for setting up macro nutrient targets either by slider bars or direct user input, and the other for inputting actual food intake items by weight to visually determine if targets are met.

Once targets and food items are populated, two graphics will be displayed to visualize targets and inputs. The top 'Totals' figure will display the user input information as a bar plot indicating total calories, and caloric breakdown by macro nutrients (protein, carbs, fat) as well as user targets.

The bottom figure will plot the specific caloric intake and targets as a stacked bar plot showing the proportional breakdown of user inputs.

If users wish to save a specific layout of the app (such as saving a meal plan for printing), they can click the Download Report button corresponding to their desired targets (sliders or manual input). PLEASE NOTE: The Download Report button is currently not working on the current version of the remote deployment of the app. It can be used by cloning the app to a local device and rendering the app locally via R.

Statistics

The Statistics layout will feature a user input panel for the user to select nutrition components for ranking, and a plot showing the top food items in the selected category.

Continuous Development

Want to help improve this app? Please check out the contributing guidelines and code of conduct.

Below are the steps to setup the development environment for MacroView:

  1. Clone this repo and create a development branch

    $ git switch -c name-of-contributing-branch
  2. Open src folder from the root directory which contains the run.R, server.R, and ui.R scripts for the app. The Run button on the top right hand corner will allow you to run the app if any one of these scripts are opened.

  3. Start contributing! The Mastering Shiny online resource is a great way to learn how to use R Shiny.

License

Please refer to the License File here

macroview's People

Contributors

austin-shih avatar chesteraigo avatar j99thoms avatar samson-bakos avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

samson-bakos

macroview's Issues

Main Dashboard Task 2

  • Setup Middle Reactive Input; drop down menu with foods + entry field for amount in grams
  • Compute current total for all macronutrients based on input
  • Plot current totals on main plot object

Milestone 4 Feedback

Congratulations on finishing milestone 4! We can see you put a lot of work into this project, nice work! Below we list some specific feedback you can use to improve your project.

  • Submission instructions: mechanics: 4/4

  • Improving your app: mechanics: 20/20

o The information requested for the submission on Canvas is not including what has been modified, the source, team member, and commit/s.
o There is one improvement to the application by each team member and the changes are not only minor fixes.

  • Reproducibility 12/20
    o Testing: rubric={mechanics:1/5, accuracy:5/5}
    • The tests are passing in the github action workflow 1/5
    • There are 3 test_that() statements in the file tests/testthat/test-shinytest2.R  5/5
    o Continuous Integration and Deployment: rubric={mechanics:1/5, accuracy:5/5}
    • There should be one workflow badge in the README.md 5/5 mechanics
    • The deployment workflow deploy_app.yaml is passing. 1/5 accuracy

  • Tie it all together: rubric={mechanics:20/20, accuracy:20/20, viz:6/10}
    o The main plots take time to load (-4)

  • Reflection: reasoning: 6/6
    o There is a reflection-milestone4.md file 
    o reflection-milestone4.md is included in the docs folder
    o When reviewing reflection-milestone4.md and comparing it with the milestone1 sketch, it's not difficult to comprehend the alterations that were made and the reasons behind them.  

Main Dashboard Task 3

  • Take Targets and Totals Implemented in Steps 1 and 2
  • Plot Current Values as Proportions (i.e. current/total) as a pie(?) chart for each nutrient.
  • Display % and grams as text remaining for each nutrient

Main Dashboard Task 1

  • Setup Reactive Inputs for Setting Macro Targets
  • Implement Button to Switch between Input Types
  • Setup Main Plot Object
  • Plot Targets as horizontal lines on Main Plot Object

Milestone 1 Feedback

Group 9

Congratulations on finishing milestone 1! We can see you put a lot of work into this project, nice work!
Below we list some specific feedback you can use to improve your project.
We provide tick boxes for you to use in the future as you address these concerns to improve the final grade of your project.
If anything is unclear, please feel free to ask questions in this issue thread.


Submission instructions

rubric={mechanics:4}

Well done!

Section 1: Motivation and Purpose

rubric={reasoning:8,writing:2}

- [ ] proposal.md: There isn't a minimal description of the app. What will the app do? What is it's main purpose? -2 reasoning

Section 2: Description of the data

rubric={reasoning:8,writing:2}

  • proposal.md - Dataset description section: There is not evidence data quality analysis. Are there missing values? Are these values an important percentage of the dataset?. -1 reasoning

Section 3: Research questions and usage scenarios

rubric={reasoning:12,writing:2}

- [ ] proposal.md - Persona: IPersona**: In the persona description it is not specified their needs as user and/or the potential benefits that the app could for this person -2 reasoning

  • proposal.md - Persona: The level of detail provided in the persona description is not sufficient and the number of words in it is less than 200-300 words. -2 reasoning

Comments:
-What is lacking is information on what the app provides and how it will help Bob (benefits).

Section 4: Description of your app & sketch

rubric={viz:10, writing:2, reasoning: 3}

Well done!

Section 5: Team work contract and collaborative documentation

rubric={reasoning:4}

Well done!

Code of Conduct

rubric={reasoning:1}

Well done!

Contribution guidelines

rubric={reasoning:1}

Well done!

Milestone 2 Feedback

Congratulations on finishing milestone 2! Below is the grading scheme for this deliverable.

Mechanics: 2/4
o The links are missing in the canvas submission. -2 mechanics

Developing your Shiny App: mechanics: 10/15, quality: 5/5, viz: 10/15, accuracy: 7/7
o There is not one branch by each team member. -5 mechanics
o The elements of the app aren't organized effectively. -5 viz

  • I would consider reorganizing the layout of features in the app. When testing it out, I didn’t find it to be super intuitive and it took a few minutes for me to understand what was being plotted. Specifically, because the buttons to plot are placed on the left column (before the food entry) it made me think there would be another to add the food entries after. I see now that it will update once I input a food and click them, but this order is not standard in UIs
  • Use consistent labeling/naming of the plot buttons, one should not be a question and the other not.
  • There is an overlap between the plots and labels (ex “Weights” and the macronutrient plot)
  • I couldn’t see my own manual input for the weight of foods because the input box isn’t sized appropriately.
  • Review spelling, ex. “Macroutrient Totals”
  • Minor comment, but consider giving the user the option for either the slider or manual input (maybe a drop-down) and then just let one appear and have 1 plot button.
  • “About”, “Data” and “Download” pages are blank
  • I like your “Statistics” page with food rankings I think that’s a creative and useful feature!

Reflection: reasoning: 6/6

README: reasoning: 6/6

Grade 46/58. Great job! Please let me know if you have any questions or would like to discuss any of these points further.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.