Полнофункциональное приложение для планирования поездок с учетом бюджета и предпочтений.
- Фронтенд: React + TypeScript + React Router
- Бэкенд: Express.js + TypeScript + Nodemon
- База данных: In-memory (структуры данных JavaScript)
- API: RESTful API с CORS поддержкой
./start-app.sh- Запуск бэкенда:
cd travelforge-backend
npm install
npm run dev- Запуск фронтенда:
cd travelforge-mfe
npm install
npm start- ✅ Поиск городов по бюджету и предпочтениям
- ✅ Детальная информация о городах
- ✅ Настройка распределения бюджета
- ✅ Конвертер валют
- ✅ TravelBot (чат-бот для советов)
- ✅ Сохранение поездок
- ✅ Интерактивная карта
- ✅
GET /api/cities- список всех городов - ✅
GET /api/cities/search- поиск городов - ✅
GET /api/cities/:id- информация о городе - ✅
GET /api/trips- сохраненные поездки - ✅
POST /api/trips- сохранение поездки - ✅
DELETE /api/trips/:id- удаление поездки - ✅
GET /api/currencies/rates- курсы валют - ✅
GET /api/currencies/convert- конвертация валют - ✅
POST /api/travelbot/ask- вопрос TravelBot
- Фронтенд: http://localhost:3000
- Бэкенд API: http://localhost:5000
- Health Check: http://localhost:5000/health
project/
├── travelforge-mfe/ # React фронтенд
│ ├── src/
│ │ ├── components/ # React компоненты
│ │ ├── pages/ # Страницы приложения
│ │ ├── context/ # React Context
│ │ ├── services/ # API сервисы
│ │ └── types.ts # TypeScript типы
│ └── package.json
├── travelforge-backend/ # Express бэкенд
│ ├── src/
│ │ ├── controllers/ # API контроллеры
│ │ ├── models/ # Модели данных
│ │ ├── routes/ # API маршруты
│ │ ├── services/ # Бизнес логика
│ │ └── types/ # TypeScript типы
│ └── package.json
└── start-app.sh # Скрипт запуска
- Типизация: Полная типизация TypeScript на фронтенде и бэкенде
- CORS: Настроен для работы с localhost:3000
- Обработка ошибок: Graceful fallback на localStorage при недоступности API
- Валидация: Валидация входных данных на бэкенде
- Структуры данных: In-memory хранение с возможностью расширения
Отредактируйте travelforge-backend/src/models/CityModel.ts
Отредактируйте travelforge-backend/src/models/CurrencyModel.ts
Отредактируйте travelforge-backend/src/services/TravelBotService.ts
curl "http://localhost:5000/api/cities/search?budget=1000&startDate=2024-01-01&endDate=2024-01-07&prefCulture=70&prefNature=30&prefParty=50"curl -X POST http://localhost:5000/api/trips \
-H "Content-Type: application/json" \
-d '{
"cityId": "lisbon",
"params": {
"budget": 1000,
"startDate": "2024-01-01",
"endDate": "2024-01-07",
"origin": "Москва",
"prefCulture": 70,
"prefNature": 30,
"prefParty": 50
},
"adjustedBudget": {
"flights": 40,
"lodging": 30,
"food": 15,
"local": 10,
"buffer": 5
},
"total": 1000
}'curl -X POST http://localhost:5000/api/travelbot/ask \
-H "Content-Type: application/json" \
-d '{"question": "Где попробовать местную кухню?"}'Все ошибки TypeScript были исправлены:
- ✅ Добавлена типизация для всех API методов
- ✅ Добавлены недостающие типы в
types.ts - ✅ Исправлены неиспользуемые переменные
- ✅ Проект успешно компилируется
- TS2345: Argument of type 'unknown' - добавлена типизация к API сервису
- TS18046: 'response' is of type 'unknown' - добавлены типы возвращаемых значений
- ESLint warnings - исправлены неиспользуемые переменные
- Интеграция с реальной базой данных (PostgreSQL/MongoDB)
- Аутентификация пользователей
- Интеграция с реальными API валют
- Интеграция с AI для TravelBot
- Мобильная версия
- Тестирование (Jest/Cypress)