Skip to content

A homestay booking system like Airbnb. The guideline of a personal project for applying to your CV/resume.

Notifications You must be signed in to change notification settings

ronin-engineer-88/airbnb

Repository files navigation

Airbnb | Ronin Engineer

Introduction

Docs

Techniques

  • Data Modeling
  • API Design
  • Codebase: Principles, Design Patterns
  • Database
  • JPA/Hibernate
  • Caching
  • Unit Testing
  • Integration
  • Security
  • Deployment
  • ...

Tech Stack

  • Programming Language: Java 21
  • Framework: Spring Boot 3.3.0
  • Database: Postgres 16
  • Cache: Redis 7
  • Unit Testing: JUnit 5
  • Integration: VNPay Payment Gateway
  • Security: JWT, Spring Security, ...
  • Deployment
    • Container: Docker
    • CICD: Github Actions
    • Deployment: Cloud Server
  • ...

Please feel free to give us feedbacks, contribution.
Thank you so much! 🫶

API cURL Sample

  1. Search Homestay by Area
curl --location 'http://localhost:8080/api/v1/homestays?longitude=105.85093677113572&latitude=21.00331838574515&radius=1000&checkin_date=2024-07-04&checkout_date=2024-07-07&guests=2'
  1. Book Homestay
curl --location 'http://localhost:8080/api/v1/bookings' \
--header 'Content-Type: application/json' \
--data '{
    "request_id": "qweq",
    "user_id": 1,
    "homestay_id": 1,
    "checkin_date": "2024-07-10",
    "checkout_date": "2024-07-13",
    "guests": 2,
    "note": "note test"
}'

Distributed Tracing

Install SigNoz

cd docker/signoz
docker compose up -d

Instrument OpenTelemetry Agent

  • Download opentelemetry-javaagent.jar into ./telemetry/
  • Instrument your application by creating env vars:
    • JAVA_TOOL_OPTIONS=-javaagent:telemetry/opentelemetry-javaagent.jar
    • OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
    • OTEL_EXPORTER_OTLP_PROTOCOL=grpc
    • OTEL_RESOURCE_ATTRIBUTES="service.name=airbnb-local"
    • OTEL_SERVICE_NAME=airbnb-local

About

A homestay booking system like Airbnb. The guideline of a personal project for applying to your CV/resume.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published