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).
π Exciting News...
π This project is now an official part of GirlScript Summer of Code β GSSoC'25! π» We're thrilled to welcome contributors from all over India and beyond to collaborate, build, and grow Schedulr! Letβs make learning and career development smarter β together! π
π©βπ» GSSoC is one of Indiaβs largest 3-month-long open-source programs that encourages developers of all levels to contribute to real-world projects π while learning, collaborating, and growing together. π±
π With mentorship, community support, and collaborative coding, it's the perfect platform for developers to:
- β¨ Improve their skills
- π€ Contribute to impactful projects
- π Get recognized for their work
- π Receive certificates and swag!
π I canβt wait to welcome new contributors from GSSoC 2025 to this Schedulr project family! Let's build, learn, and grow together β one commit at a time. π₯
- π 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
mldirectory: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_modulesandpackage-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
enhancementlabel
- 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! π β¨
