Rubus-Cron is a Node.js microservice built with NestJS that periodically fetches economic and IT-related data from multiple sources (EU Parliament, Eurostat, Federal Reserve, US-BEA) and stores them in a PostgreSQL database.
The project is designed to:
- π Collect data from APIs and RSS feeds.
- π Normalize and transform the data into a unified format.
- π§ Provide AI agents with structured historical data for context-based analysis.
- π° Run on a cron job, ensuring the database is always up-to-date.
- Automated Data Collection π‘ (via API & RSS fetchers)
- Scheduled Execution β³ (via cron jobs)
- Data Normalization & Storage ποΈ (via PostgreSQL)
- Modular & Scalable Architecture ποΈ (NestJS & Docker)
- Backend: NestJS (TypeScript)
- Database: PostgreSQL
- Task Scheduling: @nestjs/schedule
- Containerization: Docker & Docker Compose
- ORM: TypeORM
git clone https://github.com/YOUR_GITHUB_USERNAME/rubus-cron.git
cd rubus-cron
npm install
Create a .env file at the project root:
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password
POSTGRES_DB=rubus
docker-compose up --build
- API runs on http://localhost:3000
- PostgreSQL database is available on port 5432
Rubus-Cron integrates multiple data sources:
European Union:
EU Parliament RSS Feeds
Eurostat API
United States:
Federal Reserve RSS Feeds
US Bureau of Economic Analysis (BEA) API
Each data fetcher is modular and located in src/data-fetchers/.
rubus-cron/
βββ src/
β βββ app.module.ts # Main NestJS module
β βββ main.ts # App entry point
β βββ config/ # Environment configuration
β βββ cron/ # Scheduled jobs (cron)
β βββ database/ # PostgreSQL integration
β βββ data-fetchers/ # API & RSS fetchers
βββ .env # Environment variables (not committed)
βββ .gitignore # Ignore unnecessary files
βββ Dockerfile # Docker container setup
βββ docker-compose.yml # Multi-container setup (app + PostgreSQL)
βββ package.json # Project dependencies
βββ README.md # You are here
npm run test:unit
npm npm run test:functional
npm run test:integration
npm run test:all
- Fork the repo
- Clone your fork
- Create a new feature branch
- Commit & push your changes
- Create a Pull Request
This project is licensed under the MIT License.
- π§ AI Integration: Feed the collected data into LLMs (ChatGPT, LLaMA).
- π Memory Vectorization: Store key insights for long-term AI context.
- π Visualization: Create dashboards for economic & IT trends.
- π€ 0xRubusData
- π§ Contact: [email protected]
- π GitHub: https://github.com/0xrubusdata/rubus-cron
- Twitter (X): 0xRubusData
- Website: RubusLab