A modern, responsive website for Leo PVT Hostel in Montreal, built with Next.js 14, TypeScript, and Tailwind CSS.
- Responsive Design: Mobile-first approach with full responsiveness across all devices
- Multi-language Support: English and French language options
- Real-time Booking Widget: Interactive booking system with availability checking
- Room Showcase: Detailed room presentations with image galleries and amenities
- Location Integration: Interactive maps and nearby attractions
- Customer Testimonials: Dynamic testimonial carousel with ratings
- FAQ Section: Expandable FAQ with common questions
- Contact Forms: Multiple contact options with email integration
- Next.js 14 App Router: Latest Next.js features for optimal performance
- TypeScript: Full type safety throughout the application
- Tailwind CSS: Utility-first CSS with custom design system
- Analytics Integration: GA4, GTM, Facebook Pixel, and Microsoft Clarity
- SEO Optimized: Meta tags, Open Graph, structured data
- Performance: Image optimization, lazy loading, code splitting
- Security: HTTPS, security headers, input validation
- Accessibility: WCAG 2.1 compliant
leo.pvthostel.com/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── layout.tsx # Root layout with providers
│ │ ├── page.tsx # Homepage
│ │ └── globals.css # Global styles
│ ├── components/ # React components
│ │ ├── Analytics.tsx # Analytics tracking setup
│ │ ├── Header.tsx # Navigation header
│ │ ├── Footer.tsx # Site footer
│ │ ├── Hero.tsx # Hero section with carousel
│ │ ├── BookingWidget.tsx# Booking search widget
│ │ ├── RoomShowcase.tsx # Room display grid
│ │ ├── Amenities.tsx # Amenities listing
│ │ ├── Location.tsx # Map and location info
│ │ ├── Testimonials.tsx # Guest reviews carousel
│ │ ├── FAQ.tsx # Frequently asked questions
│ │ └── CTA.tsx # Call-to-action section
│ ├── lib/ # Utility libraries
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Helper functions
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
├── clickup-integration.js # ClickUp project management
├── next.config.js # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Dependencies and scripts
- Clone the repository
git clone https://github.com/yourusername/leo-pvthostel.git
cd leo-pvthostel- Install dependencies
npm install- Set up environment variables
cp .env.example .envEdit .env with your actual values:
- Analytics IDs (GA4, GTM, Facebook Pixel, Clarity)
- Email service credentials
- API keys
- Run development server
npm run devOpen http://localhost:3000 to view the site.
The project includes a comprehensive ClickUp integration for project management:
- Setup ClickUp workspace
npm run clickup:setupThis creates:
- Project space with folders
- Development, Content, and Testing lists
- Custom fields for tracking
- Pre-populated tasks
- Sync with ClickUp
npm run clickup:sync- Install Vercel CLI
npm i -g vercel- Deploy to production
npm run deploy- Preview deployment
npm run deploy:preview- Build the application
npm run build- Start production server
npm run startnpm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run typecheck- Check TypeScript typesnpm run format- Format code with Prettiernpm run test- Run testsnpm run clickup:setup- Setup ClickUp projectnpm run deploy- Deploy to Vercel
Edit tailwind.config.ts to modify the color palette:
- Primary: Blue shades for main branding
- Secondary: Purple shades for accents
- Accent: Yellow shades for highlights
The site uses:
- Inter for body text
- Poppins for headings
All text content is in the component files and can be easily modified.
- Create GA4 property at analytics.google.com
- Add measurement ID to
NEXT_PUBLIC_GA4_ID
- Create GTM container at tagmanager.google.com
- Add container ID to
NEXT_PUBLIC_GTM_ID
- Create pixel at business.facebook.com
- Add pixel ID to
NEXT_PUBLIC_FB_PIXEL_ID
- Create project at clarity.microsoft.com
- Add project ID to
NEXT_PUBLIC_CLARITY_ID
- HTTPS enforcement
- Security headers (HSTS, CSP, etc.)
- Input validation and sanitization
- Rate limiting on API routes
- Environment variable protection
- XSS protection
- Semantic HTML structure
- ARIA labels and roles
- Keyboard navigation support
- Screen reader compatibility
- Color contrast compliance
- Focus indicators
# Run all tests
npm run test
# Run with coverage
npm run test:coverage
# Watch mode
npm run test:watch- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is proprietary and confidential. All rights reserved by PVT Hostel.
For support, email: support@leo.pvthostel.com
- Next.js team for the amazing framework
- Vercel for hosting and deployment
- Tailwind CSS for the utility-first CSS framework
- All contributors and testers
Last Updated: January 2025 Version: 1.0.0 Status: Production Ready