Skip to content
/ TravelUs Public

๐ŸŒ A group travel management app - organize trips, track expenses, share documents, and chat with your travel group all in one place

Notifications You must be signed in to change notification settings

d-evm/TravelUs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 

Repository files navigation

TravelUs ๐ŸŒโœˆ๏ธ

A comprehensive group travel management web application that simplifies travel planning by bringing all your travel needs into one unified platform.

๐Ÿ“‹ Table of Contents

๐ŸŽฏ About

TravelUs is a solo-developed group travel management application designed to eliminate the hassle of coordinating group trips. Whether you're planning a family vacation, corporate retreat, or adventure with friends, TravelUs provides all the tools you need to organize, communicate, and manage your travel experience seamlessly.

What TravelUs Can Do

  • Centralized Group Management: Create travel groups and invite members through secure invite links
  • Document Organization: Upload and store important travel documents (flight tickets, hotel bookings, etc.) with PDF preview
  • Smart Expense Tracking: Track shared expenses with automatic balance calculations and settle-up functionality
  • Interactive Itinerary Planning: Create detailed travel itineraries with destinations, dates, and activities
  • Real-time Communication: In-group chat system for travel planning
  • Secure Authentication: JWT-based user authentication and role-based access control

โœจ Features

๐Ÿ‘ค User Management

  • User registration and authentication with JWT
  • Profile management and customization
  • Secure group joining via invite links

๐Ÿ‘ฅ Group Management

  • Create and manage travel groups
  • Generate shareable invite links
  • Admin role assignment and permissions
  • Member management and group settings

๐Ÿ“„ Document Management

  • PDF upload and storage (flight tickets, hotel bookings, visas, etc.)
  • Document preview and organization
  • Cloud storage integration for reliable access

๐Ÿ“ Travel Itinerary

  • Add destinations with dates and details
  • Activity planning and scheduling
  • Visual timeline view of your trip
  • Collaborative itinerary editing

๐Ÿ’ธ Expense Tracking

  • Record and categorize shared expenses
  • Automatic balance calculations
  • Split expenses among group members
  • Settle-up functionality with payment tracking

๐Ÿ’ฌ Communication

  • Real-time group chat
  • Message history and search
  • Implemented using Sockets

๐Ÿ› ๏ธ Tech Stack

Backend

  • Framework: Spring Boot (Java)
  • Security: Spring Security with JWT authentication
  • Database: PostgreSQL with Hibernate/JPA ORM
  • Build Tool: Maven
  • File Storage: Supabase
  • Real-time Communication: WebSocket/STOMP
  • Testing: JUnit + Mockito

Frontend (In Development)

  • Framework: React.js
  • Styling: TailwindCSS
  • State Management: Redux Toolkit
  • HTTP Client: Axios
  • Real-time: Socket.IO
  • Notifications: Firebase

DevOps & Deployment

  • Backend Hosting: Render.com / Railway (planned)
  • Frontend Hosting: Vercel / Netlify (planned)
  • Database: Supabase
  • Version Control: Git + GitHub

๐Ÿ“‚ Project Structure

TravelUs/
โ”‚
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ java/
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ com/
โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ travelus/
โ”‚   โ”‚   โ”‚   โ”‚           โ””โ”€โ”€ backend/
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ config/          # Security & WebSocket configuration
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ controllers/     # REST API endpoints
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ dtos/           # Data Transfer Objects
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ models/         # JPA Entity classes
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ repositories/   # Data access layer
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ security/       # JWT & Auth utilities
โ”‚   โ”‚   โ”‚   โ”‚               โ”œโ”€โ”€ services/       # Business logic layer
โ”‚   โ”‚   โ”‚   โ”‚               โ””โ”€โ”€ utils/          # Helper utilities
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ resources/
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ application.properties      # App configuration
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ static/                     # Static resources
โ”‚   โ”‚   โ””โ”€โ”€ test/                               # Unit & integration tests
โ”‚   โ”œโ”€โ”€ pom.xml                                 # Maven dependencies
โ”‚   โ””โ”€โ”€ target/                                 # Compiled classes (ignored in git)
โ”‚
โ””โ”€โ”€ frontend/                                   # React app (coming soon)

๐Ÿš€ Getting Started

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • PostgreSQL 12+
  • Git

Installation & Setup

  1. Clone the repository

    git clone https://github.com/yourusername/travelus.git
    cd travelus/backend
  2. Database Setup

    # Create PostgreSQL database
    createdb travelus_db
    
    # Update application.properties with your database credentials
  3. Configure Application Properties

    # refer to application-sample.properties
    
    # src/main/resources/application.properties
    spring.datasource.url=jdbc:postgresql://localhost:5432/travelus_db
    spring.datasource.username=your_username
    spring.datasource.password=your_password
    
    # JWT Configuration
    jwt.secret=your_jwt_secret_key
    jwt.expiration=86400000
    
    # File Upload Configuration
    spring.servlet.multipart.max-file-size=10MB
    spring.servlet.multipart.max-request-size=10MB
  4. Build and Run

    # Using Maven
    mvn clean install
    mvn spring-boot:run
  5. Verify Installation

    • Application will start on http://localhost:8080
    • Access Swagger UI at http://localhost:8080/swagger-ui.html (if configured)

๐Ÿ“š API Documentation

Testing the APIs

Since the frontend is currently in development, you can test the APIs using:

Swagger UI (Recommended)

  • Navigate to http://localhost:8080/swagger-ui.html
  • Interactive API documentation with testing capabilities

Postman

  • Import the API collection
  • Base URL: http://localhost:8080/api

Key Endpoints

Authentication:
POST /api/auth/register - User registration
POST /api/auth/login - User login

Groups:
GET /api/groups - Get user's groups
POST /api/groups - Create new group
GET /api/groups/{id} - Get group details
POST /api/groups/{id}/invite - Generate invite link

Expenses:
GET /api/groups/{groupId}/expenses - Get group expenses
POST /api/groups/{groupId}/expenses - Add new expense
PUT /api/expenses/{id} - Update expense

Itinerary:
GET /api/groups/{groupId}/itinerary - Get group itinerary
POST /api/groups/{groupId}/itinerary - Add itinerary item

๐Ÿ”ฎ Future Enhancements

  • Google Maps Integration: Location tagging and directions
  • AI-Powered Suggestions: Smart itinerary recommendations using OpenAI API
  • Multi-Currency Support: International travel expense tracking
  • Offline Capabilities: Progressive Web App (PWA) functionality
  • Mobile App: Native iOS and Android applications
  • Advanced Analytics: Travel statistics and insights

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

โญ If you found this project helpful, please give it a star!

About

๐ŸŒ A group travel management app - organize trips, track expenses, share documents, and chat with your travel group all in one place

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages