Skip to content

Th3rick2002/sistema-famacia-san-jose

Repository files navigation

Sistema de Gestión de Farmacia

Docker Vue.js Node.js MySQL

Aplicación fullstack para gestión de farmacias con:

  • Frontend: Vue 3 + Vite
  • Backend: Node.js + Express
  • Base de datos: MySQL 8.0
  • Proxy: Nginx

🚀 Instalación

Requisitos previos

Clonar el proyecto

git clone --recurse-submodules [email protected]:Th3rick2002/sistema-famacia-san-jose.git
cd sistema-farmacia-san-jose

🛠 Configuración

  1. Crear archivo .env en la raíz del proyecto:
cp .env.example .env
  1. Editar las variables necesarias:
# Backend
DATABASE=farmacia_san_jose
USERNAME=admin
PASSWORD=password-segura
PORT_APP=3000
JWT_SECRET=clave-secreta-jwt

🐳 Comandos Docker

Entorno de desarrollo

# Construir imágenes e iniciar contenedores
docker-compose up -d --build

# Detener todos los servicios
docker-compose down

# Ver logs en tiempo real
docker-compose logs -f

# Reconstruir servicios específicos
docker-compose up -d --build backend

Entorno de producción

# Construir y desplegar
docker-compose -f docker-compose.yml up -d --build

# Forzar recreación de contenedores
docker-compose up -d --force-recreate

🔄 Flujo de trabajo con Git

Estructura de repositorios

sistema-farmacia-san-jose/ (Padre)
├── sistema-de-gestion-de-farmacia---backend/ (Submódulo)
└── sistema-de-gestion-de-farmacia---frontend/ (Submódulo)

Comandos esenciales

# Actualizar proyecto completo
git pull origin main
git submodule update --init --recursive

# Trabajar en backend
cd sistema-de-gestion-de-farmacia---backend
git checkout -b feature/nueva-funcionalidad
# Realizar cambios...
git add .
git commit -m "Descripción de cambios"
git push origin feature/nueva-funcionalidad

# Actualizar referencia en padre
cd ..
git add sistema-de-gestion-de-farmacia---backend
git commit -m "Actualiza backend con nueva funcionalidad"
git push origin main

🌐 Acceso a los servicios

Servicio URL de desarrollo URL de producción
Frontend http://localhost:5173 http://tudominio.com
Backend http://localhost:3000/api http://api.tudominio.com
Nginx http://localhost http://tudominio.com

🚨 Solución de problemas

Migraciones no ejecutadas

# Ejecutar migraciones manualmente
docker-compose exec backend sh -c "pnpx sequelize-cli db:migrate"

# Ejecutar seeders
docker-compose exec backend sh -c "pnpx sequelize-cli db:seed:all"

Problemas con la base de datos

# Ver logs de MySQL
docker-compose logs db

# Conectarse a la base de datos
docker-compose exec db mysql -uadmin -p farmacia_san_jose

Reconstruir todo desde cero

docker-compose down -v
docker-compose up -d --build

📌 Notas importantes

  1. El backend ejecuta automáticamente migraciones al iniciar
  2. Para desarrollo frontend, usa:
    cd sistema-de-gestion-de-farmacia---frontend
    npm run dev
  3. Las variables de entorno deben coincidir en ambos entornos
  4. Nginx configura las rutas:
    • / → Frontend
    • /api → Backend

📁 Estructura del proyecto

sistema-farmacia-san-jose/
├── docker-compose.yml
├── docker-compose.override.yml
├── .env.example
├── .env
├── .gitmodules
├── README.md
├── sistema-de-gestion-de-farmacia---backend/
│   ├── src/
│   ├── migrations/
│   ├── seeders/
│   ├── package.json
│   └── Dockerfile
├── sistema-de-gestion-de-farmacia---frontend/
│   ├── src/
│   ├── public/
│   ├── package.json
│   └── Dockerfile
└── nginx
    └── nginx.conf

🤝 Contribución

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.


Desarrollado para Farmacia San José

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published