Skip to content

mat1520/Learning_API_Golang

Repository files navigation

🏢 Business Manager SaaS# Business Manager SaaS

Sistema completo de gestión empresarial con autenticación, dashboard y CRUDs completos.Sistema de gestión empresarial con Golang y React.

Business Manager Docker License## Instalación

✨ Características### Backend

- 🔐 **Autenticación segura** con JWTcd Backend/MAIN

- 🏢 **Multi-tenancy** (múltiples organizaciones)go mod download

- 📊 **Dashboard** con métricas en tiempo realgo run main.go

- 👥 **Gestión de Clientes**```

- 📦 **Inventario de Productos**

- 💰 **Control de Ventas**### Frontend

- 🚚 **Proveedores**```bash

- 👔 **Empleados**cd frontend

- 🎨 **Diseño moderno** con Tailwind CSSnpm install

- 📱 **100% Responsive**npm run dev

- 🐳 **Docker Ready** - Ejecuta en cualquier PC```



## 🚀 Instalación Rápida (Docker)## Inicio rápido



### ¡Solo 2 pasos!```bash

./start.sh

1. **Instala Docker Desktop** desde https://www.docker.com/```



2. **Ejecuta la aplicación:**- Backend: http://localhost:8080

- Frontend: http://localhost:5173

   **Windows:** Doble clic en `start.bat`

   ## Tecnologías

   **Linux/Mac:**

   ```bash- Backend: Golang, Gin, SQLite, JWT

   ./start.sh- Frontend: React, Vite, Tailwind CSS, Axios

Funcionalidades

  1. Abre tu navegador: http://localhost
  • Autenticación con JWT

¡Eso es todo! 🎉- Multi-tenancy (organizaciones)

  • CRUD: Clientes, Productos, Ventas, Proveedores, Empleados

Estructura

🛠️ Tecnologías


**Backend:**Backend/

- Golang 1.24  MAIN/main.go

- Gin Framework  HANDLERS/auth.go, crud.go

- SQLite  MIDDLEWARE/auth.go

- JWT Authentication  MODELOS/STUCTS/struct.go

- CORS habilitadoDB/SQLITE.go

frontend/src/

**Frontend:**  pages/

- React 18  components/

- Vite 7  api/

- Tailwind CSS v4  context/

- React Router v7```

- Axios
- Lucide Icons

## 📸 Capturas

### Login con Mascota Animada
- Ojos que siguen el cursor mientras escribes
- Se cierran al escribir la contraseña
- Animaciones suaves y profesionales
![Login con Mascota Animada](login.png)

### Dashboard
- Estadísticas en tiempo real
- Gráficos de ventas
- Vista general del negocio
![Dashboard](Dashboard.png)


### Perfil de Usuario
- Personalización del perfil
- Subida de imágenes de perfil
- Edición de datos personales
![Perfil de Usuario](Profile.png)

## 🎯 Uso

### Primera vez:

1. Accede a http://localhost
2. Haz clic en **"Regístrate aquí"**
3. Crea tu cuenta con:
   - Nombre y apellido
   - Email
   - Contraseña
   - Nombre de tu organización

### Login:

- Email de tu cuenta
- Contraseña

## 🛑 Detener la Aplicación

**Windows:** `stop.bat`

**Linux/Mac:** `./stop.sh`

## 📁 Estructura del Proyecto

Learning_API_Golang/ ├── Backend/ │ ├── MAIN/main.go # Servidor principal │ ├── HANDLERS/ # Controladores │ ├── MIDDLEWARE/ # Autenticación JWT │ ├── MODELOS/STUCTS/ # Modelos de datos │ └── Dockerfile # Imagen Docker backend ├── frontend/ │ ├── src/ │ │ ├── pages/ # Páginas (Login, Dashboard, CRUDs) │ │ ├── components/ # Componentes reutilizables │ │ ├── context/ # Context API (Auth) │ │ └── api/ # Cliente Axios │ ├── Dockerfile # Imagen Docker frontend │ └── nginx.conf # Configuración Nginx ├── DB/ │ └── SQLITE.go # Base de datos ├── docker-compose.yml # Orquestación de contenedores ├── start.sh / start.bat # Scripts de inicio └── stop.sh / stop.bat # Scripts de detención


## 🔧 Desarrollo (Sin Docker)

### Backend:
```bash
cd Backend/MAIN
go mod download
go run main.go

Puerto: 8080

Frontend:

cd frontend
npm install
npm run dev

Puerto: 5173

🐛 Solución de Problemas

Puerto 80 ocupado:

Edita docker-compose.yml y cambia:

ports:
  - "3000:80"  # Ahora usa http://localhost:3000

Ver logs:

docker-compose logs -f

Reconstruir todo:

docker-compose down -v --rmi all
docker-compose up --build

🌐 Despliegue en Producción

Opción 1: Docker en servidor

docker-compose up -d

Opción 2: Build manual

  • Backend: Compila con go build
  • Frontend: Build con npm run build

📄 Licencia

MIT License - Libre para uso comercial y personal

🤝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama (git checkout -b feature/nueva-caracteristica)
  3. Commit tus cambios (git commit -m 'Agregar nueva característica')
  4. Push a la rama (git push origin feature/nueva-caracteristica)
  5. Abre un Pull Request

Hecho por ArielM usando Golang y React (Aprendizaje de API en Golang)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published