Skip to content

lidiaAsamnew/Food_Recipes-Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full-Stack Food Recipes Application

This is a complete full-stack food recipe website built with the T3 stack: TailwindCSS, TypeScript, tRPC, and more. It features a modern, attractive UI and a robust backend powered by Go, Hasura, and PostgreSQL.

Features

  • User Authentication: JWT-based signup and login.
  • Recipe Management: Create, Read, Update, and Delete recipes.
  • Dynamic Content: Add ingredients and steps dynamically.
  • Interactive Elements: Like, bookmark, comment, and rate recipes.
  • Advanced Filtering: Search by title, filter by category, preparation time, and ingredients.
  • Image Uploads: Multiple image uploads with a featured image, powered by a MinIO S3-compatible storage.
  • Payments: "Buy a Recipe" feature integrated with Chapa.
  • User Dashboards: created recipes, and bookmarks.

Tech Stack

  • Frontend: Nuxt 3 (Vue 3), TailwindCSS, Pinia, Vee-Validate, Apollo Client
  • Backend: Golang (Gin), PostgreSQL
  • API Layer: Hasura GraphQL Engine (v2)
  • Authentication: JWT
  • File Storage: MinIO (S3-Compatible)
  • Containerization: Docker & Docker Compose

Getting Started

Prerequisites

Installation & Setup

  1. Clone the Repository

    git clone <repo-url>
    cd food-recipes-app
  2. Configure Environment Variables

    • Create a .env file in the frontend directory.
    • Update the docker-compose.yml file with your chosen passwords and secrets. Do not commit these secrets to version control.
  3. Run the Application

    docker-compose up -d --build

    This command will build the images and start all the services (Postgres, Hasura, Go Backend, MinIO).

  4. Apply Hasura Migrations Navigate to the hasura/ directory and apply the database schema and metadata.

    cd hasura
    hasura migrate apply --endpoint http://localhost:8080 --admin-secret yourAdminSecret
    hasura metadata apply --endpoint http://localhost:8080 --admin-secret yourAdminSecret

    Note: If this is the first time, Hasura might apply migrations automatically from the volume mount.

  5. Set up MinIO Bucket

    • Access the MinIO console at http://localhost:9001.
    • Log in with minioadmin / minioadmin.
    • Create a new bucket named recipes.
    • Set the bucket's access policy to Public.
  6. Install Frontend Dependencies & Run

    cd frontend
    npm install
    npm run dev

Service URLs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors