Giter Club home page Giter Club logo

easy-cook's Introduction

monitor EASY COOK

monitor Technologies

Technologies used
html5 icon HTML5
css3 icon CSS3
react icon React
react-router-dom
typescript icon TypeScript
Zustand, for general states
axios, for fetching data

monitor LINKS

💻 -> Canva with the mockup


monitor MVP (Minimum Product Viable)

  • Create a React Application, to have the Front End for Easy-Cook, an app where you can:

  • Login with:

user: [email protected]
password: 123456
  • Search recipes

  • Add recipes to favorites list

  • See the recipe detail page

Create the FrontEnd for a web site that use a public API, using:

  • All the recipes information are fetch with an API (Spoonacular)

monitor Requirements

Web Site/Application:

  • That can be browsed from a PC or cell phone without losing information.

  • 2 sections of static content

  • 1 section of dynamic content consuming public API of your choice.

  • 1 section with a contact form (front-end implementation only).

  • 1 user/key protected section that allows to have a private area.

  • 1 List ordered by some criteria.

  • 1 List with search engine by some criteria (can be the same as the previous item).

  • The code must be published in an open GIT repository.

  • Best practices applied for front-end in general (html, css, js + angular ).

  • Data from different endpoints related to each other, for example movies associated to directors, or actors.


monitor OPTIONAL REQUIREMENTS

  • Publish the website on an online hosting.

  • Add good SEO practices.


monitor FOLDER STRUCTURE

> node_modules
> public
  > img
> src
  > api
  > assets
  > components
    > commond-components
    > sections
    > ui
      > buttons
      > form
      > headlines
      > loader
      > text
    > views
  > languages
  > layouts
  > models
    > types
  > pages
    Contact
    Home
    Login
    NotFound
    Recipe
    Search
  > routes
  > theme
  > utils
  .eslintrc.js
  .gitignore
  index.html
  package-lock.json
  packege.json
  README.md
  tsconfig.json
  stconfig.node.json
  vite.config.ts

What you will find?

  • components all the components that I'm using in the app, as they are many I separate in: coommond-components, sections and ui (all the atomic components like buttons, titles, text, etc).

  • languages all the text in the app is store in an enum or a constant.

  • models as I'm working with TYpeScript here I collect all the classes, interfaces or types that I'm using in the application.

  • pages for the pages of the app.

  • routes, to create the constants of the URL of the app, and with React-router-dom create one public route (Login page) and the rest converted to protected routes.

  • store to manage the global stated with zustand.

  • theme where I created the general theme used in the entired application.


monitor COMPONENTS

As I do not use a third party library I create my our components.

  • Inside components/ui you can find the atom components, such as: buttons, atom components for forms, headlines, loader, text.

  • Inside the commond-components you can find some reusable components for the app, such as: cards.

  • Inside the components/sections you can finde the sections, such as: header, footer.


monitor Image in assets folder example:

import reactLogo from './assets/react.svg'
import viteLogo from '/vite.svg'
import './App.css'

function App() {

  return (
    <>
      <div>
        <a href="https://vitejs.dev" target="_blank">
          <img src={viteLogo} className="logo" alt="Vite logo" />
        </a>
        <a href="https://react.dev" target="_blank">
          <img src={reactLogo} className="logo react" alt="React logo" />
        </a>
      </div>
      <h1>EasyCook</h1>
    </>
  )
}

export default App

NOTE

I appreciate your interest in this Project ⌨️ with ❤️ by María Eugenia Costa 😊 and follow me at LinkedIn - maria-eugenia-costa


easy-cook's People

Contributors

eugenia1984 avatar

Watchers

 avatar

easy-cook's Issues

Crear el Footer (molecule)

  • Que tenga un texto formateado hacia la derecha con los nombres de los participantes
  • Que tenga un segundo texto formateado a la izquierda con el año y el copyright

Ceear el enrutamiento de la app

las rutas son:
/home
/contact
/login
/search → debe estar logueado
/recipe/:id → debe estar logueado
/favorites → debe estar logueado

Actividad

Crear dos botones atomicos (atom)

  • Uno será el PrimaryButton que debe tener fondo de color, y tener props para recibir el texto, el color y optativamente un evento y una función

  • El otro será el SecondaryButton es similar al PrimaryButton, solo que solo tendrá borde, no tendrá fondo con color.

Latest recipes

Crear la seccion : Latest recipes en el home
Debe tener de titulo : 'Latest recipes' y debajo un slider de cards con la imagen de la receta y el nombre de la misma

Crear el Header (molecule)

  • Crear el header, tener en cuenta que si esta logueado se ve unas cosas y si no esta logueado se ve otra cosa

Loader

Hacer un efecto loader que tenga un z-index mayor, tape toda la pagina con un fondo griseado y tenga un spinner, opcionalmente que reciba por props un texto, por si queremos dejar en el texto el informe de que se busca o cargara

Hacer la sección ultimas recetas

  • Que tenga el titulo ultimas recetas
  • Es un carrousel de cards que tendran: imagen + titulo de la receta.
  • Si hacen click en la card van a la receta por id
  • Al final hay un "See more" que te lleva a la página de buscar recetas

Hacer el formulario de contacto

  • Que tenga como input email para ingresar un email, debe ser campo requerido y validar que sea formato email valido, al menos el @, el . y dos caracteres mínimo luego del '.'

  • Que tenga un Select para seleccionar el motivo del contacto

  • Que tenga un textarea para dejar el motivo del contacto

  • El botón de enviar, como es solo front no se envía a un back, pero si que le avise al usuario mediante algún mensaje que se recibió y se estará respondiendo en las próximas 24hs hábiles

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.