Skip to content

anasahmed07/doit

Repository files navigation

DoIt Banner

From CLI to full-stack to fully agentic — a productivity platform where you can manage tasks, projects, and notes through a web UI or just by chatting with an AI assistant.

Python TypeScript Next.js FastAPI MCP License

What is DoIt?

DoIt is a productivity application that combines a traditional web interface with a conversational AI assistant. You can organize your work the classic way — dashboards, Kanban boards, note editors — or skip the clicks entirely and just tell the chatbot what you need. Both interfaces share the same data, so everything stays in sync.

Screenshots

Dashboard Kanban Board
Dashboard Kanban Board
Notes Board Chat Interface
Notes Board Chat Interface

Architecture

+---------------------------------------------------------+
|                   Frontend (Next.js 16)                  |
|   Dashboard  |  Projects  |  Notes  |  Chat UI/Widget   |
+------+-------------+-------------+----------------------+
       | REST         | REST         | SSE + REST
       v              v              v
+--------------+              +------------------+
|   Backend    |              |   MCP Service    |
|   FastAPI    |              | FastMCP + Gemini |
|              |              |  Agent + Tools   |
+------+-------+              +--------+---------+
       |                               |
       v                               v
+---------------------------------------------------------+
|              PostgreSQL (Neon Serverless)                |
|  users | projects | tasks | notes | categories | chat   |
+---------------------------------------------------------+

Features

Task Management

  • Create, update, delete, and organize tasks across multiple projects
  • Kanban board with drag-and-drop columns (TODO / In Progress / Done)
  • Grid view alternative with priority levels (Low, Medium, High) and due dates

Notes

  • Rich markdown editor with formatting toolbar
  • Image and audio media attachments
  • Category-based organization and filtering

Projects and Categories

  • Multiple projects with Kanban or Grid framework selection
  • Color-coded categories shared across notes and tasks
  • Dashboard with stats overview

Conversational AI Chat

  • Full /chat page and a floating chat widget accessible from any screen
  • Natural language management — "Add a task called Deploy v3", "Show my notes", "Create a project called Backend Rewrite"
  • 15 MCP tools covering tasks, notes, projects, categories, and dashboard stats
  • Google Gemini agent with per-user authenticated context
  • Real-time SSE streaming with markdown rendering
  • Persistent conversation history with create, switch, and delete support

Local Kubernetes Deployment

  • Multi-stage Docker builds for all services (optimized image sizes)
  • Umbrella Helm chart with subcharts for frontend, backend, and MCP
  • Minikube deployment with nginx Ingress for path-based routing
  • Health probes (liveness/readiness) on all services
  • Secrets management via gitignored values.secret.yaml

Auth and Infrastructure

  • Better Auth with email/password, Google, and GitHub OAuth
  • Docker Compose with three services (backend, mcp, frontend)
  • GitHub Actions CI/CD deploying to Hugging Face Spaces
  • Neon serverless PostgreSQL with Alembic migrations

Project Structure

doit/
+-- frontend/          # Next.js 16, TypeScript, Tailwind, shadcn/ui
+-- backend/           # FastAPI, SQLAlchemy, Alembic, Better Auth
+-- mcp/               # FastMCP, Gemini agent, MCP tools (Python 3.13+)
+-- helm/doit/         # Umbrella Helm chart with subcharts
+-- doit-cli/          # Original CLI app
+-- specs/             # Feature specs, plans, and task breakdowns
+-- docs/              # Documentation
+-- docker-compose.yml # Full local dev stack
+-- .github/workflows/ # CI/CD pipelines

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Node.js 20+
  • Python 3.13+ with uv
  • A Neon PostgreSQL database

Run with Docker Compose

# Copy env files
cp backend/.env.example backend/.env
cp mcp/.env.example mcp/.env
cp frontend/.env.example frontend/.env.local

# Fill in your database URL, auth secrets, and Gemini API key

# Start all services
docker compose up

The app will be available at:

Run services individually

# Backend
cd backend && uv sync && uv run dev

# MCP Service
cd mcp && uv sync && uv run dev

# Frontend
cd frontend && npm install && npm run dev

Run with Kubernetes (Minikube)

# Start Minikube and enable Ingress
minikube start --cpus=4 --memory=8192 --driver=docker
minikube addons enable ingress

# Build images inside Minikube
eval $(minikube docker-env)
docker build -t doit-backend:latest ./backend
docker build -t doit-mcp:latest ./mcp
docker build -t doit-frontend:latest ./frontend

# Configure secrets
cp helm/doit/values.secret.yaml.example helm/doit/values.secret.yaml
# Edit values.secret.yaml with your actual DATABASE_URL, BETTER_AUTH_SECRET, GEMINI_API_KEY

# Deploy
helm dependency update ./helm/doit
helm install doit ./helm/doit -f ./helm/doit/values.secret.yaml

# Add DNS entry (use minikube ip to get the IP)
# Add to /etc/hosts: <minikube-ip>  doit.local

# Access at http://doit.local

Tech Stack

Layer Technology
Frontend Next.js 16, TypeScript, Tailwind CSS, shadcn/ui
Backend API FastAPI, SQLModel, Alembic, Pydantic
MCP Service FastMCP, Openai agents sdk, Google Gemini, FastAPI (SSE)
Database PostgreSQL (Neon Serverless)
Auth Better Auth (email, Google, GitHub OAuth)
CLI Python, Rich, prompt-toolkit
DevOps Docker Compose, GitHub Actions, Hugging Face Spaces
Kubernetes Minikube, Helm 3, nginx Ingress

Documentation

Releases

  • v3.0.0 — Conversational MCP Chatbot
  • v2.0.0 — Full-Stack Web App
  • v1.0.0 — CLI Task Manager

License

MIT