Skedence is a productivity tool for fast daily planning, task scheduling, and day logging. It offers an intuitive drag-and-drop interface, instant timetable recalculations, rule-based scheduling, and clear visual insights to help you understand how your day is spent.
- Tasks Manager – Create, edit, categorize and schedule tasks.
- Daily Scheduler – Build and adjust your day’s timetable.
- Daily Logger – Track real-world time spent on tasks throughout the day.
- Reusable Tasks – Add recurring tasks without retyping them every day.
- Push Notifications – Alerts for upcoming or started tasks (desktop only).
- Multi-User Support – Each user has independent data and preferences.
- Custom Categories – Create personal categories for your tasks.
- User Settings – Control notifications, schedule rules, default times.
- English + Spanish UI.
- Fast Day Planning & Logging UX:
- Drag-and-drop task add / reorder / removal.
- Automatic timetable recalculation when modifying a task.
- Clone a single task or clone an entire day.
- Re-schedule tasks between days.
- Easy time logging with current time.
- Automatic timetable adjustment based on real logs.
- Schedule focus & rules:
- Skipped tasks are highlighted.
- Start-time deviations warnings.
- Sleep-time awareness.
- Completed tasks are locked and de-emphasized.
- Visual Analytics:
- Day's time allocation by category chart.
- Planned vs Logged comparison chart.
- Full-stack Docker build & run (no local installations required).
- Runs entirely in LAN-only environments:
- ECMAScript 5 compatibility for older browsers.
- Console logging enabled for debugging.
- Full REST API:
- Swagger UI included.
- JWT-authenticated endpoints.
- File logging enabled for debugging.
- Configurable ports for frontend and backend.
- Database auto-created on startup.
- Secure password hashing and storage.
These features are planned or considered:
- Password recovery
- Data import/export from UI
(Note: Users can export data manually using the API + token.) - Calendar sync with external services
- Undo/redo
- Keyboard shortcuts
- .NET 8
- ASP.NET Core
- EF Core 8
- SQLite
- SQL Server
- JWT Authentication
- AutoMapper
- Newtonsoft.Json
- React (Create React App)
- TypeScript
- i18next
- react-beautiful-dnd
- axios
- chart.js
You can run the full-stack app entirely in containers (no local Node.js or .NET required).
- Dev server:
docker compose up --build- Frontend runs on
http://localhost:3000 - Backend API runs on
http://localhost:4030(HTTPS:https://localhost:4031) - Live reload works for both frontend and backend; your local files are mounted into the containers.
- Frontend runs on
- Production build:
- Build and run:
docker compose --profile prod up --build - Frontend served at
http://localhost:8080 - Backend API served at
http://localhost:4030
- Build and run:
Notes:
- The Compose dev service mounts the repo into
/appand keepsnode_modulesinside the container to avoid host conflicts. - If file changes don’t trigger reloads, ensure polling env vars are set (already enabled in
docker-compose.yml).
- Customize host ports via environment variables used by
docker-compose.yml:- Frontend Dev: set
WEB_DEV_PORT(defaults to3000) - Frontend Prod: set
WEB_PROD_PORT(defaults to8080) - Backend API Dev: set
API_DEV_PORT(defaults to4030) - Backend API Dev HTTPS: set
API_DEV_HTTPS_PORT(defaults to4031) - Backend API Prod: set
API_PROD_PORT(defaults to4030)
- Frontend Dev: set
- Quick start: copy
.env.exampleto.envand adjust values, e.g.WEB_DEV_PORT=3001. - If you prefer to free ports, find the process using them:
- macOS/Linux:
lsof -nP -iTCP:3000 -sTCP:LISTEN(replace 3000 with your port) - Docker:
docker ps --format '{{.ID}}\t{{.Ports}}' | grep 3000
- macOS/Linux:
Custom Non-Commercial License.
You may use, modify, and share this project for non-commercial purposes. See LICENSE for full terms.
