Sustainable Tourism Management for India's Fragile Ecosystems
A digital platform to manage tourist flow in ecologically sensitive areas of Jammu & Kashmir and Himachal Pradesh, preventing overcrowding and promoting sustainable tourism.
- About
- Core Features
- Supported Destinations
- Tech Stack
- Installation
- Usage
- Contributing
- Roadmap
- License
- Support
We need your help! GreenPass is an open-source project tackling real environmental challenges. Whether you're a developer, designer, or tourism enthusiastβyour contribution matters.
- π Bug Fixes: Registration validation, capacity calculations, alert systems
- π Security Improvements: Authentication, data encryption, input sanitization
- β¨ New Features: Payment integration, mobile app, GPS tracking, AI analytics
- π¨ UI/UX Enhancements: Accessibility, mobile responsiveness, design improvements
- π Documentation: Tutorials, API docs, translations (Hindi, Punjabi, Kashmiri)
- π¬ Community Support: Answer questions in Discussions
π Quick Start for Contributors
- Fork the repository using the GitHub Fork button
- Clone your fork locally:
git clone https://github.com/<your-username>/GreenPass.git cd GreenPass
- Read CONTRIBUTING.md and CODE_OF_CONDUCT.md
- Sync your fork with upstream regularly:
git remote add upstream https://github.com/monu808/GreenPass.git git fetch upstream git merge upstream/main
- Create a feature branch, make your changes, and commit them
- Push The branch , and open a Pull Request
- Report bugs using our Issue Template
π Read Full Contributing Guide
GreenPass helps manage tourist capacity in sensitive Himalayan regions to prevent environmental damage and ensure visitor safety. Built in response to flash floods and overcrowding incidents in Northern India.
- π Real-time Dashboard: Live occupancy tracking across destinations
- π Smart Registration: Pre-booking with ID verification and group support
- πΊοΈ Capacity Management: Automated slot allocation based on ecological sensitivity
- π Alert System: Weather advisories, capacity warnings, emergency notifications
| Location | Capacity | Sensitivity |
|---|---|---|
| Vaishno Devi | 1,000 | π΄ High |
| Manali | 800 | π‘ Medium |
| Shimla | 1,200 | π‘ Medium |
| Dharamshala | 600 | π΄ High |
| Spiti Valley | 200 | π£ Critical |
Frontend: Next.js 15, TypeScript, Tailwind CSS, TanStack Query (React Query)
Backend: Supabase (Auth + PostgreSQL), LRU Cache
UI: Radix UI, Lucide Icons, Recharts
Tools: NextAuth, date-fns, Turbopack
To maintain high performance and eliminate N+1 query patterns, we recommend the following database indexes:
-- Index for destination lookups in tourists table
CREATE INDEX idx_tourists_destination_id ON tourists(destination_id);
-- Index for status-based occupancy calculations
CREATE INDEX idx_tourists_status ON tourists(status) WHERE status IN ('checked-in', 'approved');
-- Index for temporal queries (latest weather, latest indicators)
CREATE INDEX idx_weather_data_destination_created ON weather_data(destination_id, created_at DESC);
CREATE INDEX idx_ecological_indicators_destination_created ON ecological_indicators(destination_id, created_at DESC);
-- Index for tourist lookups by user
CREATE INDEX idx_tourists_user_id ON tourists(user_id);# Clone repository
git clone https://github.com/monu808/GreenPass.git
cd GreenPass
# Install dependencies
npm install
# Setup environment
cp .env.example .env.local
# Add your Supabase credentials to .env.local
# Run development server
npm run dev
# Open http://localhost:3000Create a file named .env.local in the root directory and add the following keys (see .env.example):
| Variable | Description |
|---|---|
| Supabase | |
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL. |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Your Supabase API Anon Key. |
SUPABASE_SERVICE_ROLE_KEY |
Service Role Key (Keep this secret!). |
| Weather API | |
TOMORROW_API_KEY |
API Key from Tomorrow.io. |
NEXT_PUBLIC_TOMORROW_API_KEY |
Public Weather API Key. |
| App & Auth | |
NEXT_PUBLIC_APP_URL |
Base URL (e.g., http://localhost:3000). |
NEXTAUTH_URL |
Canonical URL for NextAuth (same as App URL). |
NEXTAUTH_SECRET |
Secret string for session encryption. |
| Google OAuth | |
GOOGLE_CLIENT_ID |
OAuth Client ID from Google Cloud. |
GOOGLE_CLIENT_SECRET |
OAuth Client Secret from Google Cloud. |
- Register with ID proof and travel details
- Select destination and date
- Receive digital permit via email
- Show QR code at entry
- Monitor dashboard for real-time occupancy
- Approve/reject registrations
- Send alerts and manage capacity
- Generate compliance reports
Phase 2: Mobile apps, payment gateway, QR check-in, GPS tracking
Phase 3: AI predictions, IoT sensors, multi-language, blockchain permits
MIT License - see LICENSE
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Docs: Contributing Guide
Built with β€οΈ for sustainable tourism in India
The easiest way to deploy this Next.js app is to use the Vercel Platform from the creators of Next.js.
- Push your code to a GitHub repository.
- Go to Vercel and import your project.
- Crucial: Add your Environment Variables (the ones listed above) in the Vercel Project Settings.
- Click Deploy.
For manual production builds:
npm run build
npm start