diff --git a/db_app/src/App.js b/db_app/src/App.js
index 0cbd162..3d06b0f 100644
--- a/db_app/src/App.js
+++ b/db_app/src/App.js
@@ -4,6 +4,9 @@ import CreateAccount from "./components/CreateAccount";
import Menus from "./components/Menus";
import Plan from "./components/Plan";
import MenuExpansion from "./components/MenuExpansion";
+import LogMeals from "./components/LogMeals";
+import ThisWeek from "./components/ThisWeek";
+import Past from "./components/Past"
import { ReactSession } from 'react-client-session';
import {
@@ -24,6 +27,9 @@ function App() {
}>
}>
}>
+ }>
+ }>
+ }>
);
diff --git a/db_app/src/components/LogMeals.js b/db_app/src/components/LogMeals.js
new file mode 100644
index 0000000..2f54aae
--- /dev/null
+++ b/db_app/src/components/LogMeals.js
@@ -0,0 +1,580 @@
+import React,{useState} from 'react';
+import {Routes, Route, useNavigate} from 'react-router-dom';
+import './Login.css';
+import Button from "@mui/material/Button";
+import Card from "@mui/material/Card";
+import TextField from "@mui/material/TextField";
+import FormControlLabel from "@mui/material/FormControlLabel";
+import Checkbox from "@mui/material/Checkbox";
+import Link from "@mui/material/Link";
+import Grid from "@mui/material/Grid";
+import Box from "@mui/material/Box";
+import Typography from "@mui/material/Typography";
+import Container from "@mui/material/Container";
+import AppBar from '@mui/material/AppBar';
+import Toolbar from '@mui/material/Toolbar';
+import IconButton from '@mui/material/IconButton';
+import Avatar from '@mui/material/Avatar';
+import Tooltip from '@mui/material/Tooltip';
+import Menu from '@mui/material/Menu';
+import MenuIcon from '@mui/material/Menu'
+import MenuItem from '@mui/material/MenuItem';
+import {red, green, lightBlue, lightGreen} from '@mui/material/colors';
+import { ThemeProvider, createTheme } from '@mui/material/styles';
+import { ReactSession } from 'react-client-session';
+import { Axios } from 'axios';
+import Chip from '@mui/material/Chip';
+import Stack from '@mui/material/Stack';
+import Select, { SelectChangeEvent } from '@mui/material/Select';
+import InputLabel from '@mui/material/InputLabel';
+import FormControl from '@mui/material/FormControl';
+import { Table, TableBody, TableCell, TableContainer,TableHead, TableRow, Paper} from '@mui/material';
+
+
+const theme = createTheme({
+ palette: {
+ primary: {
+ main: lightGreen[700],
+ apple: red[500],
+ },
+
+ },
+ });
+
+function LogMeals() {
+
+ const navigate = useNavigate();
+
+ const Home = () => {
+ navigate('/Plan');
+ }
+ const Menus = () => {
+ navigate('/Menus');
+ }
+ const Past = () => {
+ navigate('/Past');
+}
+const navigateLogin = () => {
+ navigate('/');
+}
+
+const logout = () => {
+ ReactSession.set("net_id", "");
+ navigateLogin();
+
+}
+
+const Log = () => {
+ navigate('/LogMeals')
+ }
+
+ const Progress = () => {
+ navigate('/ThisWeek')
+ }
+//get the start of each week and reformat to Oracle date type
+function weekStart(){
+ var date_str = new Date();
+ const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
+ var weekday = days[date_str.getDay()]
+
+ if (weekday != 'Sunday'){
+ return;
+ }
+
+ var date_str = new Date();
+ var curr_day = String(date_str.getDate()).padStart(2, '0');
+ const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
+
+ var curr_month = months[date_str.getMonth()];
+ var curr_year = String(date_str.getFullYear());
+ var db_date = curr_day + '-' + curr_month + '-' + curr_year.slice(2);
+
+ return db_date;
+}
+
+const net_id = ReactSession.get("net_id");
+
+//to set nutritional goal for the week
+const [goalInput, setGoalInput] = useState({
+ total_cal: "",
+ total_fat: "",
+ total_sat_fat: "",
+ total_trans_fat: "",
+ total_carbs: "",
+ total_fiber: "",
+ total_sugar: "",
+ total_protein: "",
+ total_sodium: "",
+ total_potassium: "",
+ total_cholesterol: "",
+ }
+);
+
+const{total_cal, total_fat, total_sat_fat, total_trans_fat, total_carbs, total_fiber,
+ total_sugar, total_protein, total_sodium, total_potassium, total_cholesterol} = goalInput
+
+const changeGoalHandler = evt =>{
+ setGoalInput({...goalInput, [evt.target.name]: [evt.target.value] })
+}
+
+const submitGoalHandler = evt => {
+ evt.preventDefault();
+ console.log(goalInput)
+ Axios.post("http://3.219.93.142:8000/api/",
+ {
+ total_cal: total_cal[0],
+ total_fat: total_fat[0],
+ total_sat_fat: total_sat_fat[0],
+ total_trans_fat: total_trans_fat[0],
+ total_carbs: total_carbs[0],
+ total_fiber: total_fiber[0],
+ total_sugar: total_sugar[0],
+ total_protein: total_protein[0],
+ total_sodium: total_sodium[0],
+ total_potassium: total_potassium[0],
+ total_cholesterol: total_cholesterol[0]
+ }).then((response) => {
+ console.log(response);
+ console.log(response.status);
+ })
+};
+
+
+//to add an off campus food item or meal to your weekly journal
+ const [offCampusInput, setOffCampusInput] = useState({
+ calories: "",
+ fat_g: "",
+ sat_fat_g: "",
+ trans_fat_g: "",
+ carbs_g: "",
+ fiber_g: "",
+ sugar_g: "",
+ protein_g: "",
+ sodium_g: "",
+ potassium_g: "",
+ cholesterol_g: "",
+ }
+ );
+
+ const { calories, fat_g, sat_fat_g, trans_fat_g, carbs_g, fiber_g,sugar_g, protein_g,
+ sodium_g, potassium_g, cholesterol_g, } = offCampusInput
+
+ const changeoffCampusHandler = evt => {
+ setOffCampusInput({ ...offCampusInput, [evt.target.name]: [evt.target.value] })
+ }
+
+ const submitoffCampusHandler = evt => {
+ evt.preventDefault();
+ };
+
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Your Plan
+ Goal for the week of:
+
+
+
+
+
+
+
+
+ So Far This Week:
+
+
+
+
+ Foods Eaten
+
+
+
+
+
+
+ Food
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekly Totals
+
+
+
+
+
+
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add to Food Journal
+
+
+ On-Campus
+
+
+
+
+ Off-Campus
+
+
+
+
+
+
+ );
+ }
+
+ export default LogMeals;
\ No newline at end of file
diff --git a/db_app/src/components/MenuExpansion.js b/db_app/src/components/MenuExpansion.js
index 611b4af..ae1188d 100644
--- a/db_app/src/components/MenuExpansion.js
+++ b/db_app/src/components/MenuExpansion.js
@@ -80,7 +80,10 @@ const eatery_to_query = getEatery();
}
+
+
const [menuItems, setmenuItems] = useState([{}]);
+const [toAdd, setToAdd] = useState([]);
const doMenu = () => {
const data = getMenu();
@@ -91,6 +94,44 @@ const buttonTime = () => {
getMenu();
console.log(menuItems);
}
+
+const removeItem = (index) => {
+ setToAdd([
+ ...toAdd.slice(0, index),
+ ...toAdd.slice(index + 1)
+ ]);
+
+}
+
+function handleCheck (i) {
+ console.log(i);
+ if (toAdd.indexOf(i) > -1){
+ //get index and delete
+ var index = toAdd.indexOf(i)
+ removeItem(index);
+ console.log(`removed ${i}`);
+
+ }
+
+ else{
+ setToAdd(toAdd => [...toAdd, i]);
+ console.log(`added ${i}`);
+ }
+
+}
+
+
+
+const testChecks = () => {
+ console.log(toAdd);
+}
+
+const sendToPlan = () => {
+ Axios.post('http://3.219.93.142:8000/api/week_meals', {net_id: ReactSession.get("net_id"), item_list: toAdd,}).then((response) => {
+ console.log(response);
+ });
+
+ }
useEffect(() => {
getMenu()
@@ -121,31 +162,47 @@ useEffect(() => {
-
+
+
+
- Menu Items:
-
+ Menu Items
+
+
+
+
+
+
-
-
+
+
-
- Food
+
+
+ Add?
+ Food
Calories
- Fat (g)
+ Fat (g)
Saturated Fat (g)
TransFat (g)
- Carbs (g)
- Fiber (g)
+ Carbs (g)
+ Fiber (g)
Sugar (g)
Protein (g)
Sodium (mg)
Potassium (mg)
- Cholesterol (mg)
+ Cholesterol (mg)
-
+
{menuItems.map((menuItem, i) => {
console.log(i);
return(
@@ -153,6 +210,15 @@ useEffect(() => {
key={menuItem.item_name}
sx={{ '&:last-child td, &:last-child th': { border: 0 } }}
>
+
+
+
+ handleCheck(menuItem.item_id)}
+ />
+
{menuItem.item_name}
@@ -179,6 +245,7 @@ useEffect(() => {
+
);
diff --git a/db_app/src/components/Menus.js b/db_app/src/components/Menus.js
index 0d0b9a4..2e0ef10 100644
--- a/db_app/src/components/Menus.js
+++ b/db_app/src/components/Menus.js
@@ -124,6 +124,17 @@ const menuExpansion = () => {
+
+
+
+
+ Campus Eateries
+
+
+
+
+
+
{
+ navigate('/Plan');
+ }
+ const Menus = () => {
+ navigate('/Menus');
+ }
+ const Past = () => {
+ navigate('/Past');
+}
+const navigateLogin = () => {
+ navigate('/');
+}
+
+const logout = () => {
+ ReactSession.set("net_id", "");
+ navigateLogin();
+
+}
+
+const Log = () => {
+ navigate('/LogMeals')
+ }
+
+ const Progress = () => {
+ navigate('/ThisWeek')
+ }
+//get the start of each week and reformat to Oracle date type
+function weekStart(){
+ var date_str = new Date();
+ const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
+ var weekday = days[date_str.getDay()]
+
+ if (weekday != 'Sunday'){
+ return;
+ }
+
+ var date_str = new Date();
+ var curr_day = String(date_str.getDate()).padStart(2, '0');
+ const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
+
+ var curr_month = months[date_str.getMonth()];
+ var curr_year = String(date_str.getFullYear());
+ var db_date = curr_day + '-' + curr_month + '-' + curr_year.slice(2);
+
+ return db_date;
+}
+
+const net_id = ReactSession.get("net_id");
+
+//to set nutritional goal for the week
+const [goalInput, setGoalInput] = useState({
+ total_cal: "",
+ total_fat: "",
+ total_sat_fat: "",
+ total_trans_fat: "",
+ total_carbs: "",
+ total_fiber: "",
+ total_sugar: "",
+ total_protein: "",
+ total_sodium: "",
+ total_potassium: "",
+ total_cholesterol: "",
+ }
+);
+
+const{total_cal, total_fat, total_sat_fat, total_trans_fat, total_carbs, total_fiber,
+ total_sugar, total_protein, total_sodium, total_potassium, total_cholesterol} = goalInput
+
+const changeGoalHandler = evt =>{
+ setGoalInput({...goalInput, [evt.target.name]: [evt.target.value] })
+}
+
+const submitGoalHandler = evt => {
+ evt.preventDefault();
+ console.log(goalInput)
+ Axios.post("http://3.219.93.142:8000/api/",
+ {
+ total_cal: total_cal[0],
+ total_fat: total_fat[0],
+ total_sat_fat: total_sat_fat[0],
+ total_trans_fat: total_trans_fat[0],
+ total_carbs: total_carbs[0],
+ total_fiber: total_fiber[0],
+ total_sugar: total_sugar[0],
+ total_protein: total_protein[0],
+ total_sodium: total_sodium[0],
+ total_potassium: total_potassium[0],
+ total_cholesterol: total_cholesterol[0]
+ }).then((response) => {
+ console.log(response);
+ console.log(response.status);
+ })
+};
+
+
+//to add an off campus food item or meal to your weekly journal
+ const [offCampusInput, setOffCampusInput] = useState({
+ calories: "",
+ fat_g: "",
+ sat_fat_g: "",
+ trans_fat_g: "",
+ carbs_g: "",
+ fiber_g: "",
+ sugar_g: "",
+ protein_g: "",
+ sodium_g: "",
+ potassium_g: "",
+ cholesterol_g: "",
+ }
+ );
+
+ const { calories, fat_g, sat_fat_g, trans_fat_g, carbs_g, fiber_g,sugar_g, protein_g,
+ sodium_g, potassium_g, cholesterol_g, } = offCampusInput
+
+ const changeoffCampusHandler = evt => {
+ setOffCampusInput({ ...offCampusInput, [evt.target.name]: [evt.target.value] })
+ }
+
+ const submitoffCampusHandler = evt => {
+ evt.preventDefault();
+ };
+
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Your Plan
+ Goal for the week of:
+
+
+
+
+
+
+
+
+ So Far This Week:
+
+
+
+
+ Foods Eaten
+
+
+
+
+
+
+ Food
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekly Totals
+
+
+
+
+
+
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add to Food Journal
+
+
+ On-Campus
+
+
+
+
+ Off-Campus
+
+
+
+
+
+
+ );
+ }
+
+ export default ThisWeek;
\ No newline at end of file
diff --git a/db_app/src/components/Plan.js b/db_app/src/components/Plan.js
index eca3322..85d4763 100644
--- a/db_app/src/components/Plan.js
+++ b/db_app/src/components/Plan.js
@@ -63,6 +63,17 @@ const logout = () => {
navigateLogin();
}
+
+const Log = () => {
+ navigate('/LogMeals')
+}
+
+const Progress = () => {
+ navigate('/ThisWeek')
+}
+
+
+
//get the start of each week and reformat to Oracle date type
function weekStart(){
var date_str = new Date();
@@ -162,7 +173,7 @@ const submitGoalHandler = evt => {
return (
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
Your Plan
diff --git a/db_app/src/components/ThisWeek.js b/db_app/src/components/ThisWeek.js
new file mode 100644
index 0000000..c1e43f7
--- /dev/null
+++ b/db_app/src/components/ThisWeek.js
@@ -0,0 +1,580 @@
+import React,{useState} from 'react';
+import {Routes, Route, useNavigate} from 'react-router-dom';
+import './Login.css';
+import Button from "@mui/material/Button";
+import Card from "@mui/material/Card";
+import TextField from "@mui/material/TextField";
+import FormControlLabel from "@mui/material/FormControlLabel";
+import Checkbox from "@mui/material/Checkbox";
+import Link from "@mui/material/Link";
+import Grid from "@mui/material/Grid";
+import Box from "@mui/material/Box";
+import Typography from "@mui/material/Typography";
+import Container from "@mui/material/Container";
+import AppBar from '@mui/material/AppBar';
+import Toolbar from '@mui/material/Toolbar';
+import IconButton from '@mui/material/IconButton';
+import Avatar from '@mui/material/Avatar';
+import Tooltip from '@mui/material/Tooltip';
+import Menu from '@mui/material/Menu';
+import MenuIcon from '@mui/material/Menu'
+import MenuItem from '@mui/material/MenuItem';
+import {red, green, lightBlue, lightGreen} from '@mui/material/colors';
+import { ThemeProvider, createTheme } from '@mui/material/styles';
+import { ReactSession } from 'react-client-session';
+import { Axios } from 'axios';
+import Chip from '@mui/material/Chip';
+import Stack from '@mui/material/Stack';
+import Select, { SelectChangeEvent } from '@mui/material/Select';
+import InputLabel from '@mui/material/InputLabel';
+import FormControl from '@mui/material/FormControl';
+import { Table, TableBody, TableCell, TableContainer,TableHead, TableRow, Paper} from '@mui/material';
+
+
+const theme = createTheme({
+ palette: {
+ primary: {
+ main: lightGreen[700],
+ apple: red[500],
+ },
+
+ },
+ });
+
+function ThisWeek() {
+
+ const navigate = useNavigate();
+
+ const Home = () => {
+ navigate('/Plan');
+ }
+ const Menus = () => {
+ navigate('/Menus');
+ }
+ const Past = () => {
+ navigate('/Past');
+}
+const navigateLogin = () => {
+ navigate('/');
+}
+
+const logout = () => {
+ ReactSession.set("net_id", "");
+ navigateLogin();
+
+}
+
+const Log = () => {
+ navigate('/LogMeals')
+ }
+
+ const Progress = () => {
+ navigate('/ThisWeek')
+ }
+//get the start of each week and reformat to Oracle date type
+function weekStart(){
+ var date_str = new Date();
+ const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
+ var weekday = days[date_str.getDay()]
+
+ if (weekday != 'Sunday'){
+ return;
+ }
+
+ var date_str = new Date();
+ var curr_day = String(date_str.getDate()).padStart(2, '0');
+ const months = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];
+
+ var curr_month = months[date_str.getMonth()];
+ var curr_year = String(date_str.getFullYear());
+ var db_date = curr_day + '-' + curr_month + '-' + curr_year.slice(2);
+
+ return db_date;
+}
+
+const net_id = ReactSession.get("net_id");
+
+//to set nutritional goal for the week
+const [goalInput, setGoalInput] = useState({
+ total_cal: "",
+ total_fat: "",
+ total_sat_fat: "",
+ total_trans_fat: "",
+ total_carbs: "",
+ total_fiber: "",
+ total_sugar: "",
+ total_protein: "",
+ total_sodium: "",
+ total_potassium: "",
+ total_cholesterol: "",
+ }
+);
+
+const{total_cal, total_fat, total_sat_fat, total_trans_fat, total_carbs, total_fiber,
+ total_sugar, total_protein, total_sodium, total_potassium, total_cholesterol} = goalInput
+
+const changeGoalHandler = evt =>{
+ setGoalInput({...goalInput, [evt.target.name]: [evt.target.value] })
+}
+
+const submitGoalHandler = evt => {
+ evt.preventDefault();
+ console.log(goalInput)
+ Axios.post("http://3.219.93.142:8000/api/",
+ {
+ total_cal: total_cal[0],
+ total_fat: total_fat[0],
+ total_sat_fat: total_sat_fat[0],
+ total_trans_fat: total_trans_fat[0],
+ total_carbs: total_carbs[0],
+ total_fiber: total_fiber[0],
+ total_sugar: total_sugar[0],
+ total_protein: total_protein[0],
+ total_sodium: total_sodium[0],
+ total_potassium: total_potassium[0],
+ total_cholesterol: total_cholesterol[0]
+ }).then((response) => {
+ console.log(response);
+ console.log(response.status);
+ })
+};
+
+
+//to add an off campus food item or meal to your weekly journal
+ const [offCampusInput, setOffCampusInput] = useState({
+ calories: "",
+ fat_g: "",
+ sat_fat_g: "",
+ trans_fat_g: "",
+ carbs_g: "",
+ fiber_g: "",
+ sugar_g: "",
+ protein_g: "",
+ sodium_g: "",
+ potassium_g: "",
+ cholesterol_g: "",
+ }
+ );
+
+ const { calories, fat_g, sat_fat_g, trans_fat_g, carbs_g, fiber_g,sugar_g, protein_g,
+ sodium_g, potassium_g, cholesterol_g, } = offCampusInput
+
+ const changeoffCampusHandler = evt => {
+ setOffCampusInput({ ...offCampusInput, [evt.target.name]: [evt.target.value] })
+ }
+
+ const submitoffCampusHandler = evt => {
+ evt.preventDefault();
+ };
+
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Your Plan
+ Goal for the week of:
+
+
+
+
+
+
+
+
+ So Far This Week:
+
+
+
+
+ Foods Eaten
+
+
+
+
+
+
+ Food
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Weekly Totals
+
+
+
+
+
+
+ Calories
+ Fat (g)
+ Saturated Fat (g)
+ TransFat (g)
+ Carbs (g)
+ Fiber (g)
+ Sugar (g)
+ Protein (g)
+ Sodium (mg)
+ Potassium (mg)
+ Cholesterol (mg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add to Food Journal
+
+
+ On-Campus
+
+
+
+
+ Off-Campus
+
+
+
+
+
+
+ );
+ }
+
+ export default ThisWeek;
\ No newline at end of file