https://github.com/g4eva-dev/schedule-pro
https://github.com/g4eva-dev/schedule-pro
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/g4eva-dev/schedule-pro
- Owner: G4EVA-dev
- Created: 2025-07-23T22:56:28.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-08-01T17:42:06.000Z (11 months ago)
- Last Synced: 2025-08-01T18:31:27.819Z (11 months ago)
- Language: TypeScript
- Homepage: https://schedule-pro-omega.vercel.app
- Size: 272 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.