Schedulr is a smart scheduling and task management tool that helps users organize their work, prioritize tasks, and generate optimized schedules.
π Built as part of GirlScript Summer of Code (GSSoC).
- π Add and manage tasks with deadlines
- π€ Auto-generate optimized daily/weekly schedules
- π Visual calendar interface
- π Export schedules to PDF
- π¨ Clean and minimal UI
- π± Progressive Web App (PWA) support
- π Cross-platform compatibility
- π€ Auto-predict task priorities using ML (High / Medium / Low)
This feature uses a machine learning model to automatically predict the priority of tasks based on:
- DeadlineDays: Number of days until the task is due
- Complexity: Estimated difficulty or effort required
- Importance: User-defined importance score
- OverdueCount: Number of times the task has been delayed
ml/data.csv
β Synthetic dataset simulating tasksml/ml_prioritization.py
β ML script for training and predicting task prioritiesml/task_priority_model.pkl
β Trained model saved for future backend/API integration
-
Navigate to the
ml
directory:cd ml
-
Run the ML script:
python ml_prioritization.py
3. Follow the prompts to enter task details and get priority predictions.
Model Details
Model Type: Random Forest Classifier
Notes
The model is trained on a synthetic dataset and may require retraining with real data for production use.
For backend integration, the model can be loaded using joblib.load('task_priority_model.pkl').
---
## π Tech Stack
- **Frontend:** React 19, Tailwind CSS, React Router
- **Build Tool:** Vite
- **Backend:** Python (Flask / FastAPI) - *Coming Soon*
- **ML / Data Processing:** Python, Pandas, Scikit-learn (Random Forest for task prioritization)
- **Database:** PostgreSQL / SQLite - *Coming Soon*
- **PDF Export:** ReportLab / WeasyPrint - *Coming Soon*
- **Deployment:** Vercel + Heroku
---
## π Quick Start
### Prerequisites
Before you begin, ensure you have the following installed:
- **Node.js** (v18 or higher) - [Download here](https://nodejs.org/)
- **npm** (comes with Node.js) or **yarn**
- **Git** - [Download here](https://git-scm.com/)
### π₯ Installation Steps
1. **Clone the repository**
```bash
git clone https://github.com/Caktusuki/Schedulr.git
cd Schedulr
-
Navigate to frontend directory
cd frontend
-
Install dependencies
npm install # or yarn install
-
Start the development server
npm run dev # or yarn dev
-
Open your browser
- Navigate to
http://localhost:5173/
- You should see the Schedulr application running! π
- Navigate to
In the frontend
directory, you can run:
npm run dev
- Starts the development servernpm run build
- Builds the app for productionnpm run preview
- Preview the production build locallynpm run lint
- Run ESLint to check code quality
Schedulr/
βββ frontend/ # React frontend application
β βββ public/ # Static assets (favicon, manifest, etc.)
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ App.jsx # Main app component
β β βββ main.jsx # App entry point
β βββ package.json # Dependencies and scripts
β βββ vite.config.js # Vite configuration
βββ ml/ # ML task prioritization
β βββ data.csv
β βββ ml_prioritization.py
β βββ task_priority_model.pkl
βββ .github/ # GitHub workflows and templates
βββ LICENSE.md # MIT License
βββ README.md # This file
Port already in use?
- The dev server will automatically find the next available port
- Or specify a custom port:
npm run dev -- --port 3000
Dependencies not installing?
- Clear npm cache:
npm cache clean --force
- Delete
node_modules
andpackage-lock.json
, then runnpm install
Build errors?
- Ensure you're using Node.js v18 or higher:
node --version
- Check for TypeScript/ESLint errors:
npm run lint
We love contributions! π Here's how you can help:
- Check if it's already reported in Issues
- If not, create a new issue
- Check existing Issues and Discussions
- Create a new issue with the
enhancement
label
- Fork the repository
- Clone your fork
git clone https://github.com/YOUR_USERNAME/Schedulr.git
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Test your changes
npm run lint npm run build
- Commit your changes
git commit -m "feat: add amazing feature"
- Push to your fork
git push origin feature/amazing-feature
- Open a Pull Request
We follow Conventional Commits:
feat:
- New featuresfix:
- Bug fixesdocs:
- Documentation changesstyle:
- Code style changesrefactor:
- Code refactoringtest:
- Adding testschore:
- Maintenance tasks
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Vikyraj Deka (@Caktusuki)
Thanks to all contributors who have helped make Schedulr better!
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Star this repo if you find it helpful!
Happy Scheduling! π β¨