Skip to content

emre-guler/daily-planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DayPlanner

A personal daily planner with time blocks, recurring events, and analytics.

Stack

Layer Tech
Backend .NET 10, ASP.NET Core Web API
Frontend React 19 + TypeScript + Vite + Tailwind
Database JSON file (backend/DailyPlanner/Data/planner.json)

Features

  • Day Planner — Visual 24-hour timeline; click any hour slot to add a block
  • Time Blocks — Title, description, time range, category, custom color
  • Recurring Blocks — Repeat on chosen weekdays, auto-generates instances 90 days ahead
  • Analytics — Charts for daily hours, category breakdown, busiest hours, block count trends
  • Range filter — 7 / 14 / 30 / 90-day analytics window

Getting started

Docker (recommended)

docker compose up --build
# Frontend → http://localhost:3000
# Backend  → http://localhost:5000

Data is stored in a named Docker volume (planner-data) and survives container restarts.

docker compose down          # stop
docker compose down -v       # stop + delete data volume

Local development

Backend:

cd backend/DailyPlanner
dotnet run
# Listening on http://localhost:5000

Frontend:

cd frontend
npm install        # first time only
npm run dev
# Open http://localhost:3000

The Vite dev server proxies /apihttp://localhost:5000 automatically.

Project layout

time-tracker/
├── backend/
│   └── DailyPlanner/
│       ├── Controllers/
│       │   ├── BlocksController.cs          # CRUD for time blocks
│       │   ├── RecurringBlocksController.cs # Recurring logic + auto-generation
│       │   └── AnalyticsController.cs       # Aggregated stats
│       ├── Models/
│       │   ├── TimeBlock.cs
│       │   ├── RecurringBlock.cs
│       │   └── PlannerData.cs
│       ├── Services/
│       │   ├── JsonDataService.cs           # Read/write planner.json
│       │   └── AnalyticsService.cs
│       └── Data/
│           └── planner.json                 # Created automatically
└── frontend/
    └── src/
        ├── pages/
        │   ├── PlannerPage.tsx              # Main planner view
        │   ├── RecurringPage.tsx            # Manage recurring blocks
        │   └── AnalyticsPage.tsx            # Charts & stats
        ├── components/
        │   ├── Navbar.tsx
        │   ├── DayView.tsx                  # 24h timeline
        │   ├── WeekStrip.tsx                # Week navigator
        │   ├── BlockModal.tsx               # Create/edit block form
        │   └── RecurringModal.tsx           # Create/edit recurring form
        ├── services/api.ts                  # Typed API client
        └── types/index.ts                   # Shared types & constants

API endpoints

Method Path Description
GET /api/blocks?date=&fromDate=&toDate= List blocks
POST /api/blocks Create block
PUT /api/blocks/:id Update block
DELETE /api/blocks/:id Delete block
GET /api/recurringblocks List recurring blocks
POST /api/recurringblocks Create (auto-generates 90d)
PUT /api/recurringblocks/:id Update (regenerates future)
DELETE /api/recurringblocks/:id Delete + optionally purge future
GET /api/analytics?fromDate=&toDate= Analytics data

About

A personal daily planner with time blocks, recurring events, and analytics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors