This project is a lightweight Cron Job Dashboard built with Angular and Angular Material. It provides a clear and user-friendly UI to monitor, trigger, and inspect background jobs running on a server.
- β List of Scheduled Jobs β Displays all available jobs retrieved from the backend API.
βΆοΈ Trigger Jobs β Allows users to manually start a job with a single click.- π View Logs β Each job has logs that can be accessed via a popup overlay.
- β Error Indicator β Jobs with errors on their last execution are visually marked in red with an error icon.
- β Success Indicator β Jobs that succeeded on their last execution are marked with a green check.
- π Snackbar Notifications β Immediate user feedback when a job was triggered.
GET /api/internal/jobsβ Returns job arrayPATCH /api/internal/jobs/{jobKey}/executeβ Triggers the jobGET /api/internal/jobs/{jobKey}/logsβ Returns plain text log output
A CORS issue occurred when trying to start a job via a PATCH request from the Angular frontend to the backend, which was blocked by the browser. This was resolved by configuring a proxy with a path rewrite in Angularβs proxy.conf.json, allowing the frontend to bypass CORS restrictions during development.
Without professional guidance, it was challenging to structure components in a clean and modular way. Iβm very interested in learning how to design Angular apps more efficiently and modularly, especially when it comes to component separation, reusability, and scalability in larger applications.
Formatting log output dynamically in the frontend turned out to be more difficult than expected. Although the logic using regular expressions and innerHTML worked technically, the formatting was either inconsistent or not visible due to issues with DOM rendering, Angular's sanitization, or CSS conflicts. In the end, I opted for a simple, clean log view with a copy-to-clipboard button instead of complex inline formatting.
