Welcome to the Cron and Scheduled Serverless Execution (CASSE) project! This repository contains the source code, documentation, and resources for implementing a dynamic cron scheduler tailored for HTTP requests and serverless function deployment. The project aims to bridge the gap between traditional cron scheduling and modern serverless computing, offering a comprehensive framework for task automation in web environments.
- Introduction
- Features
- Architecture
- Setup and Installation
- Usage
- Project Diagrams
- Testing
- Results and Conclusion
- Contributing
- License
- Dynamic Task Scheduling: Schedule tasks based on time, events, or external triggers.
- Serverless Function Deployment: Seamlessly deploy functions written in various programming languages.
- HTTP Triggering: Invoke serverless functions via standard HTTP endpoints.
- Scalability and Reliability: Designed for high concurrency and fault tolerance.
- User-Friendly Interface: Intuitive UI for task configuration and monitoring.
The system is built using the following components:
- User Authentication: Secure access using JSON Web Tokens (JWT).
- Function Deployment: Deploy functions to AWS Lambda and manage them through AWS API Gateway.
- Cron Job Scheduling: Use the Clockwerk library for creating and managing cron jobs.
- Job Execution: High-concurrency job execution using Golang and the fasthttp library.
- User Management: Manage user profiles, permissions, and notifications with Flask backend.
- Docker
- AWS Account
- Postman (for API testing)
-
Clone the Repository:
git clone https://github.com/yourusername/CASSE.git cd CASSE
-
Environment Setup: Configure your AWS credentials and other environment variables in the .env file.
-
Docker Setup:: Build and run the Docker containers:
docker-compose up --build
-
API Documentation: Import the provided Postman collection to explore and test the APIs.
- Total Jobs: 517
- Total Users: 100
- Total Serverless Functions: 178
- CPU: ~0.25% of a single core
- Memory: ~370 MB
This project successfully addresses the challenges of dynamic task scheduling and serverless function deployment. By integrating cron scheduling with serverless computing, we provide a flexible and scalable solution for task automation in web environments. The intuitive interfaces and seamless workflows enhance developer productivity, enabling efficient task orchestration without the overhead of infrastructure management.
We welcome contributions to enhance the CASSE project! Please follow the standard GitHub Flow and submit pull requests for review.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Clockwerk: GitHub Repository
- Smit Sandeep Butle
- Swapnil Satish Mali
- Siddhesh Sunil Kitkaru
- Prof. N.L. Mudegol
- Dr. M. A. Shah