You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Smart Scheduler
An AI-powered scheduling app: user auth, calendar, to-do list, event scheduling, reminders, and
AI-assisted schedule optimization (via the Claude API) that proposes time slots for your pending
tasks based on priority, deadline, and free time on your calendar.
- **Backend**: Django REST Framework, SQLite locally / PostgreSQL-ready, JWT auth
- **Frontend**: Vue 3 + Vite, Tailwind CSS, Pinia, FullCalendar
## Backend setup
```bash
cd backend
python -m venv .venv
.venv/Scripts/activate # source .venv/bin/activate on macOS/Linux
pip install -r requirements.txt
cp .env.example .env # fill in ANTHROPIC_API_KEY to enable AI optimization
python manage.py migrate
python manage.py createsuperuser # optional, for /admin/
python manage.py runserver 8000
```
By default `DATABASE_URL` is unset and the app uses a local `db.sqlite3` file. To use PostgreSQL
instead, set `DATABASE_URL` in `backend/.env`, e.g.:
```
DATABASE_URL=postgres://scheduler:scheduler@localhost:5432/scheduler
```
No code changes are needed to switch � just point `DATABASE_URL` at a running Postgres instance
and re-run `python manage.py migrate`.
## Frontend setup
```bash
cd frontend
npm install
cp .env.example .env
npm run dev # http://localhost:5173
```
The frontend expects the backend at `http://localhost:8000/api` by default (see
`frontend/.env`'s `VITE_API_BASE_URL`).
## AI schedule optimization
The "Optimize My Schedule" button (Dashboard/Tasks) calls the backend, which asks Claude to
propose time slots for your pending tasks based on their priority/deadline/estimated duration and
your free time over the next 7 days. Requires `ANTHROPIC_API_KEY` to be set in `backend/.env`.
Proposed slots are shown for review � nothing is written to your calendar until you accept
(per-item accept/reject/edit-time supported) on the Suggested Schedule screen.
## Golden path
1. Register an account, then create a few tasks with priorities/deadlines/durations.
2. Add a couple of events on the Calendar page (drag to move/resize).
3. Click "Optimize My Schedule" and review the AI's proposed slots.
4. Accept the ones you want � they become real calendar events immediately.