Skip to main content

Welcome to Roadtrip Planner Documentation

Roadtrip Planner is a Rails 8 application for planning and managing road trips, built with modern web technologies and containerized for easy development.

What is Roadtrip Planner?

This application provides users with the ability to:

  • Plan Road Trips: Create and organize multi-day road trips with detailed routes
  • Manage Routes: Define starting locations, destinations, and timing for each leg of the journey
  • Track Progress: Monitor trip progress and manage route details
  • Export Data: Generate GPX files for use with GPS devices and mapping applications

Key Features

User Authentication - Secure registration and login system
Component-Based Architecture - Built with Phlex components for maintainable, reusable UI
Modern Styling - Tailwind CSS v4 with responsive design
Containerized Development - Docker-based development environment
PostgreSQL Database - Robust data storage with proper relationships
Comprehensive Testing - RSpec test suite with FactoryBot

Technology Stack

  • Backend: Rails 8.0.2.1 with Ruby 3.4.x
  • Database: PostgreSQL 17
  • Frontend: Phlex components, Tailwind CSS v4, Stimulus.js
  • Authentication: Custom implementation with bcrypt
  • Testing: RSpec with FactoryBot
  • Containerization: Docker & Docker Compose

Quick Start

Get up and running in minutes:

git clone https://github.com/mnaray/roadtrip_planner.git
cd roadtrip_planner
docker compose up

Open http://localhost:3000 to view the application.

Documentation Structure

This documentation is organized into several key sections:

  • Getting Started: Set up your development environment and learn about contributing
  • Architecture: Understand the application's design, patterns, and CI/CD pipeline
  • Models: Deep dive into the data layer with User, RoadTrip, and Route models
  • Services: Learn about business logic services for calculations and data export
  • Components: Explore the Phlex component system with examples and usage patterns
  • Development: Testing procedures and deployment instructions

Contributing

We welcome contributions! Please see our Contributing Guide to get started.

License

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