Skip to content

Pooja0629/DishBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DishBook – Recipe Management System

Table of Contents

Overview

DishBook is a full-stack web application designed for managing and organizing recipes. It provides users with a comprehensive platform to store, categorize, and manage their culinary creations through an intuitive interface and robust backend architecture.

The application features user authentication, recipe management with full CRUD operations, search functionality, and a responsive design that works across all devices.

Features

Authentication System

  • User registration and login with email verification
  • Secure session management using localStorage
  • Password recovery system with email reset functionality
  • Social media authentication integration points

Recipe Management

  • Create new recipes with detailed ingredients and instructions
  • Edit and update existing recipes
  • Delete recipes with confirmation dialogs
  • Categorize recipes by meal type and cuisine
  • Advanced search with real-time filtering
  • User-specific recipe collections

User Interface

  • Responsive design optimized for desktop, tablet, and mobile
  • Smooth animations and transitions
  • Password visibility toggle for enhanced usability
  • Form validation with user-friendly error messages
  • Loading states and progress indicators

Technology Stack

Frontend

  • HTML5 for semantic markup
  • CSS3 for styling and animations
  • JavaScript ES6+ for client-side logic
  • Font Awesome for icons
  • Google Fonts (Montserrat) for typography

Backend

  • Node.js runtime environment
  • Express.js web framework
  • MongoDB database
  • Mongoose ODM library
  • CORS middleware for cross-origin requests

Development Tools

  • RESTful API architecture
  • MVC pattern implementation
  • Modular code structure
  • Comprehensive error handling

Installation

Prerequisites

  • Node.js (version 18 or higher)
  • MongoDB Atlas account or local MongoDB installation
  • Modern web browser (Chrome, Firefox, Safari, Edge)

Installation Steps

  1. Clone the Repository

    git clone https://github.com/yourusername/dishbook.git
    cd dishbook
  2. Install Dependencies

    npm install express mongoose cors
  3. Environment Configuration Create a .env file in the root directory:

    MONGODB_URI=your_mongodb_connection_string
    PORT=5000
  4. Start the Development Server

    node recipe.js
  5. Access the Application Open your browser and navigate to:

    http://localhost:5000
    

Usage

User Registration and Authentication

  1. New users can register by providing a username, email, and password
  2. Existing users can log in with their credentials
  3. Password recovery is available through the forgot password feature

Recipe Management

  1. Adding Recipes: Use the recipe form to input:

    • Recipe name
    • List of ingredients
    • Step-by-step instructions
    • Category selection
  2. Viewing Recipes: Browse all recipes in an organized card layout

  3. Editing Recipes: Update existing recipes with new information

  4. Deleting Recipes: Remove unwanted recipes with confirmation

  5. Searching Recipes: Find specific recipes using the search functionality

API Documentation

Authentication Endpoints

Method Endpoint Description Request Body
POST /signup User registration { username, email, password }
POST /login User authentication { email, password }
POST /forgot-password Password reset request { email }

Recipe Endpoints

Method Endpoint Description Parameters
POST /recipes Create new recipe { name, ingredients[], steps, category, userEmail }
GET /recipes/:email Get user's recipes email (URL parameter)
POST /recipes/update/:id Update recipe id (URL parameter), recipe data
DELETE /recipes/:id Delete recipe id (URL parameter)
GET /recipes/search/:email Search recipes email (URL), q (query)

File Descriptions

  • login.html: Authentication interface handling login, signup, and password recovery
  • login.css: Styling for authentication pages with custom color scheme
  • login.js: Client-side authentication logic and form handling
  • recipe.js: Backend server with Express.js, MongoDB integration, and API routes
  • index.html: Main recipe management dashboard
  • index.css: Styling for main application interface
  • index.js: Recipe CRUD operations and search functionality

Development

Code Architecture

  • Frontend: Vanilla JavaScript with modular components
  • Backend: RESTful API with Express.js
  • Database: MongoDB with Mongoose ODM
  • Authentication: Session-based with localStorage

License

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

Contact

Project Links


“Simplifying recipe management through smart and intuitive web solutions.”

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors