Skip to content

A Spring Boot application with polyglot persistence (MySQL, MongoDB, Redis) for geospatial business search and reservation management.

License

Notifications You must be signed in to change notification settings

misran3/nex-place

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NexPlace

A Spring Boot application with polyglot persistence (MySQL, MongoDB, Redis) for geospatial business search and reservation management.

Features

  • Geospatial Business Search: Find businesses within a geographic radius using MongoDB's spherical geometry
  • Filter-Based Search: Search businesses by city, neighborhood, category, name, and minimum rating
  • Business Details: Retrieve detailed information about specific businesses
  • Redis Caching: Cache search results with configurable TTL for improved performance
  • Distributed Locking: Redis-based distributed locks for reservation management

Technology Stack

  • Framework: Spring Boot
  • Database: MongoDB (business documents with geospatial indexing)
  • Cache: Redis (search results and distributed locks)
  • SQL Database: MySQL (reservation data)
  • Build Tool: Maven

Local Development

Prerequisites

  • Java 17 or higher
  • Docker and Docker Compose
  • Maven 3.6+

Running Locally

  1. Start infrastructure services:
docker-compose up -d
  1. Run the application:
./mvnw spring-boot:run -Dspring-boot.run.profiles=local
  1. Access the application:
http://localhost:8080
  1. Health check:
http://localhost:8080/actuator/health

Running Tests

./mvnw test

Configuration

The application supports multiple Spring profiles:

  • local: Local development with Docker Compose services
  • azure: Azure environment with managed services

Configuration files:

  • src/main/resources/application.yml - Base configuration
  • src/main/resources/application-local.yml - Local development overrides
  • src/main/resources/application-azure.yml - Azure environment overrides

Azure Deployment

See infrastructure/README.md for detailed deployment instructions and infrastructure setup.

License

MIT License. See LICENSE file for details.

About

A Spring Boot application with polyglot persistence (MySQL, MongoDB, Redis) for geospatial business search and reservation management.

Resources

License

Stars

Watchers

Forks