Simeru Scraper is a web scraper that scrapes schedules from the official website and caches the data in Redis. The API is built with Go and Fiber.
The Simeru Scraper repository has been moved to https://github.com/savioruz/smrv2-api. This repository is now archived and no longer maintained.
- Features
- Deployment
- Requirements
- Installation
- Usage
- Project Structure
- Contributing
- License
- Acknowledgements
- Scrapes schedules from the official website
- Caches data in Redis
- Cron job to update data
- API Documentation with Swagger
- Docker support
- Go 1.23+
- Docker
- Redis
- Make
-
Clone the repository:
git clone https://github.com/savioruz/simeru-scraper.git cd simeru-scraper -
Environment Variables:
Create a
.envfile in the root directory and add the following:cp .env.example .env
You can run the API using Docker or directly with Make.
-
Run redis:
make docker.redis
-
Run the application:
make docker.run
For production, you need to secure redis on Makefile with a password.
-
Run the application:
make run
You need to have Redis running on your machine.
Swagger documentation is available at: http://localhost:3000/swagger.
.
├── config/ # Configuration files
│── docs/ # Project documentation
├── internal/
│ ├── adapters/ # Adapters for external services
│ │ ├── cache/ # Cache layer
│ │ ├── handlers/ # Handlers layer
│ │ └── repositories/ # Storage layer integration
│ └── cores/ # Core business layer
│ ├── entities/ # Business entities
│ ├── ports/ # Adapter implementations
│ │ └── ports.go
│ └── services/ # Use cases layer
├── pkg/
│ ├── constant/
│ ├── middleware/
│ ├── routes/
│ ├── server/ # Server configuration
│ └── utils/ # Utility functions
├── main.go
├── .env
└── Dockerfile
Feel free to open issues or submit pull requests with improvements.
This project is licensed under the MIT License. See the LICENSE file for details.
