This project is a fully functional web application that allows users to share and explore recipes. With interactive features, it aims to provide a seamless experience for discovering and contributing culinary creations. Users can register, log in, search for recipes, rate them, and even upload their own.
- Frontend:
- Displays the top 3 rated recipes in the “Top Rated Recipes” section.
- Includes a contact form for user feedback.
- Backend:
- Provides an endpoint to fetch the top 3 recipes sorted by rating.
- Frontend:
- Shows the logged-in user's details in an interactive card.
- Includes a button to navigate to the recipe addition page.
- Backend:
- Provides user-specific details and manages authentication to ensure secure access.
- Frontend:
- Registration page with fields like name, phone, email, and password.
- Login page with email and password fields.
- Data persistence using local storage or cookies.
- Feedback for successful registration/login or errors.
- Backend:
- Endpoints for user registration and login with token-based authentication (e.g., JWT).
- Includes functionality for password reset.
- Frontend:
- Displays a scrollable list of all recipes with name, rating, and other details.
- Includes search, filter, and sort functionalities for improved navigation.
- Allows users to delete their own recipes.
- Backend:
- Endpoint to fetch all available recipes.
- Search functionality by multiple fields, including username.
- Voting system for recipes with hover and click interactions to rate recipes.
- Restricts users from voting multiple times for the same recipe.
- Frontend:
- Form with fields like name and description for adding new recipes.
- Confirmation or error messages based on the success of the operation.
- Image upload functionality for recipes.
- Backend:
- Endpoint to accept and store new recipe data.
- Authentication:
/register: Handles user registration./login: Handles user login and token generation.
- Homepage:
/recipes/top: Fetches the top 3 rated recipes.
- Recipes:
/recipes: Fetches all recipes./recipes/add: Adds a new recipe./recipes/vote: Records a vote for a recipe.
- User Profile:
/user: Fetches user-specific details.
- Frontend:
- React for UI development.
- Figma for design and mockups.
- Backend:
- Node.js with Express.js for server-side logic.
- Database: PostgreSQL or MongoDB.
- Authentication:
- JSON Web Tokens (JWT) for secure user authentication.
-
Clone the repository.
-
Set up the database schema using the provided migration files.
-
Install dependencies for both frontend and backend:
-
Start the development servers:
- Frontend:
npm run dev - Backend:
npm run utzu
- Access the application at
http://localhost:3000.