About The Project--
The Intelligent Rostering Agent is a smart, automated scheduling system designed to eliminate the complexities and inefficiencies of manual staff rostering. By leveraging a powerful backend, it intelligently assigns personnel to cases, ensuring the best possible match based on critical factors like continuity of care.
Inspiration--
In many service-oriented industries, creating daily rosters is a time-consuming and challenging task. Schedulers manually balance countless variables like staff availability, location, and historical assignments. This process is often prone to human error and can result in suboptimal pairings. We were inspired to build a solution that automates this entire workflow, using data to make smarter, faster, and more transparent scheduling decisions, ultimately freeing up human coordinators to focus on higher-value tasks.
What it does--
Our project provides a simple yet powerful API that generates an optimized daily staff roster. A user, through a frontend application, simply submits a date to our service. The API then kicks off a complex, asynchronous process to analyze all cases and available staff for that day.
Once complete, it returns a final, detailed roster. Crucially, it doesn't just provide an assignment; it provides a justification for each decision (e.g., "Best match based on: Strong Continuity of Care"), making the AI's logic clear and trustworthy.
How we built it--
The Intelligent Rostering Agent is built on a fully serverless architecture on AWS, ensuring scalability and reliability without the need to manage servers.
AWS API Gateway: We used API Gateway to create and expose the two secure REST endpoints (POST /rosters and GET /rosters/{id}).
AWS Step Functions: The core of our project is a Step Function named "RosteringOrchestrator." It manages the entire asynchronous workflow, from receiving the initial request to running the matching algorithm and preparing the final output. This was the perfect tool for a long-running, multi-step process.
AWS Lambda: The actual business logic—fetching data, running the rostering algorithm, and handling API requests—is executed by a series of Lambda functions orchestrated by our Step Function.
This architecture was specifically designed to be robust and to provide a simple, clean interface for our frontend team to integrate with.
Challenges we ran into--
One of the first challenges was architectural. A simple synchronous API request would time out due to the complexity of the rostering calculations. We overcame this by designing an asynchronous, job-based system using Step Functions. While this added initial complexity, it resulted in a much more resilient and scalable solution.
Another significant challenge was designing the "intelligence" itself. Defining the rules and weights for the matching algorithm required careful consideration to balance various factors like staff availability, skills, and the crucial "continuity of care" metric.
Accomplishments that we're proud of--
We are incredibly proud of the Justification Engine. By including a clear, human-readable reason for each assignment, we transformed our system from a "black box" into a form of Explainable AI (XAI). This builds essential trust with the end-users who rely on the roster.
Furthermore, we are proud of the clean, simple two-endpoint API design. It abstracts away a highly complex backend process, making it incredibly easy for any developer to integrate with our service.
What we learned--
This project was a deep dive into the power of event-driven, serverless architectures. We learned that for complex, long-running business processes, an asynchronous approach using services like AWS Step Functions is far superior to traditional synchronous methods. Most importantly, we learned that in AI-driven systems, transparency and explainability are not just features—they are fundamental to user adoption and trust.
What's next for Intelligent Rostering Agent--
The journey is just beginning! We have a clear roadmap for future enhancements:
Real-time Updates: We plan to integrate WebSockets to push roster updates to the client in real-time, eliminating the need for polling.
Enhanced Algorithm: We will incorporate more complex constraints into our rostering engine, such as travel time optimization, staff preferences, and specific skill-based matching.
Administrator Dashboard: A web interface for administrators to fine-tune the weighting of the rostering rules, giving them more control over the automated decisions.
Built With
- api
- bedrock
- ec2
- lambda
- python
- rds
- s3
- step-function
Log in or sign up for Devpost to join the conversation.