Giter VIP home page Giter VIP logo

culinaryalchemy's Introduction

CulinaryAlchemy

pipeline

Recipes social media

Table of Contents

Key Features

MVP

  • User Sign In / Sign Up Simple sign-in with email and password. A sign-up with username, email, and password.
  • Recipes feed Feed with recipes list with title, valoration, and recipe picture for each recipe. when a recipe is clicked, a "details" modal must be open showing the recipe ingredients, steps, cuisine type, and valoration.
  • User profile In a Twitter style, a profile layout of the User name, profile picture, banner, location, and external website link. While showing the user-posted recipes in a list.
  • Favourite Recipes: Save your favorite recipes for quick access in a list.

Technologies Used

  • Backend:
    • main:
      • Node.js, Express, Sequelize, Postgress, and Typescript.
    • extra:
      • express validator: validate request params & body
      • bcrypt: encrypt passwords
      • passport jwt: auth with JSON web tokens
      • cors: Security
  • Frontend:
    • main:
      • React, React Router Dom, JoyUI.
    • extra:
      • React Hook Form
      • Zod
      • Axios
      • SWR

Project Setup

To set up the RecipeAlchemy project locally, please follow these steps:

  1. Clone this repository to your local machine.
  2. Install the necessary dependencies by running npm install in apps/server and apps/web-apps.

Backend

  1. Create a .env file in the root of apps/server/ with the next variables:

    |- JWT_SECRET: the jwt secret signature |- PORT: the port in which to run the backend development server (default set to 3000).

  2. Run the backend server using npm run dev in the directory apps/server

Fronted

  1. Run the frontend development server using npm dev in the directory apps/web-app.
  2. Access the CulinaryAlchemy platform in your browser at http://localhost:5173/ or to your environment port var.

Contributions

We welcome contributions to enhance RecipeAlchemy. If you have any ideas, bug fixes, or improvements, feel free to submit a pull request. Please ensure that your code follows the established coding conventions and includes appropriate tests.

License

Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

We hope that RecipeAlchemy becomes your go-to platform for culinary inspiration, recipe sharing, and connecting with fellow food enthusiasts. Happy cooking!

culinaryalchemy's People

Contributors

huilensolis avatar jes015 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

culinaryalchemy's Issues

feat(web-app): modify theme change icon

  • The toggle button must be white or dark, must remove the "device preferable mode" from the icon.
  • the default theme must be the preferable one by the device/browser

fix(web-app): inputs

  • update input names
  • add label property to the constants for each form
  • refactor user inputs (constants) and add them to a global user inputs

install @types/jsonwebtoken and @types/passport types to the server project

install @types/jsonwebtoken and @types/passport types to the server project

Logs
@types/jsonwebtoken [0] /home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:859 [0] return new TSError(diagnosticText, diagnosticCodes, diagnostics); [0] ^ [0] TSError: ⨯ Unable to compile TypeScript: [0] src/routes/auth/sign-in.ts(4,17): error TS7016: Could not find a declaration file for module 'jsonwebtoken'. '/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]/node_modules/jsonwebtoken/index.js' implicitly has an 'any' type. [0] If the 'jsonwebtoken' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jsonwebtoken' [0] [0] at createTSError (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:859:12) [0] at reportTSError (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:863:19) [0] at getOutput (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1077:36) [0] at Object.compile (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1433:41) [0] at Module.m._compile (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1617:30) [0] at Module._extensions..js (node:internal/modules/cjs/loader:1287:10) [0] at Object.require.extensions. [as .ts] (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1621:12) [0] at Module.load (node:internal/modules/cjs/loader:1091:32) [0] at Function.Module._load (node:internal/modules/cjs/loader:938:12) [0] at Module.require (node:internal/modules/cjs/loader:1115:19) { [0] diagnosticCodes: [ 7016 ] [0] } ^C[0] nodemon -r dotenv/config -q src/index.ts exited with code 130
@types/passport [0] /home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:859 [0] return new TSError(diagnosticText, diagnosticCodes, diagnostics); [0] ^ [0] TSError: ⨯ Unable to compile TypeScript: [0] src/index.ts(3,22): error TS7016: Could not find a declaration file for module 'passport'. '/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]/node_modules/passport/lib/index.js' implicitly has an 'any' type. [0] If the 'passport' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/passport' [0] [0] at createTSError (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:859:12) [0] at reportTSError (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:863:19) [0] at getOutput (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1077:36) [0] at Object.compile (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1433:41) [0] at Module.m._compile (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1617:30) [0] at Module._extensions..js (node:internal/modules/cjs/loader:1287:10) [0] at Object.require.extensions. [as .ts] (/home/jes/.projects/CulinaryAlchemy/node_modules/.pnpm/[email protected]_@[email protected][email protected]/node_modules/ts-node/src/index.ts:1621:12) [0] at Module.load (node:internal/modules/cjs/loader:1091:32) [0] at Function.Module._load (node:internal/modules/cjs/loader:938:12) [0] at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12) { [0] diagnosticCodes: [ 7016 ] [0] } ^C[0] nodemon -r dotenv/config -q src/index.ts exited with code 130

feat(server): configure cors

  • control the cors origin dinamicly
  • if the .env variable ENVIRONMENT is DEV, allow orogin to localhost
  • if the .env variable is PRODUCTION, only allow request from the public backend

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.