Skip to content
Tajwar Saiyeed Abid edited this page Sep 14, 2024 · 2 revisions

RecipeHub - Recipe Sharing Platform

Welcome to the RecipeHub wiki! This is the official documentation for the RecipeHub recipe-sharing platform. Here, you'll find an overview of the project, how to get started, the current status, and guidelines for contributing.

Table of Contents

Introduction

RecipeHub is a platform where users can share and explore recipes. Whether you are a professional chef or just a home cook, RecipeHub offers a user-friendly experience to create, discover, and share culinary masterpieces. The platform supports features like image uploads, recipe categorization, and user interaction through ratings and comments.

Features

  • User authentication (sign up, log in)
  • Add, update, and delete recipes
  • Recipe categories and tags
  • Image upload for recipes
  • User profile management
  • Rating and commenting on recipes
  • Search functionality to find recipes by name, category, or tags

Technology Stack

  • Frontend: Next.js, React, TypeScript
  • Backend: Node.js, Prisma, PostgreSQL
  • Authentication: NextAuth.js
  • Storage: Supabase for image hosting
  • Database: PostgreSQL (via Prisma ORM)
  • UI Components: Tailwind CSS, Radix UI
  • Deployment: Vercel

Installation & Setup

Prerequisites

Ensure you have the following installed:

  • Node.js (v16+)
  • PostgreSQL
  • Supabase account (for image hosting)

Steps to run the project

1. Clone the repository:

git clone https://github.com/TajwarSaiyeed/recipehub-recipe-sharing-platform.git
cd recipehub-recipe-sharing-platform

2. Install dependencies:

npm install

3. Set up environment variables:

Create a .env file in the root directory and add your environment variables:

DATABASE_URL=your_postgresql_database_url
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXTAUTH_URL=your_application_url

4. Run the development server:

npm run dev

5. Open the app at http://localhost:3000.

Folder Structure

.
├── components      # Reusable UI components
├── pages           # Next.js pages and API routes
├── prisma          # Prisma schema and migrations
├── public          # Public assets like images
├── styles          # Global stylesheets
├── utils           # Helper functions and utilities
└── README.md       # Project overview and instructions

API Documentation

Pending ....

Roadmap

  1. Implement basic recipe CRUD operations
  2. Add authentication with NextAuth.js
  3. Image upload support via Supabase
  4. Implement user profile management
  5. Add social sharing options
  6. Improve search functionality
  7. Build mobile responsiveness

Contributing

We welcome contributions! Please follow these steps:

  • Fork the repository.
  • Create a new feature branch: git checkout -b feature/your-feature.
  • Commit your changes: git commit -m 'Add your feature'.
  • Push to the branch: git push origin feature/your-feature.
  • Open a pull request.