https://github.com/abrahamgalue/nodejs-with-postgres-course
Course completed for learning Express with PostgreSQL
https://github.com/abrahamgalue/nodejs-with-postgres-course
docker express mysql nodejs postgresql sequelize typescript
Last synced: 10 days ago
JSON representation
Course completed for learning Express with PostgreSQL
- Host: GitHub
- URL: https://github.com/abrahamgalue/nodejs-with-postgres-course
- Owner: abrahamgalue
- Created: 2026-02-27T22:28:59.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-21T22:14:57.000Z (4 months ago)
- Last Synced: 2026-03-22T10:52:02.699Z (4 months ago)
- Topics: docker, express, mysql, nodejs, postgresql, sequelize, typescript
- Language: TypeScript
- Homepage: https://simple-store-api-abrahamgalue.vercel.app/api/v1/products
- Size: 385 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💽 NODE/POSTGRES: Store API
### API para gestionar productos de una tienda.
> 🧩 Aquà puedes ver su [**Live Demo.**](https://simple-store-api-abrahamgalue.vercel.app/api/v1/products)

## 🚀 Descripción
Este proyecto es el resultado de un curso completo de Node.js con enfoque en bases de datos relacionales. Se trata de una API que permite gestionar el inventario de productos para una tienda virtual, utilizando **PostgreSQL** como motor de base de dato con la posibilidad de remplazarlo por **MySQL**, gestionados a través de **Sequelize**.
## âš¡ Comenzar
### Prerrequisitos
1. Git.
2. Node.js: cualquier versión a partir de la 20 o superior.
3. pnpm (recomendado).
4. Docker Desktop (para la base de datos).
## 🔧 Instalación y Configuración
### 1. Preparar el entorno
Crea los archivos de variables de entorno necesarios basándote en los ejemplos:
- Copia `.env.example` a `.env` y configura tus variables locales.
- Asegúrate de tener listos `postgres.env` y `MySQL.env` para la configuración de Docker.
### 2. Levantar la Base de Datos (Docker)
El proyecto incluye un entorno de Docker para facilitar el uso de bases de datos y herramientas gráficas de gestión.
```bash
docker-compose up -d
```
Esto levantará los siguientes servicios:
- **PostgreSQL**: Puerto `5432`
- **pgAdmin**: Interfaz gráfica para Postgres en `http://localhost:5050`
- **MySQL**: Puerto `3306`
- **phpMyAdmin**: Interfaz gráfica para MySQL en `http://localhost:8080`
### 3. Instalar dependencias
```bash
pnpm install
```
### 4. Ejecución local (modo desarrollo)
```bash
pnpm run dev
```
Esto iniciará el servidor de desarrollo utilizando `tsx` y tu aplicación estará disponible en `http://localhost:3000`.
## 🎠TecnologÃas
El proyecto utiliza las siguientes tecnologÃas:
- [**Express**](https://expressjs.com/) como framework de Node.js.
- [**TypeScript**](https://www.typescriptlang.org/) para el desarrollo con tipado estático.
- [**PostgreSQL**](https://www.postgresql.org/) y [**MySQL**](https://www.mysql.com/) como bases de datos.
- [**Sequelize**](https://sequelize.org/) como ORM para la gestión de datos.
- [**Docker**](https://www.docker.com/) para la orquestación de servicios y contenedores.
- [**pgAdmin**](https://www.pgadmin.org/) y [**phpMyAdmin**](https://www.phpmyadmin.net/) como entornos gráficos de bases de datos.
- [**Faker JS**](https://fakerjs.dev/) para generar datos aleatorios.
- [**Joi**](https://joi.dev/) para la validación de esquemas de datos.
- [**Boom**](https://hapi.dev/module/boom/) para el manejo de errores HTTP.
- [**CORS**](https://github.com/expressjs/cors) para gestionar el acceso desde diferentes dominios.
- [**Vercel**](https://vercel.com/home) para el despliegue de la aplicación.