An intelligent task management system powered by CPU scheduling algorithms from Operating Systems
Smart Task Scheduler brings the power of CPU scheduling algorithms to everyday task management. Instead of manually organizing tasks, the system uses proven Operating System algorithms to optimize task execution order based on your priorities, deadlines, and durations.
- โ 5 Scheduling Algorithms - FCFS, SJF, Priority, EDF, Round Robin
- ๐ Visual Schedule View - See optimized task order with detailed timings
- ๐ Performance Analytics - Track metrics like waiting time, turnaround time, throughput
- ๐จ Modern UI - Responsive design with Tailwind CSS
- ๐ Full CRUD Operations - Complete task management system
- ๐ฑ Mobile Responsive - Works seamlessly on all devices
- Node.js (v14 or higher)
- MongoDB Atlas account (or local MongoDB)
- npm or yarn package manager
- Clone the repository
cd d:\OS_Project- Setup Backend
cd smart-task-scheduler-server
npm installCreate a .env file in the server directory:
DB_USER=your_mongodb_username
DB_PASS=your_mongodb_password
PORT=3000- Setup Frontend
cd ../smart-task-scheduler
npm install- Start Backend Server
cd smart-task-scheduler-server
npm startServer runs on http://localhost:3000
- Start Frontend Development Server
cd smart-task-scheduler
npm run devFrontend runs on http://localhost:5173
- Open in Browser
http://localhost:5173
smart-task-scheduler/
โโโ src/
โ โโโ About/ # About page component
โ โโโ AlgorithmSelector/ # Algorithm selection interface
โ โโโ Dashboard/ # Main task dashboard
โ โโโ HomePage/ # Landing page
โ โโโ MainLayout/ # Layout wrapper
โ โโโ Router/ # Route configuration
โ โโโ ScheduleView/ # Schedule visualization
โ โโโ StatsView/ # Performance statistics
โ โโโ TaskForm/ # Add/Edit task form
โ โโโ shared/ # Navbar, Footer components
โโโ public/ # Static assets
โโโ package.json
smart-task-scheduler-server/
โโโ index.js # Main server file
โโโ package.json
โโโ .env # Environment variables
- Strategy: Execute tasks in arrival order
- Use Case: Simple queue processing
- Pros: Fair and simple
- Cons: Can cause convoy effect
- Strategy: Execute shortest tasks first
- Use Case: Minimize average waiting time
- Pros: Optimal average waiting time
- Cons: Long tasks may starve
- Strategy: Execute high-priority tasks first (1-5 scale)
- Use Case: When tasks have different importance
- Pros: Critical tasks complete quickly
- Cons: Low-priority tasks may starve
- Strategy: Execute tasks with earliest deadlines
- Use Case: Time-critical work
- Pros: Minimizes deadline violations
- Cons: May ignore task priority
- Strategy: Time-slicing with 15-minute quantum
- Use Case: Fair time distribution
- Pros: No starvation, fair
- Cons: Context switching overhead
- Navigate to Dashboard
- Click "Add New Task"
- Fill in:
- Title (required)
- Description
- Duration in minutes (required)
- Priority 1-5 (required)
- Deadline (required)
- Category
- Status
- Go to "Select Algorithm"
- Choose one of 5 algorithms
- Click "Generate Schedule"
- View optimized task order
- After generating schedule
- Click "View Stats"
- Analyze:
- Average Waiting Time
- Average Turnaround Time
- CPU Utilization
- Throughput
- Efficiency Rating
- Start Time: When task execution begins
- End Time: When task completes
- Waiting Time: Time spent waiting before execution
- Turnaround Time: Total time from arrival to completion
- Average Waiting Time: Mean waiting time across all tasks
- Average Turnaround Time: Mean turnaround time
- Total Completion Time: Time to finish all tasks
- Throughput: Tasks completed per hour
- CPU Utilization: Percentage of CPU busy time
- React 19 - Modern UI library
- React Router - Client-side routing
- Tailwind CSS 4 - Utility-first CSS framework
- Vite - Fast build tool and dev server
- Node.js - JavaScript runtime
- Express - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks |
Get all tasks |
| GET | /tasks/:id |
Get single task |
| POST | /tasks |
Create new task |
| PUT | /tasks/:id |
Update task |
| DELETE | /tasks/:id |
Delete task |
| POST | /schedule |
Generate schedule |
// Generate schedule with SJF algorithm
const response = await fetch('http://localhost:3000/schedule', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
tasks: tasksArray,
algorithm: 'SJF'
})
});- View all tasks in organized table
- Color-coded categories and priorities
- Edit and delete tasks
- Real-time task count
- Responsive design
- Input validation
- Date/time picker for deadlines
- Priority dropdown (1-5)
- 11 category options
- Status tracking
- Visual cards for each algorithm
- Detailed pros/cons
- Best use case recommendations
- Task count display
- Detailed execution order table
- Start/end times for each task
- Waiting and turnaround times
- Quick stats preview
- KPI dashboard cards
- Average metrics
- Min/Max/Avg analysis
- Algorithm-specific insights
- Performance ratings
The application comes with 50 pre-populated tasks covering:
- Multiple categories (study, planning, design, frontend, backend, etc.)
- Various priorities (1-5)
- Different durations (30-90 minutes)
- Realistic deadlines
- Use the same task set
- Try each algorithm
- Compare results:
- SJF typically has lowest avg waiting time
- Priority favors high-priority tasks
- EDF focuses on deadlines
- Round Robin provides fair distribution
This project demonstrates:
- CPU scheduling algorithms from Operating Systems
- Full-stack web development
- RESTful API design
- React component architecture
- Database operations with MongoDB
- Performance metric calculations
- UI/UX design principles
This is an educational project for Operating Systems course. Feel free to:
- Report bugs
- Suggest features
- Improve documentation
- Enhance algorithms
This project is created for educational purposes as part of an Operating Systems course.
- Students - Managing study schedules and assignments
- Professionals - Organizing projects and deadlines
- Developers - Learning OS concepts practically
- Anyone - Seeking optimized task management
- User authentication
- Multiple workspaces
- Task dependencies
- Export to PDF/CSV
- Email notifications
- Dark mode
- Advanced filtering
- Calendar integration
For issues or questions:
- Check the browser console for errors
- Verify both servers are running
- Check MongoDB connection
- Review
.envconfiguration
- Inspired by CPU scheduling algorithms from Operating Systems
- Built with modern web technologies
- Designed for both learning and practical use
Made with โค๏ธ for Operating Systems Project 2025
Ready to optimize your schedule? Start by running the application and exploring different algorithms! ๐