Asignatura: Programación Orientada a Objetos
Estudiante: Jorge Pérez Rodríguez
Carrera: Sistemas de Información
GoCommerce es un sistema de gestión de inventarios y ventas desarrollado en el lenguaje de programación Go (Golang). Este proyecto está diseñado siguiendo los principios de Programación Orientada a Objetos (POO), aplicando encapsulamiento, modularidad, y buenas prácticas en el desarrollo de software.
El sistema permite la gestión eficiente de productos, usuarios y transacciones, garantizando la seguridad mediante autenticación JWT, y una interfaz RESTful clara para interactuar con los servicios.
- Lenguaje: Go (Golang)
- Framework Web: Gorilla Mux
- Base de Datos: SQLite
- Autenticación: JWT (JSON Web Tokens)
- ORM: GORM
- Herramientas de Seguridad: Middleware personalizado para validación de tokens y control de acceso
- Inicio de sesión seguro con validación de credenciales.
- Registro de nuevos usuarios con cifrado de contraseñas.
- Generación y renovación de tokens JWT.
- Cierre de sesión seguro.
- Perfil de usuario autenticado.
- Listado de todos los productos disponibles.
- Búsqueda de productos por ID.
- Creación de nuevos productos (requiere permisos de administrador).
- Actualización de productos existentes.
- Eliminación de productos.
- Validación de token JWT para proteger rutas privadas.
- Control de acceso basado en roles (
admin
,user
). - Registro de solicitudes HTTP para auditoría.
- Respuestas claras y estructuradas en formato JSON.
- Manejo de errores personalizados en cada ruta.
GoCommerce/
│
├── backend/
│ ├── controllers/ # Controladores para manejar la lógica de negocio
│ ├── models/ # Definiciones de los modelos ORM
│ ├── routers/ # Rutas y endpoints
│ ├── middleware/ # Middleware personalizado
│ ├── utils/ # Funciones auxiliares
│ ├── database/ # Configuración de la base de datos
│ ├── main.go # Archivo principal para iniciar el servidor
│
├── frontend/
│ ├── html/ # Archivos HTML
│ ├── css/ # Estilos CSS
│ ├── js/ # Lógica JavaScript
│
└── README.md # Documentación del proyecto
Abre tu terminal y ejecuta el siguiente comando:
git clone https://github.com/tu-usuario/GoCommerce.git
cd GoCommerce/backend
Crea el archivo .env
en el directorio backend/
con el siguiente contenido:
SECRET_KEY=tu_clave_secreta
DATABASE_URL=GoCommerce.db
Asegúrate de tener Go instalado, luego ejecuta:
go mod tidy
go build
go run main.go
Abre tu navegador y visita:
http://localhost:8080
POST /auth/login
POST /auth/register
POST /auth/refresh-token
POST /auth/logout
GET /auth/profile
GET /products
GET /products/{id}
POST /products
PUT /products/{id}
DELETE /products/{id}
- Asegúrate de que el archivo
.env
esté configurado correctamente. - Verifica que la base de datos SQLite esté en el directorio raíz del backend.
- Para acceder a las rutas protegidas, incluye un token JWT válido en el encabezado
Authorization
.
Las contribuciones son bienvenidas. Para realizar mejoras o sugerencias, abre un Issue o un Pull Request en el repositorio.
Este proyecto está bajo la licencia MIT.