{"id":18622925,"url":"https://github.com/mirror45/big-trip","last_synced_at":"2026-05-18T11:05:52.940Z","repository":{"id":222290963,"uuid":"756338686","full_name":"Mirror45/big-trip","owner":"Mirror45","description":"🗺️ «Big Trip» — современный сервис для путешественников. Сервис помогает детально спланировать маршрут поездки, рассчитать стоимость проезда и получить информацию о достопримечательностях.","archived":false,"fork":false,"pushed_at":"2024-08-19T08:57:05.000Z","size":999,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-27T05:08:47.624Z","etag":null,"topics":["chartjs","flatpickr","js","momentjs","mvp","oop","rest-api","webpack"],"latest_commit_sha":null,"homepage":"https://big-trip-1.netlify.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mirror45.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":"Contributing.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-12T13:26:18.000Z","updated_at":"2024-08-19T08:57:09.000Z","dependencies_parsed_at":"2024-08-18T08:50:44.740Z","dependency_job_id":null,"html_url":"https://github.com/Mirror45/big-trip","commit_stats":null,"previous_names":["mirror45/big-trip"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirror45%2Fbig-trip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirror45%2Fbig-trip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirror45%2Fbig-trip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mirror45%2Fbig-trip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mirror45","download_url":"https://codeload.github.com/Mirror45/big-trip/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239418547,"owners_count":19635203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chartjs","flatpickr","js","momentjs","mvp","oop","rest-api","webpack"],"created_at":"2024-11-07T04:19:37.121Z","updated_at":"2026-05-18T11:05:52.935Z","avatar_url":"https://github.com/Mirror45.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✈️ Big Trip — Travel Planner\n\nA travel planning application that allows users to build route itineraries, calculate trip costs, view statistics, and work without an internet connection.\n\nBuilt with **Vanilla JavaScript** using the **MVP (Model-View-Presenter)** architectural pattern.\n\n## 🚀 Features\n\n### 🗺 Route Management\n- **View:** Display a list of all travel events.\n- **Create:** Add new route points with selectable types (Taxi, Bus, Train, Ship, Transport, Drive, Flight, Check-in, Sightseeing, Restaurant), destinations, dates, prices, and extra offers.\n- **Edit:** Modify existing points.\n- **Delete:** Remove route points.\n- **Favorites:** Mark specific points as favorites.\n\n### 🔍 Filtering \u0026 Sorting\n- **Filters:**\n  - `Everything` — all points.\n  - `Future` — upcoming trips.\n  - `Past` — completed trips.\n- **Sorting:**\n  - `Day` — by date (default).\n  - `Time` — by event duration.\n  - `Price` — by cost.\n\n### 📊 Statistics\nA dedicated statistics screen (powered by `Chart.js`), accessible via the menu:\n- **Money:** Chart showing expenses by transport/venue type.\n- **Type:** Chart showing usage count for each transport type.\n- **Time-spend:** Chart showing time spent on each activity.\n\n### 📡 Network \u0026 Offline Mode\n- Interacts with a REST API (fetches points, destinations, offers).\n- **Offline-first:** The app works without an internet connection.\n  - Uses `Service Worker` for static asset caching.\n  - Data is saved to `localStorage` (prefix: `big-trip-localstorage`).\n  - Automatic synchronization (`/points/sync`) occurs when the connection is restored.\n- Network status indicator in the browser tab title (`[offline]`).\n\n---\n\n## 🛠 Tech Stack\n\n### Core\n* **JavaScript (ES6+)** — Primary development language.\n* **MVP** — Architectural pattern (separation into Model, View, Presenter).\n* **Webpack 4** — Module bundler.\n\n### Libraries (Dependencies)\n* **dayjs** (`1.9.5`) — Date and time manipulation.\n* **flatpickr** (`4.6.6`) — Date and time picker component.\n* **Chart.js** (`2.9.4`) — Data visualization for statistics.\n* **he** (`1.2.0`) — HTML entity encoder/decoder (XSS protection).\n\n### Dev Tools\n* **ESLint** — Code linting (`htmlacademy` config).\n* **nanoid** — Unique ID generation.\n\n---\n\n## 🏗 Project Structure (`src/`)\n\n* `api/` — Server interaction and storage logic (`Api`, `Provider`, `Store`).\n* `model/` — Data models (`EventModel`, etc.).\n* `view/` — UI components (inherit from `AbstractView`).\n* `presenter/` — Presenters (manage logic for `TablePresenter`, `EventPresenter`).\n* `utils/` — Utility functions (dates, rendering, toast notifications).\n* `const.js` — Project constants (types, filters, sorting).\n* `main.js` — Application entry point.\n\n---\n\n## 🔧 Getting Started\n\n\u003e ⚠️ **Node.js v16** is required.\n\n```bash\n# Clone the repository to your local machine\ngit clone git@github.com:Mirror45/big-trip.git\n\n# Navigate into the cloned project directory\ncd big-trip\n\n# Install all dependencies\nnpm install\n\n# Start the development server\nnpm start\n\n# (Optional) Run linter to check code quality\nnpm run lint\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirror45%2Fbig-trip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirror45%2Fbig-trip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirror45%2Fbig-trip/lists"}