{"id":30202901,"url":"https://github.com/sunjay-dev/cronjob-scheduler","last_synced_at":"2025-08-13T11:09:10.969Z","repository":{"id":305925099,"uuid":"1015866179","full_name":"sunjay-dev/CronJob-Scheduler","owner":"sunjay-dev","description":"An Agenda.js-powered cron job scheduler to automate API/webhook calls. Built with Agenda.js, Express, and React.","archived":false,"fork":false,"pushed_at":"2025-08-05T16:09:33.000Z","size":1647,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-05T18:11:35.390Z","etag":null,"topics":["agenda-js","lucide-react","passport-js","redux-toolkit","typescript"],"latest_commit_sha":null,"homepage":"https://www.cronjon.site/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunjay-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-08T06:43:00.000Z","updated_at":"2025-08-05T16:41:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"1c39561a-18dc-4467-be47-b98e4b988cd1","html_url":"https://github.com/sunjay-dev/CronJob-Scheduler","commit_stats":null,"previous_names":["sunjay-dev/cronjob-scheduler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sunjay-dev/CronJob-Scheduler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunjay-dev%2FCronJob-Scheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunjay-dev%2FCronJob-Scheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunjay-dev%2FCronJob-Scheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunjay-dev%2FCronJob-Scheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunjay-dev","download_url":"https://codeload.github.com/sunjay-dev/CronJob-Scheduler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunjay-dev%2FCronJob-Scheduler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270228408,"owners_count":24548821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agenda-js","lucide-react","passport-js","redux-toolkit","typescript"],"created_at":"2025-08-13T11:09:09.203Z","updated_at":"2025-08-13T11:09:10.949Z","avatar_url":"https://github.com/sunjay-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CronJob-Scheduler\n\n\u003cimg src=\"https://raw.githubusercontent.com/sunjay-dev/CronJob-Scheduler/refs/heads/main/assets/preview.webp\" alt=\"CronJob image\" width=\"100%\" /\u003e\n\nA simple yet powerful cron job scheduler to automate recurring API requests (GET/POST) using [Agenda.js](https://github.com/agenda/agenda). Schedule jobs, view logs, and control execution — all from a modern web dashboard.\n\n---\n\n## 🚀 Features\n\n- 🕒 Schedule recurring jobs using cron expressions\n- 📡 Supports GET, POST and many other requests options with custom headers/body\n- 🧠 Built on **Agenda.js** for robust background processing\n- 📊 View job execution logs and status (success/failure)\n- ✨ Toggle jobs on/off without deleting them\n- 💻 Clean React + Tailwind dashboard\n- 🔐 JWT-based authentication\n\n---\n\n## 🛠️ Tech Stack\n\n![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white) \n![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) \n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB) \n![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-06B6D4.svg?style=for-the-badge\u0026logo=tailwindcss\u0026logoColor=white)\n![Chart.js](https://img.shields.io/badge/chart.js-F5788D.svg?style=for-the-badge\u0026logo=chart.js\u0026logoColor=white) \n![Lucide-React](https://img.shields.io/badge/Lucide--React-000000.svg?style=for-the-badge\u0026logo=lucide\u0026logoColor=white)\n![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB)\n![Redux-toolKit](https://img.shields.io/badge/redux_toolkit-%23593d88.svg?style=for-the-badge\u0026logo=redux\u0026logoColor=white)\n![Agenda.js](https://img.shields.io/badge/Agenda.js-%23ef4444.svg?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white)\n![PNPM](https://img.shields.io/badge/pnpm-%234a4a4a.svg?style=for-the-badge\u0026logo=pnpm\u0026logoColor=f69220)\n![Passport.js](https://img.shields.io/badge/Passport.js-000000.svg?style=for-the-badge\u0026logo=passport\u0026logoColor=00ff99)\n![Resend](https://img.shields.io/badge/Resend-000000.svg?style=for-the-badge\u0026logo=resend\u0026logoColor=fff)\n![Zod](https://img.shields.io/badge/Zod-7C3AED.svg?style=for-the-badge\u0026logo=zod\u0026logoColor=white)\n\n\n\n\n---\n\n## 📦 Installation\n\n### 1. Clone the repository\n\n```bash\ngit clone https://github.com/sunjay-dev/CronJob-Scheduler.git\ncd CronJob-Scheduler\n````\n\n### 2. Setup Backend\n\n```bash\ncd server\npnpm install\ncp .env.example .env\n# Update .env with your MongoDB URI and JWT secret\n\npnpm run dev\n```\n\n### 3. Setup Frontend\n\n```bash\ncd ../client\npnpm install\npnpm run dev\n```\n\n---\n\n## 🧪 Environment Variables\n\nExample `.env` file for backend:\n\n```env\nPORT=5000\nMONGO_URI=YOUR_MONGO_URI\nMONGO_DB_COLLECTION=agendaJobs\nJWT_SECRET=YOUR_JWT_SECRET\nCLIENT_URL=http://localhost:5173\nGOOGLE_CLIENT_ID=GOOGLE_CLIENT_ID\nGOOGLE_CLIENT_SECRET=GOOGLE_CLIENT_SECRET\nGOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/callback\nRESEND_EMAIL_API_KEY=RESEND_EMAIL_API_KEY\nSENDEREMAIL=SENDEREMAIL\n```\n\n---\n\n## 🖥️ Folder Structure\n\n```\nCronJob-Scheduler/\n├── Backend/     # Server (Express + Agenda.js)\n├── Frontend/    # Client (React + Tailwind)\n├── README.md       \n```\n\n---\n\n## 🧭 Roadmap\n\n* \u003cdel\u003e Create/Update/Delete jobs\u003c/del\u003e\n* \u003cdel\u003e Job toggle (enable/disable)\u003c/del\u003e\n* \u003cdel\u003e Execution logs viewer\u003c/del\u003e\n* \u003cdel\u003e Support for PUT/DELETE requests\u003c/del\u003e\n* \u003cdel\u003e User account settings \u003cdel\u003e\n* \u003cdel\u003e Google login config \u003cdel\u003e\n* \u003cdel\u003e Forget password \u003cdel\u003e\n* [ ] Email notifications on failure\n* [ ] Retry on failure + backoff strategy\n\n## 🤝 Contributing\n\nContributions, suggestions, and improvements are always welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunjay-dev%2Fcronjob-scheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunjay-dev%2Fcronjob-scheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunjay-dev%2Fcronjob-scheduler/lists"}