/RecipesApi

A single-page app to create and manage cooking recipes that allow persisting data on a server.

Primary LanguageTypeScript

Recipes API

Typescript React Bootstrap SQLite AdonisJS Create React App

A cooking recipe management app that allows users to create and manage recipes, and persist them on a server. The back-end is provided and managed with the Adonis Node.js framework, and the database is managed with SQLite.

Features

  • User authentication system based on cookie
  • List of recipes with the possibility to consult and edit them in live
  • Ability to manage ingredients used in different recipes, and modify the quantities and units of measurement of the recipes
  • Add new recipes, with fields validation
  • API for CRUD operations on recipes and ingredients

Demo

Demo

Demo Link

Installation

To start the server, navigate to the api folder and run the following commands:

yarn install yarn run build yarn run dev

Then, to start the front-end app, navigate to the front folder and run:

yarn install yarn start

The app will run on http://localhost:3000.

Structure

The app's state is structured as follows:

  • App
    • user
    • LoginForm
      • onConnect(user)
    • Site
      • page
      • ingredients
      • recipes
      • currentRecipe
      • Recipes
        • recipes
      • RecipeDetail
        • id
        • recipe
      • RecipeEditForm
        • recipe
        • ingredients
        • onSubmit(recipe, newRecipe)
      • Ingredients
        • ingredients
        • onUpdate(ingredient, newIngredient)
        • onDelete(ingredient)
        • onCreate(ingredient)
      • RecipeCreateForm
        • ingredients
        • onSubmit(newRecipe)

Technologies Used

This project was bootstrapped with Create React App and uses Bootstrap classes for UI. The Adonis framework is used for back-end development and SQLite for database management.

APIs

The following APIs are available:

  • /login: Endpoint for user authentication
  • /recipes: API for CRUD operations on recipes
  • /ingredients: API for CRUD operations on ingredients

License

This project is licensed under the MIT License - see the LICENSE.md file for details.