Skip to content

Repository files navigation

Torino Travel Agency

A modern travel booking platform built with Next.js, featuring tour search, user authentication, and booking management capabilities.

Features

  • Tour Search & Discovery: Browse and search for domestic and international tours
  • User Authentication: Secure login with OTP verification
  • Profile Management: User profile with personal and financial information
  • Booking System: Tour reservation and payment processing
  • Responsive Design: Mobile-first design with RTL support for Persian language
  • Real-time Updates: Connection status monitoring and data synchronization

Technology Stack

  • Framework: Next.js 15.5.4
  • React: 19.1.0
  • Styling: Tailwind CSS 4
  • State Management: TanStack React Query
  • Forms: React Hook Form with Yup validation
  • HTTP Client: Axios
  • Animations: Framer Motion
  • Date Handling: Zaman (Persian calendar)
  • Notifications: React Hot Toast

Project Structure

src/
├── app/                    # Next.js app router pages
│   ├── about-us/          # About us page
│   ├── basket/            # Shopping cart
│   ├── contact-us/        # Contact page
│   ├── payment/           # Payment processing
│   ├── profile/           # User profile pages
│   ├── services/          # Services page
│   └── tours/             # Tour details and listing
├── components/            # Reusable components
│   ├── atoms/             # Basic UI components
│   ├── layout/            # Layout components
│   ├── partials/          # Shared partials
│   └── templates/         # Page templates
├── core/                  # Core application logic
│   ├── config/            # API configuration
│   ├── services/          # API services
│   └── utils/             # Utility functions
└── hooks/                 # Custom React hooks

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository:
git clone <repository-url>
cd torino
  1. Install dependencies:
npm install
  1. Set up environment variables: Create a .env.local file in the root directory and add:
NEXT_PUBLIC_BASE_URL=your_api_base_url
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Key Features

Tour Search

  • Advanced search with origin and destination filtering
  • Date-based tour availability
  • Real-time tour data fetching

User Authentication

  • OTP-based authentication system
  • Secure token management with refresh tokens
  • Protected routes and session handling

Profile Management

  • Personal information editing
  • Financial information management
  • Account settings and preferences

Booking System

  • Shopping cart functionality
  • Payment processing
  • Booking confirmation and management

API Integration

The application uses a RESTful API with the following key endpoints:

  • /tour - Tour data and search
  • /auth - Authentication endpoints
  • /user - User profile management
  • /booking - Booking and payment processing

Styling and Design

  • Tailwind CSS: Utility-first CSS framework
  • RTL Support: Right-to-left layout for Persian language
  • Custom Fonts: Yekan, Vazir, and IRSans fonts
  • Responsive Design: Mobile-first approach
  • Component Library: Atomic design pattern

Development Guidelines

Code Organization

  • Use atomic design principles for component structure
  • Implement proper error handling and loading states
  • Follow React best practices and hooks patterns
  • Maintain consistent naming conventions

State Management

  • Use React Query for server state management
  • Implement proper caching strategies
  • Handle loading and error states consistently

Form Handling

  • Use React Hook Form for form management
  • Implement Yup validation schemas
  • Provide user-friendly error messages

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is private and proprietary.

Support

For support and questions, please contact the development team.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages