Skip to content

nramc/journey-api

Repository files navigation

GitHub Actions Workflow Status Quality Gate Status Coverage Release Documentation Docker Badge

Journey Rest API


This Java-based Backend For Frontend (BFF) service is designed to seamlessly integrate with the Journeys Single Page Application (SPA), offering robust backend support for frontend operations.

Built using the powerful Spring Framework, this service handles complex request processing with a focus on geographical data management. Key features include:

  • Scalable Data Persistence: Leveraging MongoDB Atlas, the service ensures reliable and scalable data storage.
  • Geospatial Support: With geographical information at its core, the service utilizes GeoJSON data format, made simple through the geojson4j library, for accurate and efficient handling of location-based data.
  • Passkey / FIDO2 Authentication: Supports WebAuthn passwordless login via passkeys.
  • Multi-Factor Authentication (MFA): TOTP-based MFA for enhanced account security.
  • AI-Powered Features: Integrates Spring AI with Google Gemini ( gemini-2.5-flash) for intelligent journey assistance.

Helpful Links

Getting Started

Please find below steps to setup and run application in your workstation.

Prerequisites

The service uses MongoDB for persistence and Mailpit for local email testing. Spring Boot's Docker Compose integration automatically starts all required infrastructure (MongoDB, Mongo Express, Mailpit) when the application is run with the dev profile — no manual docker compose up needed. Make sure you have Docker and Java 21 installed.

Installation

  1. Download Repository
    git clone https://github.com/nramc/journey-api.git 
  2. Run Application with spring profile dev (infrastructure starts automatically)
    ./mvnw spring-boot:run -pl journey-api-web -Dspring-boot.run.profiles=dev
  3. Local MongoDB can be accessed at http://localhost:9090/ via Mongo Express; Mailpit UI at http://localhost:8025
  4. To test REST resources, use IntelliJ Http Client scripts available in src/test/resources/http-scripts/ directory.

Contributing

Any contributions you make are greatly appreciated.

If you like the project and have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add the AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Release new version

  1. Manually run Prepare Release Workflow with release version "MAJOR.MINOR.PATCH" e.g. 0.0.1
  2. The Workflow flow creates a new tag with provided release version vMAJOR.MINOR.PATCH e.g. v0.0.1
  3. The Workflow creates Release as well with release notes and make the release as latest
  4. As soon as new Release created, which triggers Release Workflow with release event
  5. The Release workflow build & test project after checkout
  6. When build successful, creates Docker image and publish it to Docker Hub
  7. Finally triggers Render webhook for deployment

Contact

Ramachandran Nellaiyappan

Credits

Sincere Thanks to following open source community for their wonderful efforts to make our life much easier.

Show your support

Give a ⭐️ if you like this project!

About

This Java-based Backend For Frontend (BFF) service is designed to seamlessly integrate with the Journeys Single Page Application (SPA), offering robust backend support for frontend operations.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages