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

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.

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