Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9909669
Enabled database connectivity, and updated some dependencies
KaustubhAs Nov 2, 2024
f57652a
updated some dependencies
KaustubhAs Nov 2, 2024
d59ff7d
Merge pull request #3 from ForkBombers/DatabaseConnectivity
KaustubhAs Nov 2, 2024
7009bf6
Added cooking time filter in backend and modified frontend
KaustubhAs Nov 2, 2024
952de34
Updated the Navbar.js with a better color shade and formatted the fon…
iamNikitaC Nov 2, 2024
bcde8d7
Updated the RecipeCard.js with colors syncing with the navbar.
iamNikitaC Nov 2, 2024
4f93274
Fixed double input box bug
KaustubhAs Nov 2, 2024
7d2181b
Merge pull request #6 from ForkBombers/UI-Enhancement
iamNikitaC Nov 2, 2024
17176f7
Created a new theme.js file
iamNikitaC Nov 2, 2024
5be9bcc
Updated theme.js file
iamNikitaC Nov 2, 2024
da429f5
Updated Navbar.js with the theme switching button and made minor chan…
iamNikitaC Nov 2, 2024
1869b03
Updated index.js for custom theme feature.
iamNikitaC Nov 2, 2024
beee968
Fixed bugs
KaustubhAs Nov 2, 2024
a88d896
Merge pull request #7 from ForkBombers/cooking-time-filter
KaustubhAs Nov 2, 2024
fb23e8e
Modified RecipeCard.js, AddRecipe.js, Navbar.js, Form.js, App.js with…
iamNikitaC Nov 2, 2024
f6722c3
Added logo and website name.
iamNikitaC Nov 2, 2024
d820cb6
Resolved conflict.
iamNikitaC Nov 2, 2024
b6c83e8
Merge branch 'master' into Dark-Mode-Theme
KaustubhAs Nov 2, 2024
6584b14
Merge pull request #8 from ForkBombers/Dark-Mode-Theme
KaustubhAs Nov 2, 2024
9b2a611
Integrate diet_type filtering feature in main application flow
Nov 2, 2024
91ee7ea
Update DAO to include diet_type filtering logic
Nov 2, 2024
30d2e89
Enhance controller to handle diet_type filtering in recipes
Nov 2, 2024
1449345
Add diet_type selection to recipe submission form
Nov 2, 2024
84dc1d8
Implement filtering by diet_type in RecipeList component
Nov 2, 2024
a6dba2c
Updated README
Nov 2, 2024
d206d08
Fix all the bugs in App.js and RecipeList.js, the diet-filter is now …
KaustubhAs Nov 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Code/backend/.env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RECIPES_DB_URI=mongodb+srv://atharvajoshi067:ZgSvdar14OnteUZx@cluster0.9zuebnu.mongodb.net/?retryWrites=true&w=majority
RECIPES_DB_URI=mongodb+srv://Kaustubh:Kaustubh@cluster0.4qoax.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0
RECIPES_NS=recipe_recommender
PORT=5000
GMAIL= atharva.joshi17@siesgst.ac.in
GMAIL= ksonawa@ncsu.edu
3 changes: 2 additions & 1 deletion Code/backend/__tests__/testGetRecipes.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

const request = require("supertest")("http://localhost:5000/api/v1");
const expect = require("chai").expect;

Expand Down Expand Up @@ -68,4 +69,4 @@ describe("GET /recipes", function () {

expect(response.text.includes("Andhra")).true;
});
});
});
65 changes: 39 additions & 26 deletions Code/backend/api/recipes.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,56 +2,55 @@ import RecipesDAO from "../dao/recipesDAO.js";

export default class RecipesController {
static async apiAuthLogin(req, res) {
let filters = {}
filters.userName = req.query.userName
filters.password = req.query.password
let filters = {};
filters.userName = req.query.userName;
filters.password = req.query.password;
const { success, user } = await RecipesDAO.getUser({
filters
})
filters,
});
res.json({ success, user });
}

