- Overview
- Features
- Technology Stack
- Installation
- Usage
- API Documentation
- Project Structure
- Development
- Deployment
- Contributing
- License
- Contact
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.
- User registration and login with email verification
- Secure session management using localStorage
- Password recovery system with email reset functionality
- Social media authentication integration points
- 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
- 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
- HTML5 for semantic markup
- CSS3 for styling and animations
- JavaScript ES6+ for client-side logic
- Font Awesome for icons
- Google Fonts (Montserrat) for typography
- Node.js runtime environment
- Express.js web framework
- MongoDB database
- Mongoose ODM library
- CORS middleware for cross-origin requests
- RESTful API architecture
- MVC pattern implementation
- Modular code structure
- Comprehensive error handling
- Node.js (version 18 or higher)
- MongoDB Atlas account or local MongoDB installation
- Modern web browser (Chrome, Firefox, Safari, Edge)
-
Clone the Repository
git clone https://github.com/yourusername/dishbook.git cd dishbook -
Install Dependencies
npm install express mongoose cors
-
Environment Configuration Create a
.envfile in the root directory:MONGODB_URI=your_mongodb_connection_string PORT=5000
-
Start the Development Server
node recipe.js
-
Access the Application Open your browser and navigate to:
http://localhost:5000
- New users can register by providing a username, email, and password
- Existing users can log in with their credentials
- Password recovery is available through the forgot password feature
-
Adding Recipes: Use the recipe form to input:
- Recipe name
- List of ingredients
- Step-by-step instructions
- Category selection
-
Viewing Recipes: Browse all recipes in an organized card layout
-
Editing Recipes: Update existing recipes with new information
-
Deleting Recipes: Remove unwanted recipes with confirmation
-
Searching Recipes: Find specific recipes using the search functionality
| 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 } |
| 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) |
- 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
- Frontend: Vanilla JavaScript with modular components
- Backend: RESTful API with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: Session-based with localStorage
This project is licensed under the MIT License – see the LICENSE file for details.
- Author: Pooja S
- Email: poojashree2266@gmail.com
- GitHub: Pooja0629
- Repository: https://github.com/Pooja0629/DishBook
- Issues: https://github.com/Pooja0629/DishBook/issues
“Simplifying recipe management through smart and intuitive web solutions.”