A robust Task Scheduling System built with Node.js (Express), React, and SQLite, demonstrating modern concepts in asynchronous programming, concurrency control, and real-time task monitoring.
Users can create tasks with delays, track their execution in real time, and view lifecycle transitions (pending → running → completed → failed) through an intuitive Material UI dashboard.
- ✅ Create and schedule tasks with configurable delays.
- ✅ Real-time dashboard updates for task status.
- ✅ Task lifecycle tracking: pending, running, completed, failed.
- ✅ Persistent storage using SQLite.
- ✅ Concurrency handled efficiently via worker queues.
- ✅ Modern and responsive UI built with Material UI.
- Backend: Node.js, Express, Async.js, SQLite
- Frontend: React (Hooks, Fetch API, Material UI)
- Architecture: RESTful API + Dynamic Task Queue
git clone https://github.com/your-username/task-dashboard.git
cd task-dashboardFor backend and frontend:
Copy code
npm installnode server.jsnpm startThen open http://localhost:3000 in your browser.
taskschedular/
│
├── backend/
│ │
│ ├── src/
│ │ ├── api/
│ │ │ └── routes.js
│ │ ├── core/
│ │ │ ├── executor.js
│ │ │ └── workerQueue.js
│ │ ├── storage/
│ │ │ ├── inMemoryStore.js
│ │ │ ├── insqliteStore.js
│ │ │ └── tasks.db
│ │ └── main.js
│ └── package.json
│
├── task-dashboard/
│ ├── src/
│ │ ├── components/
│ │ ├── api.js
│ │ ├── App.js
│ │ └── index.js
│ └── package.json
│
├── .gitignore
└── README.md- Asynchronous Task Execution
- Concurrent Processing with Worker Queues
- RESTful API Design
- Real-Time UI State Updates
- Persistent Task Storage (SQLite)
- Add task filtering.
- Integrate user authentication and roles.
- Add more analytics dashboard stats (task success rate, avg delay, etc.).
- Enable distributed task queue via Redis.
This project was bootstrapped with Create React App.
Available scripts:
npm start # Start frontend
npm run build # Build for production
npm test # Run testsFor more advanced configuration, refer to the CRA Documentation.