Leverage AI-generated trip recommendations, explore the world with an interactive 3D globe, and build detailed, personalized itineraries.
The backend for this project powers AI recommendations, manages user data, and integrates with external APIs.
Wooster's frontend provides users with an interactive interface to explore destinations and plan trips. It includes an "Explore" page featuring a 3D globe where users can visualize destinations and trip details. The application fetches data from the Gemini backend via an Express.js API to generate trips and display detailed destination data.
-
Explore Destinations:
- A 3D interactive globe using
three.js
andglobe.gl
. - Leaflet integration for detailed maps and destination exploration.
- A 3D interactive globe using
-
Trip Planning:
- AI-powered trip generation using Gemini.
- Interactive forms and suggestions powered by React Hook Form and Zod for input validation.
-
Responsive Design:
- Tailwind CSS for dynamic styling and responsive layout.
-
State Management:
- Centralized state management using React's reducer pattern.
-
Destination Summaries:
- Fetch and display detailed summaries for each destination based on AI-generated data.
-
User Trips:
- View planned trips and explore detailed trip itineraries with a focus on user-friendly navigation.
-
AI art:
- Dog art generated using Stable Diffusion.
To get started with the Wooster frontend, clone the repository and install the required dependencies:
git clone https://github.com/yourusername/wooster-frontend.git
cd wooster-frontend
npm install
Ensure that you also have the backend service (Gemini) set up for API interaction.
To start the development server, run:
npm run dev
This will start a Vite-powered development environment with hot module reloading for seamless development.
npm run dev
: Start the development server.npm run build
: Build the project for production (TypeScript compilation followed by Vite build).npm run lint
: Lint the code using ESLint.npm run lint:fix
: Automatically fix linting issues.npm run format
: Format the code using Prettier.npm run type-check
: Run TypeScript type checking without emitting any files.npm run vitest
: Run Vitest testing suitenpm run vitest:full
: Run the Vitest testing suite in verbose mode, showing all test names (including passing tests).npm run vitest:ui
: Open the Vitest interactive testing UI.npm run test:coverage
: Run the Vitest testing suite with coverage reporting.
Contributions are welcome! If you'd like to improve the app, feel free to submit a pull request or file an issue. Please follow the established coding conventions and make sure all changes are thoroughly tested.
This project is licensed under the MIT License. See the LICENSE file for details.