A lightweight local-first task management app with notebook and calendar views.
- Create, edit, and delete tasks with rich text styling
- Upload up to 3 images per task
- Mark tasks as done/undone
- Filter tasks (All/Active/Done)
- Search tasks by title, content, or tags
- Calendar view with monthly layout
- Task priority levels (High/Medium/Low)
- Task templates for quick creation
- Local file-based storage (no database required)
- Import/Export functionality
- Beautiful modern UI with smooth animations
Just double-click start.bat - it will automatically start both servers!
The app will open at:
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
If you prefer to run servers manually:
cd backend
npm install
npm startServer runs on http://localhost:3001
cd frontend
npm install
npm run devApp runs on http://localhost:3000
- Start the app (double-click
start.bator run servers manually) - Open http://localhost:3000 in your browser
- Click "New Task" to create a task
- Switch between Notebook and Calendar views
- Use filters to show All/Active/Done tasks
- Search tasks using the search bar
- Save frequently used tasks as templates
notebook-app/
├─ backend/ # Express API server
├─ frontend/ # React + Vite app
├─ data/
│ ├─ tasks.json # Task storage
│ └─ images/ # Uploaded images
├─ start.bat # Quick start script (Windows)
└─ README.md
- Create: Add tasks with title, description, images, due date, tags, and priority
- Edit: Modify any task property, add/remove images
- Delete: Remove tasks with confirmation
- Toggle Done: Mark tasks as complete/incomplete
- Priority: Set High/Medium/Low priority with color coding
- Notebook: Grid view of all tasks with filtering and search
- Calendar: Monthly calendar showing tasks by due date
- Search: Find tasks by title, content, or tags
- Filter: Show All, Active, or Completed tasks
- Tags: Organize tasks with comma-separated tags
- Priority: Visual priority indicators
- Save frequently used task formats
- Quick create from saved templates
- Stored locally in browser
- Text Color: Choose from 10 preset colors
- Font Weight: Normal or Bold
- Images: Up to 3 images per task
GET /api/tasks- Get all tasksPOST /api/tasks- Create taskPUT /api/tasks/:id- Update taskPATCH /api/tasks/:id/done- Toggle done statusDELETE /api/tasks/:id- Delete taskGET /api/export- Export tasks as JSONPOST /api/import- Import tasks from JSON
All data is stored locally in the /data folder:
- Task metadata:
/data/tasks.json - Images:
/data/images/
No external database or cloud storage required.
Frontend:
- React 18
- Vite
- Tailwind CSS
- date-fns
Backend:
- Node.js
- Express
- Multer (file uploads)
- UUID
- Node.js (v16 or higher)
- npm or yarn
- Tasks are automatically sorted by: Not Done → Priority → Due Date
- Images are limited to 5MB each
- Templates are saved in browser localStorage
- Use tags for better organization
- Calendar view shows tasks on their due dates
- Search works across title, content, and tags