Skip to content

A smart task management and scheduling app that helps users organize tasks, optimize time, and export schedules with ease. Built with Python, React, and love during GirlScript Summer of Code.

License

Notifications You must be signed in to change notification settings

Caktusuki/Schedulr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… Schedulr

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).

Live Demo MIT License Contributors


✨ Features (v1)

  • πŸ“ 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)

🧠 ML Task Prioritization

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

Files

  • ml/data.csv β†’ Synthetic dataset simulating tasks
  • ml/ml_prioritization.py β†’ ML script for training and predicting task priorities
  • ml/task_priority_model.pkl β†’ Trained model saved for future backend/API integration

How to Run

  1. Navigate to the ml directory:

    cd ml
  2. 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
  1. Navigate to frontend directory

    cd frontend
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start the development server

    npm run dev
    # or
    yarn dev
  4. Open your browser

    • Navigate to http://localhost:5173/
    • You should see the Schedulr application running! πŸŽ‰

πŸ”§ Available Scripts

In the frontend directory, you can run:

  • npm run dev - Starts the development server
  • npm run build - Builds the app for production
  • npm run preview - Preview the production build locally
  • npm run lint - Run ESLint to check code quality

πŸ“ Project Structure

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

πŸ” Troubleshooting

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 and package-lock.json, then run npm install

Build errors?

  • Ensure you're using Node.js v18 or higher: node --version
  • Check for TypeScript/ESLint errors: npm run lint

🀝 Contributing

We love contributions! πŸŽ‰ Here's how you can help:

πŸ› Found a Bug?

  1. Check if it's already reported in Issues
  2. If not, create a new issue

πŸ’‘ Have a Feature Idea?

  1. Check existing Issues and Discussions
  2. Create a new issue with the enhancement label

πŸ”§ Ready to Code?

  1. Fork the repository
  2. Clone your fork
    git clone https://github.com/YOUR_USERNAME/Schedulr.git
  3. Create a feature branch
    git checkout -b feature/amazing-feature
  4. Make your changes
  5. Test your changes
    npm run lint
    npm run build
  6. Commit your changes
    git commit -m "feat: add amazing feature"
  7. Push to your fork
    git push origin feature/amazing-feature
  8. Open a Pull Request

πŸ“ Commit Message Guidelines

We follow Conventional Commits:

  • feat: - New features
  • fix: - Bug fixes
  • docs: - Documentation changes
  • style: - Code style changes
  • refactor: - Code refactoring
  • test: - Adding tests
  • chore: - Maintenance tasks

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE.md file for details.


πŸ’‘ Project Admin

πŸ™ Contributors

Thanks to all contributors who have helped make Schedulr better!

Contributors


πŸ“ž Support


Happy Scheduling! πŸ“…βœ¨

About

A smart task management and scheduling app that helps users organize tasks, optimize time, and export schedules with ease. Built with Python, React, and love during GirlScript Summer of Code.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages