API de comparación de precios de supermercados utilizada en https://ratoneando.ar 🐀
Este proyecto fué creado originalmente en Node.js y Fastify, pero decidí reescribirlo en Go para usarlo como una oportunidad de aprendizaje. Por este motivo, la calidad del código puede no ser la mejor.
A pesar de eso, el rendimiento de la API es significativamente mejor que la versión en Node.js.
git clone [email protected]:matiasbontempo/ratoneando-go.git
cd ratoneando-go
go mod download
Si querés usar Air para una mejor experiencia de desarrollo:
go install github.com/air-verse/air@latest
air init
cp .env.example .env
go run main.go
Si estás usando Air:
air
- main.go: Punto de entrada de la aplicación
- /config: Expone las variables de entorno
- /controllers: Controladores de la aplicación
- /cores: Núcleos de scraping reutilizables
- /middlewares: Middlewares para GIN
- /products: Modelos y utilidades de productos
- /routes: Rutas de la API
- /scrapers: Scrapers de los distintos supermercados
- /units: Utilidades para el procesamiento de unidades
- /utils: Utilidades generales
go test ./...
Si te interesa dar una mano, consultá la Guía de Contribución y el Código de Conducta.
Este proyecto está licenciado bajo la Licencia MIT. Revisá la licencia para más información.