Inspiration
Students and early-career professionals juggle exams, projects, and deadlines. Traditional productivity apps make you organize everything by hand. General-purpose AI assistants can suggest a plan, but the suggestion lives in a chat window, disconnected from your real task list, so nothing actually changes.
We wanted an assistant that doesn’t just talk about your day. It should change your task data and build a realistic schedule you can act on.
What it does
Daymark turns natural-language requests into concrete, persistent actions:
“Add revise calculus for 45 minutes.” creates a saved task. “I have three hours tomorrow. Plan my tasks.” generates a conflict-free schedule with breaks. “Mark the project prototype complete.” updates the task and logs the activity. “I have an exam in two days. Help me prioritize.” reorders and explains the trade-offs.
Every number in the assistant’s replies, such as minutes scheduled or tasks that didn’t fit, comes from real application results rather than model-invented text.
Dashboard features
Full task management: create, edit, delete, complete, filter, and sort by deadline, priority, or duration A daily timeline showing start and end times, breaks, utilization, remaining time, and tasks that don’t fit Configurable available minutes and start time Summary metrics calculated from actual backend data A live activity feed of every meaningful action, including actions taken through the assistant or MCP An MCP status panel that distinguishes configured, reachable, and unavailable using a real health check One-click deterministic demo data load and reset (loading twice never creates duplicates)
How we built it
Architecture: React frontend → FastAPI backend → shared service layer → SQLite. The REST API and the MCP server both call the same service layer, so a task created through an MCP client instantly appears in the web dashboard.
Frontend: React, TypeScript, Vite, Tailwind CSS, Lucide icons. Dark, restrained design with lime accents, responsive and accessible. Backend: Python 3.11+, FastAPI, Pydantic validation, SQLite with foreign keys and transactions, and a versioned REST API under /api/v1. Scheduler: Deterministic, testable, and transparent. It prioritizes deadlines and priority, prevents overlaps, and never exceeds the time budget. Real MCP server: Built with the official Python MCP SDK using Streamable HTTP. It exposes eight tools: create_task, list_tasks, update_task, complete_task, delete_task, generate_plan, get_activity, and reset_demo. Two AI modes: Local mode: Deterministic intent parsing and templated explanations. It works offline with no credentials and never pretends a model was called. Amazon Bedrock mode: boto3 with a configurable region and model ID for interpreting complex requests and explaining planning decisions. Model output is validated JSON, checked against server-side schemas, and executed only through explicitly defined functions, never arbitrary code or SQL. If Bedrock is unavailable, it falls back to local mode and tells the user. Safety: Parameterized SQL, input range validation, narrow CORS, no secrets in the browser or logs, and no unsanitized model output rendered as HTML.
Challenges we ran into
Keeping the assistant honest. We made the backend the source of truth, so the assistant reports what the tools actually did. One data store, many clients. Making the REST API, chat assistant, and MCP tools share a single service layer took deliberate design, but it means no state ever drifts. Safe LLM integration. Treating model output as untrusted input (schema validation, no trusted IDs, no raw SQL) was essential. Staying reliable under a deadline. We built the local-first path first so the demo works even if cloud integrations fail.
Accomplishments that we're proud of
A genuine MCP server whose actions show up in the same dashboard A scheduler that is deterministic, explainable, and tested Honest status reporting everywhere (MCP health, Bedrock vs. fallback) A full demo flow that fits in under three minutes A fully working experience with no Docker, no paid services, and no credentials required
What we learned
MCP is a practical way to give AI clients real, auditable access to application functionality. Agent value comes from grounding responses in real tool results, not from fluent text alone. Validating every model-proposed action server-side is what makes LLM-driven mutation safe.
What's next for Daymark
A real Alexa+ integration via the MCP path Calendar sync and recurring tasks Authentication and multi-user support (the current prototype is a single-user local app, not a production service) Smarter rescheduling when plans slip
Built With
- amazon-bedrock
- boto3
- css
- fastapi
- mcp
- pydantic
- python
- react
- sqlite
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.