Skip to content

Learnathon-By-Geeky-Solutions/devs

Repository files navigation

Roamance Logo

Explore, Connect, Share Your Journey

Roamance helps travelers plan trips, record memories, and connect with fellow explorers worldwide.

Tech Stack

Spring Boot PostgreSQL LangChain4j on Maven Central Docker Spring Security JWT Gemini AI Java 21 Gradle SpringDoc MIT License


Build Status

Build Status API Documentation Coverage


πŸ“š Explore Project Resources

Stay updated and dive deeper into the project!


πŸ“‹ Table of Contents


πŸ”Ž About Roamance

Roamance is a comprehensive travel management and social platform built with Spring Boot, designed to empower travelers to plan, record, and share their journeys with a global community.

Combining powerful itinerary management tools with social networking features, Roamance creates a seamless experience for travel enthusiasts to organize their adventures while connecting with like-minded explorers.

πŸš€ Key Features

  • Smart Travel Planning β€” Create detailed itineraries with day plans and activities
  • Journal System β€” Document travel experiences with rich media support
  • Social Interaction β€” Share posts, like, comment, and save travel content
  • Real-time Messaging β€” Connect with other travelers through private chats
  • AI-Powered Features β€” Get itinerary suggestions, image analysis, and content recommendations
  • Secure Authentication β€” JWT-based authentication and role-based access control

πŸ”₯ Why Roamance?

Traditional travel platforms often suffer from:

  • ❌ Disconnected planning and social sharing features
  • ❌ Limited personalization options
  • ❌ Lack of real-time interaction capabilities

Roamance solves these challenges by offering:

  • A unified platform that combines travel planning and social networking
  • AI-powered personalization for trip suggestions
  • Real-time communication tools for community engagement
  • Comprehensive journal system for preserving travel memories

🌍 Market Opportunity

  • The global travel and tourism market is projected to reach $8.9 trillion by 2026
  • Increasing demand for digital travel planning tools and social travel experiences
  • Growing interest in personalized itineraries and AI-assisted travel recommendations

πŸ— System Architecture

Architecture Diagram

Roamance follows a modular, microservices-inspired architecture with the following key components:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Client Apps     β”‚     β”‚  Spring Boot API  β”‚     β”‚   Data Services   β”‚
β”‚                   β”‚     β”‚                   β”‚     β”‚                   β”‚
β”‚  Mobile / Web     │◄───►│  REST Controllers │◄───►│  PostgreSQL DB    β”‚
β”‚  Applications     β”‚     β”‚  Service Layer    β”‚     β”‚  Object Storage   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚  Security Filters β”‚     β”‚                   β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β–²
                                    β”‚
                                    β–Ό
                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                          β”‚   AI Services     β”‚
                          β”‚                   β”‚
                          β”‚  Gemini Model     β”‚
                          β”‚  Vector DB        β”‚
                          β”‚  Image Analysis   β”‚
                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Œ Modules Overview

Module Purpose
User Management Authentication, profiles, preferences
Travel Journal Journal creation, subsections, media management
Itinerary Planning Trip planning, day plans, activities
Social Interaction Posts, comments, likes, saves
Messaging Real-time and asynchronous messaging
AI Services Content analysis, itinerary generation, search, proofread
Security JWT authentication, role-based access control

System Flow

  1. Authentication Flow πŸ”‘

    • User registers or logs in via secure endpoints
    • JWT tokens (access/refresh) are issued for session management
    • Role-based permissions determine accessible features
  2. Travel Planning Flow πŸ—ΊοΈ

    • Users create itineraries with destination details
    • Day plans are added to itineraries with specific dates
    • Activities are scheduled within day plans with time constraints
  3. Social Interaction Flow 🌐

    • Users create, view, like, and save travel-related posts
    • Comments enable discussion on travel content
    • Real-time messaging connects travelers directly
  4. AI-Enhanced Experience πŸ€–

    • AI analyzes travel content for insights and safety
    • Generate itinerary using AI
    • Vector database enables semantic search across travel content
    • Image analysis extracts meaningful information from travel photos
    • Proofread content

🧰 Tech Stack

Roamance is built with a modern, scalable technology stack:

Backend

  • Spring Boot - Core application framework
  • Spring Security - Authentication and authorization
  • JWT - Secure token-based authentication
  • JPA/Hibernate - ORM for database interactions
  • PostgreSQL - Primary relational database

AI & Advanced Features

  • Gemini AI - Text and image analysis
  • LangChain4j - AI model integration
  • Vector Databases - Semantic search capabilities

DevOps & Tools

  • Docker - Containerization for deployment
  • Gradle - Build automation
  • SpringDoc - API documentation with OpenAPI
  • JUnit & Mockito - Testing frameworks
  • SonarCloud - Code quality and coverage analysis
  • GitHub Actions - CI/CD pipeline for automated testing and deployment
  • Swagger UI - Interactive API documentation
  • Postman - API testing and documentation
  • Azure DevOps - Project management using scrum methodology

πŸš€ Getting Started

Follow these steps to set up Roamance locally:

Prerequisites

  • JDK 21+
  • PostgreSQL
  • Gradle
  • Docker (optional)

Local Development Setup

  1. Clone the repository:

    git clone https://github.com/Learnathon-By-Geeky-Solutions/devs
    cd devs
  2. Configure environment:

    # Copy example environment file
    cp .env.example .env
    
    # Edit with your database and API keys
    # Required: PostgreSQL connection, JWT secret, AI API keys
  3. Build and run:

    ./gradlew bootRun
  4. Access the application:


πŸ“‘ API Reference

Roamance provides a comprehensive RESTful API:

Key API Endpoints

Category Endpoint Pattern Description
Authentication /auth/** Login, refresh tokens, etc.
Users /users/** User management and profiles
Journals /travel/journals/** Travel journal operations
Itineraries /travel/itineraries/** Trip planning features
Social /social/posts/** Social sharing functionalities
Chat /social/chats/** Messaging system
AI /ai/** AI-powered recommendations

Full API documentation is available via Swagger UI at /swagger-ui.html when running the application.


πŸ”’ Data Security

Roamance implements robust security measures:

  • JWT Authentication - Secure, token-based authentication
  • Role-Based Access - Granular permission system
  • Encryption - Sensitive data encrypted at rest
  • Input Validation - Protection against injection attacks
  • HTTPS - Encrypted data transmission

πŸ€– AI Integration

Roamance leverages AI for enhanced user experiences:

  • Trip Recommendations - AI-generated travel itineraries
  • Content Analysis - Automatic tagging and categorization of travel posts
  • Image Understanding - Extract information from travel photos
  • Smart Search - Semantic search across travel content
  • Proofing Tools - AI assistance for travel writing

πŸ“„ License

Roamance is open-source software licensed under the MIT License. See the LICENSE file for details.


Made with ❀️ by the Roamance Team

Releases

No releases published

Packages

No packages published

Contributors 5

Languages