Troubleshooting
Relevant source files
The following files were used as context for generating this wiki page:
This document provides guidance for troubleshooting common issues related to the Grapevine website, for both end-users and developers. It covers procedures for reporting problems, understanding usage restrictions, resolving development environment issues, and managing data privacy concerns. All information is derived from the site's source code and official policy documents.
User Support and Contact Channels
Users experiencing issues or having questions can utilize several contact channels. The primary methods are the "Book a discovery call" form and direct email for formal complaints or data privacy inquiries.
Contact Form
The contact form is the main interactive channel for users to initiate contact, primarily for booking a discovery call. Understanding its functionality is key to troubleshooting submission problems.
Sources: components/contact-form.tsx, app/contact/page.tsx
Form Submission Flow
The form captures user data, validates it on the client-side, and submits it to a backend API endpoint.
The diagram below illustrates the sequence of events when a user submits the contact form.
Sources: components/contact-form.tsx:100-132
Form Validation
The form enforces several validation rules before submission can occur. If any of these rules are not met, an error message is displayed, and the submission is blocked.
| Field | Validation Rule | Error Message |
|---|---|---|
fullName | Must not be empty. | "Full name is required" |
workEmail | Must not be empty and must be a valid email format. | "Work email is required" or "Please enter a valid email address" |
companyName | Must not be empty. | "Company name is required" |
iAmA | An option must be selected. | "Please select an option" |
role | Must not be empty. | "Role is required" |
message | Limited to a maximum of 250 characters. | (No error message, but input is capped) |
Sources: components/contact-form.tsx:64-98, components/contact-form.tsx:143-147
Formal Complaints and Inquiries
For issues that cannot be resolved via the contact form, or for formal matters, direct email is the specified channel.
| Issue Type | Contact Point | Details | Source |
|---|---|---|---|
| General Complaints | info@grapevine.travel | For any complaints about the service provided. | [app/policy/terms/page.tsx:288-291](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/app/policy/terms/page.tsx#L288-L291) |
| Data Protection | info@grapevine.travel | Contact the Data Protection Officer (Jack Dow) for privacy concerns or to exercise data rights. | [app/policy/privacy/page.tsx:39-42](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/app/policy/privacy/page.tsx#L39-L42) |
| Security Issues | info@grapevine.travel | To report security vulnerabilities or misuse as per the Computer Misuse Act 1990. | [app/policy/terms/page.tsx:273-277](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/app/policy/terms/page.tsx#L273-L277) |
User Access and Policy Compliance
Access to the Grapevine website is conditional upon adherence to the Terms and Conditions and Acceptable Use Policy. Violations can lead to suspension or termination of access.
Sources: app/policy/terms/page.tsx, app/acceptable-use-policy/page.tsx
Suspension and Termination Flow
If a user is believed to be in breach of the Acceptable Use Policy, the company may take several actions.
This flowchart shows the potential consequences of a policy breach.
Prohibited Actions
Users are explicitly forbidden from performing certain actions. Engaging in these activities constitutes a breach of terms. Key prohibitions include:
- Using the site for any unlawful or fraudulent purpose.
- Harming or attempting to harm minors.
- Copying, modifying, duplicating, or reselling any part of the site.
- Transmitting harmful data or material (e.g., viruses, spam).
- Attempting to gain unauthorized access to the server or connected databases.
- Contributing content that is defamatory, obscene, offensive, or infringes on intellectual property.
Sources: app/acceptable-use-policy/page.tsx:55-80, app/policy/terms/page.tsx:72-76, app/policy/terms/page.tsx:278-281
User Responsibilities
Users are responsible for their own system's security and configuration.
- Security: Users must treat all identification codes and passwords as confidential.
- Software: Users must configure their own computer and software to access the site and are advised to use their own virus protection software. The site does not warrant compatibility with all user software or device configurations.
Sources: app/policy/terms/page.tsx:90-98, app/policy/terms/page.tsx:100-103
Technical and Development Issues
This section is for developers working on the project, covering environment setup and common scripts.
Sources: README.md, package.json
Development Environment Setup
The project is a Next.js application built with TypeScript and styled with Tailwind CSS. To troubleshoot local setup issues, ensure the prerequisites are met and the correct scripts are used.
Prerequisites:
- Node.js 18+
- A package manager like npm, yarn, pnpm, or bun.
Sources: README.md:13-15
The first step in troubleshooting a local development environment is to ensure all dependencies are correctly installed:
npm install
Sources: README.md:18-20
Available Scripts
The package.json file defines several scripts for managing the development lifecycle. Using the wrong script for a task can cause issues.
| Command | Description | Source |
|---|---|---|
npm run dev | Starts the development server at http://localhost:3000. | [package.json:5](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L5), [README.md:28](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L28) |
npm run build | Creates a production-ready build of the application. | [package.json:6](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L6), [README.md:29](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L29) |
npm run start | Starts the production server (requires a prior build). | [package.json:7](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L7), [README.md:30](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L30) |
npm run lint | Runs ESLint to check for code quality and style issues. | [package.json:8](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L8), [README.md:31](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L31) |
npm run format | Formats all code using Prettier. | [package.json:9](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L9), [README.md:32](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L32) |
npm run format:check | Checks code formatting without making changes. | [package.json:10](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/package.json#L10), [README.md:33](https://github.com/grapevinetravel/grapevine_website/blob/HEAD/README.md#L33) |
Data Privacy and Cookie Management
Troubleshooting for users may involve concerns about personal data or site functionality related to cookies.
Managing Personal Data
The Privacy Policy grants users specific rights over their personal data. If a user has an issue with how their data is handled, they can take the following actions:
- Request Access: To their personal data.
- Request Correction: Of inaccurate data.
- Request Erasure: Of their personal data.
- Object to Processing: Of their data.
To exercise these rights, the user must email info@grapevine.travel. The company aims to respond within one month.
Sources: app/policy/privacy/page.tsx:470-485
Cookie-Related Issues
The website uses cookies for functionality, performance, and targeting. Users who block cookies may experience issues with site features.
- Strictly necessary cookies: Required for core operations like logging in. Disabling these may prevent a user from using the service.
- Functionality cookies: Used to remember user preferences.
- Analytical/performance cookies: Help improve the website by tracking user interaction.
If a user blocks cookies and experiences problems, they should be aware that some features may not work as intended. The site recommends visiting aboutcookies.org for instructions on how to control and delete cookies.
Sources: app/policy/cookies/page.tsx:40-77, app/policy/cookies/page.tsx:102-110