Skip to content

pataruco/el-guacal

Repository files navigation

El Guacal

El Guacal aims to be a complete, up-to-date, sustainable source of Venezuelan product locations around the world.

🇻🇪 About the Project / Sobre el Proyecto

Everyone, at some point, needs a taste of home. For the millions of Venezuelans living abroad, finding specific ingredients—like Harina P.A.N., queso de mano, or Pirulin—can be a challenge.

El Guacal aims to be a the largest open database of Venezuelan commercial footprints. It helps the diaspora locate the products that connect them to their culture.

The information comes from the public—anyone can go on the repository and add, edit, or remove locations.

The context

The need for this project is driven by one of the largest displacement crises in the world. As of late 2024, there are over 7.9 million Venezuelan refugees and migrants worldwide 1. This represents approximately 20-30% of the country's total population 2.

This massive movement has created a global demand for Venezuelan goods, leading to a surge in entrepreneurship among migrants who open bodegas, restaurants, and import businesses to serve their communities 3.


🚀 Getting Started

This repository is a monorepo managed with moon.

Prerequisites

We use Homebrew to manage dependencies. You can install all required tools by running:

brew bundle

Alternatively, ensure you have the following installed:

Installation

Install all project dependencies:

pnpm install

🛠️ Development

We use moon as our task runner. You can run tasks for individual projects from the root.

🖥️ Server (Rust)

  1. Start the database:
    docker compose up -d
  2. Run migrations:
    moon run server:migrate-run
  3. Start the development server:
    moon run server:dev

For more details, see apps/server/README.md.

🌐 Web (React)

  1. Generate the GraphQL client:
    moon run web:graphql-codegen
  2. Start the development server:
    moon run web:dev

For more details, see apps/web/README.md.


🏗️ Infrastructure

The infrastructure is managed with Terraform and located in the infrastructure/ directory.

For more details, see infrastructure/README.md.


🚢 Deployment

Deployments are handled automatically via GitHub Actions.

🧪 CI/CD

  • Pull Requests: Every PR triggers linting and testing for both the server and the web application.
  • Manual Deploys: We use workflow_dispatch for production deployments.

🚀 Production Deployment

  1. Server: Go to the "Actions" tab, select "Deploy server to production", and provide the version tag.
  2. Web: Go to the "Actions" tab, select "Deploy web to production", and provide the version tag.

The release process is managed via Release Please, which automatically creates tags and releases based on conventional commits.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors