https://github.com/rohitramteke1/photography-booking-api
A serverless-ready backend API for photography service bookings, built with Node.js, DynamoDB, and AWS Lambda. Features authentication, role-based access, Google OAuth, and Swagger documentation.
https://github.com/rohitramteke1/photography-booking-api
api aws backend booking dynamodb express nodejs photography serverless
Last synced: 3 months ago
JSON representation
A serverless-ready backend API for photography service bookings, built with Node.js, DynamoDB, and AWS Lambda. Features authentication, role-based access, Google OAuth, and Swagger documentation.
- Host: GitHub
- URL: https://github.com/rohitramteke1/photography-booking-api
- Owner: rohitramteke1
- License: other
- Created: 2025-05-28T23:41:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-28T23:57:04.000Z (about 1 year ago)
- Last Synced: 2025-06-27T18:42:24.180Z (about 1 year ago)
- Topics: api, aws, backend, booking, dynamodb, express, nodejs, photography, serverless
- Language: JavaScript
- Homepage:
- Size: 15.5 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ธ Photography Booking API
This project is a **serverless-ready, full-featured backend** built with Node.js and DynamoDB for a modern photography service booking platform.
---
## ๐ฅ Features at a Glance
โ
JWT-based Authentication
โ
Google OAuth for Admins
โ
Booking Flow with Price Estimator
โ
Service & Photographer Listings
โ
Role-based Access Control
โ
Admin Analytics Dashboard
โ
Swagger UI Docs + Postman Collection
โ
Dockerized for Local & Cloud
โ
CI/CD with GitHub Actions
โ
Built on AWS SDK + DynamoDB (NoSQL)
---
## ๐ Project Structure
```
โโโ src/
โ โโโ controllers/
โ โโโ models/
โ โโโ routes/
โ โโโ middleware/
โ โโโ config/
โ โโโ docs/
โ โโโ tests/
โ โโโ app.js
โโโ Dockerfile
โโโ .env.example
โโโ README.md
โโโ swagger.json
โโโ .github/workflows/ci.yml
```
---
## ๐งช Testing
We use **Jest + Supertest** for full API coverage.
```bash
npm test
```
---
## ๐ API Tools
- Swagger Docs: [http://localhost:5000/api-docs](http://localhost:5000/api-docs)
- Postman Collection: [`/src/docs/postman_collection.json`](src/docs/postman_collection.json)
---
## ๐ค Roles
| Role | Permissions |
|----------|--------------------------------------|
| `user` | View & book services |
| `admin` | Manage users, bookings, services |
---
## ๐ Auth Strategy
- **JWT** for user login
- **Google OAuth** for admin-only access
- **Secure cookies** for token storage
---
## ๐ AWS Services Used
- **DynamoDB** โ NoSQL storage
- **S3** โ Media storage (optional)
- **AWS SDK v3** โ SDK for DynamoDB access