An open API service indexing awesome lists of open source software.

https://github.com/g4eva-dev/schedule-pro


https://github.com/g4eva-dev/schedule-pro

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

# Schedule Pro

A modern, full-stack appointment scheduling and business management platform designed for service businesses. Schedule Pro provides seamless calendar booking, notifications, analytics, client management, and more, all powered by Next.js, Convex, and a robust UI built with Radix UI and TailwindCSS.

---

## Table of Contents
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Getting Started](#getting-started)
- [Environment Variables](#environment-variables)
- [Project Structure](#project-structure)
- [Scripts](#scripts)
- [Key Functionality](#key-functionality)
- [Notifications & Email](#notifications--email)
- [Analytics](#analytics)
- [Customization](#customization)
- [Troubleshooting](#troubleshooting)
- [License](#license)

---

## Features
- **Appointment Scheduling**: Book, edit, and manage appointments with real-time calendar integration.
- **Staff & Client Management**: Manage staff, assign appointments, and maintain client records with pagination and export (CSV).
- **Business Analytics**: Dashboard and analytics pages with live business metrics (revenue, appointments, service breakdowns, etc.).
- **Notifications**: In-app and email notifications for clients and staff, including reminders and confirmations.
- **Settings & Customization**: Business profile, working hours, and logo upload.
- **Help & Support**: Dedicated support page with feedback form and FAQ.
- **Responsive UI**: Built with Radix UI, TailwindCSS, and modern UX best practices.

---

## Tech Stack
- **Frontend**: [Next.js 15](https://nextjs.org/), [React 19](https://react.dev/), [TailwindCSS](https://tailwindcss.com/), [Radix UI](https://www.radix-ui.com/)
- **Backend/Data**: [Convex](https://convex.dev/) (serverless database & functions), [Prisma](https://www.prisma.io/) (for legacy/data migration), [Resend](https://resend.com/) (email)
- **Auth**: [NextAuth.js](https://next-auth.js.org/), Convex Auth
- **Other**: [Zod](https://zod.dev/) (validation), [date-fns](https://date-fns.org/) (date utilities)

---

## Getting Started

### 1. Clone the Repository
```bash
git clone https://github.com/your-org/schedule-pro.git
cd schedule-pro
```

### 2. Install Dependencies
```bash
pnpm install
```

### 3. Set Up Environment Variables
Create a `.env.local` file in the root with the following:
```env
NEXT_PUBLIC_CONVEX_URL=your-convex-url
NEXTAUTH_URL=http://localhost:3000
RESEND_API_KEY=your-resend-api-key
```
See [Environment Variables](#environment-variables) for details.

### 4. Run the Development Server
```bash
pnpm run dev
```

### 5. Build for Production
```bash
pnpm run build
```

---

## Environment Variables
| Variable | Required | Description |
|------------------------|----------|--------------------------------------------------|
| NEXT_PUBLIC_CONVEX_URL | Yes | Convex backend URL |
| NEXTAUTH_URL | Yes | Auth callback URL (for NextAuth) |
| RESEND_API_KEY | Yes | API key for Resend email service |
| DATABASE_URL | Optional | Prisma/legacy DB connection (if used) |

---

## Project Structure
```
schedule-pro/
├── app/ # Next.js app directory (pages, routes)
│ └── (dashboard)/ # Main dashboard and feature pages
├── components/ # Reusable React components
│ ├── calendar/ # Calendar and appointment UI
│ ├── providers/ # React context providers
│ └── ui/ # UI primitives (DateTimePicker, etc.)
├── convex/ # Convex backend functions (queries, mutations, actions)
│ ├── appointments.ts # Appointment logic (creation, update, notifications)
│ ├── email.ts # Email sending logic (Resend integration)
│ ├── notifications.ts # In-app notifications logic
│ ├── clients.ts # Client management
│ ├── staff.ts # Staff management
│ ├── services.ts # Service management
│ └── ...
├── public/ # Static assets
├── styles/ # Tailwind and global styles
├── package.json # Project metadata and dependencies
└── README.md # This file
```

---

## Scripts
| Script | Description |
|----------------|------------------------------------|
| `dev` | Start Next.js and Convex in dev |
| `build` | Build Next.js for production |
| `start` | Start Next.js in production |
| `convex` | Start Convex dev server |
| `lint` | Run Next.js linter |

---

## Key Functionality

### Appointment Booking & Management
- Book, edit, cancel, and reschedule appointments via a modern calendar UI.
- Assign staff and clients to appointments.
- Appointment forms use robust date/time pickers and duration selectors.

### Notifications & Email
- **In-App Notifications**: Real-time notifications for clients and staff when appointments are created or updated.
- **Email Alerts**: Transactional emails sent via Resend to clients and staff (on creation, assignment, and reminders).
- **Reminder Emails**: Sent 30 minutes before appointments (interval configurable in future).
- **Robust Logging**: All email sends are logged with recipient, subject, and payload for debugging.

### Analytics & Dashboard
- Live business analytics: revenue, appointment stats, service breakdowns, and more.
- Widgets and charts powered by Convex queries.

### Client & Staff Management
- Paginated lists, CSV export, and easy management for both clients and staff.

### Settings & Customization
- Business profile (name, logo, working hours) editable in settings.
- Staff working hours and services managed via UI.

### Help & Support
- Dedicated page for help, FAQ, and feedback submission.

---

## Customization
- **Styling**: Easily customizable with TailwindCSS.
- **Components**: Modular React components for rapid feature development.
- **Backend**: Extend Convex functions for custom business logic.

---

## Troubleshooting
- **Email Not Sending?**
- Ensure `RESEND_API_KEY` is set in your environment and valid.
- Check Convex logs for errors (especially for staff notifications).
- Make sure staff and client records have valid email addresses.
- **Convex Issues?**
- Ensure your Convex project is deployed and accessible.
- Update `NEXT_PUBLIC_CONVEX_URL` as needed.
- **UI Bugs?**
- Check browser console for errors.
- Ensure all dependencies are installed and up to date.

---

## License

This project is licensed under the MIT License. See [LICENSE](./LICENSE) for details.