Skip to content

MahirPatel2005/appointment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APPoint — Appointment Scheduling App ✅

A full-stack appointment booking platform built with React (Vite) on the frontend and Node.js + Express + Prisma (Postgres) on the backend. The app supports role-based users (Admin / Organiser / Customer), service management, booking, reminders, Stripe payments, and email notifications.

🎥 Demo / Walkthrough


🔧 Features

  • User registration, login, and role-based access
  • Create and manage services (duration, price, questions, capacity)
  • Bookings with optional payment via Stripe
  • Resource & provider assignment (auto or manual)
  • Reminders via scheduled jobs and email
  • Prisma ORM with Postgres migrations and seed data

🧰 Tech Stack

  • Frontend: React (Vite)
  • Backend: Node.js, Express
  • Database: PostgreSQL (Prisma)
  • Payments: Stripe
  • Email: Nodemailer
  • Dev tooling: Nodemon, dotenv, Prisma CLI

🚀 Quickstart (Local)

Prerequisites:

  • Node.js (>= 18)
  • npm or yarn
  • Docker (optional, recommended for local Postgres)
  1. Clone the repo
git clone <repo-url>
cd APPoint
  1. Start Postgres (docker-compose recommended)
docker compose up -d
  1. Environment variables

Create a .env file in /Backend (see /Backend/.env.example if provided). Important vars used by the app:

DATABASE_URL=postgres://postgres:mypassword@localhost:5433/appointment_app
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=sk_test_...
EMAIL_USER=your_email@example.com
EMAIL_PASSWORD=your_email_password
FROM_NAME="Appointment App"
PORT=5000
FRONTEND_URL=http://localhost:5173
  1. Install & prepare the backend
cd Backend
npm install
# apply migrations (migrations are included)
npx prisma migrate deploy
# seed the DB
npm run prisma:seed || node prisma/seed.js
npm run dev

Notes: If you prefer iterative development you can also run npx prisma migrate dev when creating new migrations.

  1. Install & run the frontend
cd ../Frontend
npm install
npm run dev

The frontend runs by default on http://localhost:5173 (Vite) and the backend defaults to http://localhost:5000.


📁 Project Structure (high level)

  • Backend/

    • server.js — express entry point
    • src/controllers — route handlers
    • src/lib/prisma.js — Prisma client
    • prisma/ — schema, migrations, seed
  • Frontend/

    • src/ — React app (components, pages)

🧪 Tests

No automated tests are included yet. Contributions adding unit, integration, or E2E tests are welcome.


🤝 Contributing

Contributions are welcome — please open issues or PRs. For larger changes, please open an issue first to discuss the approach.


📄 License

This project is provided without a license file. Add a license as appropriate for your use.


Contact

If you have questions or want to collaborate, open an issue or contact the maintainer.

About

Smart appointment & service booking platform built for Odoo Hackathon. Role-based system with custom services, dynamic forms, conflict-free slot generation, Google Calendar sync, secure auth, and scalable backend architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages