This project is a full-stack DAG-based job scheduler. It allows users to create groups and jobs (with dependencies and children), schedule jobs using cron times, and execute jobs in the correct order based on their dependencies. The system supports live job execution, status monitoring, and is designed for extensibility and modern usability.
- Create and manage job groups
- Add jobs with dependencies and children (DAG structure)
- Schedule jobs using cron expressions or ISO timestamps
- Link jobs to Downloadable Dockerfiles (S3 URLs, Drive, etc.)
- Execute jobs and monitor their status live
- Modern, user-friendly dashboard
- Backend: Rust (axum, sqlx, tokio), PostgreSQL
- Frontend: Next.js (React, TypeScript, Tailwind CSS)
- Other: Docker, S3 (for Dockerfile storage)
server/— Rust backend API and scheduler logicfrontend_server/— Next.js frontend dashboard
- cd server
- Set .env file for server -> DATABASE_URL=postgres://postgres:postgres@localhost:5432/mydb
- docker compose up
- docker cp queries.sql server-postgres-1:/queries.sql
- docker exec -it server-postgres-1 psql -U postgres -d mydb -f /queries.sql
- cargo run
- cd frontend-server
- Set .env file for frontend -> NEXT_PUBLIC_API_URL=http://localhost:5000
- npm run dev
- Rust (https://rustup.rs/)
- Node.js & npm (https://nodejs.org/)
- Docker & Docker Compose (for Postgres)
Open your browser and go to: http://localhost:3000
- The backend computes job children dynamically from dependencies.
- The frontend always fetches canonical job data from the backend.
- Jobs can be scheduled with either a cron expression or a specific time (ISO 8601).