static async apiAuthSignup(req, res) {
if (req.body) {
let data = {}
data.userName = req.body.userName
data.password = req.body.password
let data = {};
data.userName = req.body.userName;
data.password = req.body.password;
const { success, user } = await RecipesDAO.addUser({
data
})
data,
});
res.json({ success, user });
}
}

static async apiGetBookmarks(req, res) {
if (req.query.userName) {
const bookmarks = await RecipesDAO.getBookmarks(req.query.userName)
console.log(bookmarks)
const bookmarks = await RecipesDAO.getBookmarks(req.query.userName);
console.log(bookmarks);
res.json({ bookmarks });
} else {
res.json("Username not given")
res.json("Username not given");
}
}

static async apiPostRecipeToProfile(req, res) {
if (req.body) {
const { userName, recipe } = req.body;
try {
const response = RecipesDAO.addRecipeToProfile(userName, recipe)
res.json(response)
const response = await RecipesDAO.addRecipeToProfile(userName, recipe);
res.json(response);
} catch (e) {
console.log(`error: ${e}`)
console.log(`error: ${e}`);
}

} else {
res.json({ success: false })
res.json({ success: false });
}

}

static async apiGetRecipeByName(req, res) {
let filters = {};
//Checking the query to find the required results
console.log(req.query)
console.log(req.query);
if (req.query.recipeName) {
filters.recipeName = req.query.recipeName;
}
Expand All @@ -61,7 +60,7 @@ export default class RecipesController {
});

let response = {
recipes: recipesList
recipes: recipesList,
};
res.json(response);
}
Expand All @@ -82,6 +81,21 @@ export default class RecipesController {
filters.Flag = req.query.Flag;
}

// New filter for TotalTimeInMins
if (req.query.TotalTimeInMins) {
filters.TotalTimeInMins = parseInt(req.query.TotalTimeInMins, 10);
}

// New filter for diet_type
if (req.query.diet_type) {
const allowedDietTypes = ["Vegan", "Vegetarian", "Non-Vegetarian"];
if (allowedDietTypes.includes(req.query.diet_type)) {
filters.diet_type = req.query.diet_type;
} else {
return res.status(400).json({ error: "Invalid diet_type value" });
}
}

const { recipesList, totalNumRecipes } = await RecipesDAO.getRecipes({
filters,
page,
Expand All @@ -97,6 +111,7 @@ export default class RecipesController {
};
res.json(response);
}

//Function to get the cuisines
static async apiGetRecipeCuisines(req, res, next) {
try {
Expand All @@ -112,7 +127,7 @@ export default class RecipesController {
try {
let response = await RecipesDAO.addRecipe(req.body);
res.json(response);
} catch(e) {
} catch (e) {
console.log(`api, ${e}`);
res.status(500).json({ error: e });
}
Expand All @@ -122,10 +137,8 @@ export default class RecipesController {
try {
let ingredients = await RecipesDAO.getIngredients();
res.json(ingredients);
} catch(e) {
} catch (e) {
res.status(500).json({ error: e });
}
}
}


4 changes: 2 additions & 2 deletions Code/backend/api/recipes.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import RecipesCtrl from "./recipes.controller.js";
import RecipesDAO from "../dao/recipesDAO.js";

const router = express.Router();
//URl to get the recipes
//URL to get the recipes
router.route("/").get(RecipesCtrl.apiGetRecipes);

router.route("/cuisines").get(RecipesCtrl.apiGetRecipeCuisines);

router.route("/addRecipe").post(RecipesCtrl.apiPostRecipe);

router.route('/callIngredients').get(RecipesCtrl.apiGetIngredients);
router.route("/callIngredients").get(RecipesCtrl.apiGetIngredients);

router.route("/signup").post(RecipesCtrl.apiAuthSignup);

Expand Down
Loading