A travel companion web app
  • JavaScript 91.4%
  • HTML 7.1%
  • CSS 1%
  • Shell 0.2%
  • Dockerfile 0.1%
  • Other 0.1%
Find a file
2026-03-05 15:12:57 +01:00
.claude fix: document counter ignore hidden documents 2026-02-12 22:16:21 +01:00
client chore: bump packages 2026-03-05 14:48:58 +01:00
server fix: SSR links 2026-03-05 15:12:57 +01:00
.dockerignore feat: dockerignore 2025-04-05 15:54:19 +02:00
.gitignore first commit 2025-03-12 13:50:44 +01:00
docker-compose.yml fix: docker command 2026-03-02 17:10:23 +01:00
docker-entrypoint.sh fix: docker command 2026-03-02 17:14:27 +01:00
Dockerfile fix: update dockerfile for android apk 2026-03-02 16:36:03 +01:00
LICENSE feat: license 2025-03-13 22:19:49 +01:00
package-lock.json feat: personal budgets 2025-07-11 11:39:18 +02:00
package.json feat: better budget UI for mobile 2025-03-17 19:20:04 +01:00
README.md feat: updated readme pics 2026-01-15 21:29:49 +01:00
start.sh fix: start.sh 2025-03-28 12:15:06 +01:00
structure fix: trip images 2025-03-12 16:32:03 +01:00

Travel Companion

Overview

Travel Companion allows you to manage every aspect of your travel, from transportation and lodging to daily activities and checklists. It features real-time collaboration, budget tracking, and offline support, making it the perfect tool for solo travelers and groups alike.

Key Features

  • Trip Management: Create detailed itineraries with drag-and-drop organization using the timeline view.
  • Collaborative Planning: Share trips with friends and family with granular permission controls (View/Edit).
  • Budget & Expenses: Track spending in real-time with multi-currency support and categorical breakdowns.
  • Documents: Store and link PDF tickets, reservations, and files directly to trip items.
  • Offline Mode: Access your full itinerary and saved documents without an internet connection.
  • Brainstorming: A collaborative canvas for ideas, notes, and locations before the plan is finalized.
  • Calendar: Visual overview of all your upcoming trips.
  • Mobile Friendly: Fully responsive design with a dedicated mobile experience, including map integration.

Technical Stack

  • Frontend: React, Tailwind CSS, Zustand
  • Backend: Node.js, Express
  • Database: SQLite
  • Infrastructure: Docker

Getting Started

  1. Clone the repository.
  2. Configure your environment variables in docker-compose.yml or create an .env file.
  3. Run the start script:
    ./start.sh
    
    The application will be accessible at http://localhost:5000.

Local Development

  1. Install dependencies:
    npm run install-all
    
  2. Create a .env file in the server directory (or root, depending on setup) with the required variables.
  3. Start the development server:
    npm run dev
    
    • Frontend: http://localhost:3000
    • Backend: http://localhost:5000

Configuration

To run the application, you must configure the following environment variables.

General

Variable Description Default Required
NODE_ENV Environment mode (production or development) development No
PORT Port for the backend server 5000 No
JWT_SECRET Secret key for session signing - Yes
FRONTEND_URL Public URL of the app (used in emails) - Yes

Email Service (SMTP)

Required for sending invitations and trip updates.

Variable Description Example
EMAIL_HOST SMTP server hostname smtp.gmail.com
EMAIL_PORT SMTP port 587 or 465
EMAIL_USER SMTP username user@gmail.com
EMAIL_PASS SMTP password or App Password secret
EMAIL_FROM Sender address Traveler <noreply@app.com>
EMAIL_QUEUE_DURATION_MS Batch email notification delay (ms) 3600000 (1hr)
EMAIL_PROCESS_INTERVAL_MS Notification processing interval (ms) 300000 (5min)

Client / Frontend

These variables must be available at build time (or runtime for Docker).

Variable Description Required
VITE_MAPBOX_TOKEN Mapbox public token for map views Yes (if using maps)
VITE_API_URL Backend API URL (for local dev) No (defaults to /api)

License

MIT License.