🚫 Solo Project – I’m not accepting contributions at this time.
A web application for optimizing Paid Time Off (PTO) usage.
Holiday Optimizer helps users maximize their time off by intelligently planning PTO days around public and company holidays. By inputting your available PTO and selecting your location, the application generates an optimized schedule suggesting the best days to take off to create longer breaks throughout the year.
- Input your total available Paid Time Off (PTO) days.
- Select your country (and region/province, where applicable) to automatically fetch public holidays for a chosen year.
- Add custom company-specific non-working days.
- Choose an optimization strategy (e.g., maximize long weekends, distribute evenly).
- Generate a visual schedule highlighting suggested PTO days and resulting time-off blocks.
- Plan for the current or upcoming year.
- Responsive design for use on various devices.
This project is built with:
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- UI Library: React
- Styling: TailwindCSS
- UI Components: Shadcn UI
- Data Fetching: React Query (TanStack Query)
- Notifications: Sonner (Toasts)
- Testing: Jest, React Testing Library (Planned/Setup)
- Deployment: Cloudflare Pages
- CI/CD: GitHub Actions
- Node.js 20+
- pnpm 10+
-
Clone the repository:
git clone https://github.com/yourusername/holiday-optimizer.git cd holiday-optimizer
-
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
-
Open http://localhost:3000 in your browser.
This application is deployed to Cloudflare Pages. For deployment details, see DEPLOYMENT.md.
holiday-optimizer/
├── .github/ # GitHub Actions workflows
├── .husky/ # Git hooks
├── public/ # Static assets
├── src/ # Application source code
│ ├── app/ # Next.js app router
│ ├── components/ # React components
│ ├── lib/ # Utility functions and shared logic
│ ├── styles/ # Global styles
│ └── types/ # TypeScript type definitions
└── tests/ # Test files
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run specific test categories
pnpm test:unit
pnpm test:integration
pnpm test:e2e
# Generate test coverage report
pnpm test:coverage
# Run linter
pnpm lint
# Format code
pnpm format
Thank you for your interest! This repository is maintained solely by me.
I’m not accepting pull requests or forks.
If you’d like to support the project, feel free to ⭐ the repo.
This project is currently unlicensed. All rights reserved.