Itihaas is a comprehensive Indian heritage tourism platform that connects travelers with India's rich cultural heritage, monuments, and historical sites. The platform offers guided tours, merchandise, interactive maps, and a unique reward system to enhance the tourism experience.
- Interactive Heritage Map: Explore UNESCO World Heritage sites and monuments across India
- Guided Tours: Connect with certified tour guides for personalized experiences
- Booking System: Reserve visits to monuments and heritage sites
- Multilingual Support: Available in English and Hindi
- User Reviews & Ratings: Share experiences and read reviews from other travelers
- News Integration: Stay updated with latest heritage and tourism news
- Heritage Merchandise: Shop for traditional Indian clothing and souvenirs
- Shopping Cart: Add items and manage your shopping experience
- Order Management: Track orders and view order history
- Payment Integration: Secure payment processing
- User Registration & Authentication: Secure login system with email verification
- Profile Management: Upload profile pictures and manage personal information
- Guide Registration: Special registration for tour guides
- Admin Dashboard: Comprehensive admin panel for platform management
- AI Chatbot: Get instant assistance and information about heritage sites
- WhatsApp Integration: Receive booking confirmations via WhatsApp
- Automated Messaging: Scheduled notifications and updates
- Itihaas Coins: Reward system for user engagement and activities
- Festival Calendar: Discover festivals and celebrations across India
- Video Content: Educational videos about heritage sites
- Photo Galleries: Visual exploration of monuments and sites
- Audio Narration: Guided audio tours for monuments
- Flask: Python web framework
- SQLAlchemy: Database ORM
- Flask-Login: User authentication
- Flask-WTF: Form handling and CSRF protection
- Flask-Babel: Internationalization support
- HTML5/CSS3: Modern responsive design
- JavaScript: Interactive user experience
- Bootstrap: UI framework for responsive layouts
- Google Maps API: Interactive mapping and location services
- GNews API: Real-time news integration
- WhatsApp Business API: Messaging integration
- SQLite: Development database
- SQLAlchemy: Database management and migrations
- Python 3.8 or higher
- pip (Python package manager)
- Git
-
Clone the repository
git clone <repository-url> cd itihaas
-
Navigate to the project directory
cd project -
Create a virtual environment
python -m venv venv
-
Activate the virtual environment
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the project directory with the following variables:FLASK_APP=main.py FLASK_ENV=development SECRET_KEY=your-secret-key-here EMAIL_USER=your-email@gmail.com EMAIL_PASSWORD=your-app-password GOOGLE_MAPS_API_KEY=your-google-maps-api-key GNEWS_API_KEY=your-gnews-api-key
-
Initialize the database
python main.py
-
Run the application
flask run
The application will be available at http://localhost:5000
itihaas/
โโโ project/
โ โโโ main.py # Application entry point
โ โโโ config.py # Configuration settings
โ โโโ requirements.txt # Python dependencies
โ โโโ models.py # Database models
โ โโโ website/
โ โโโ __init__.py # Flask app factory
โ โโโ views.py # Main route handlers
โ โโโ auth.py # Authentication routes
โ โโโ merchandise.py # E-commerce functionality
โ โโโ chatbot.py # AI chatbot integration
โ โโโ whatsapp.py # WhatsApp messaging
โ โโโ automated_messaging.py # Automated notifications
โ โโโ models.py # Database models
โ โโโ merchandise_models.py # E-commerce models
โ โโโ static/ # Static files (CSS, JS, images)
โ โโโ templates/ # HTML templates
โโโ README.md
- Explore heritage sites across India
- Filter by categories (temples, forts, palaces, etc.)
- Get detailed information about each site
- View location coordinates and directions
- Reserve visits to monuments
- Select preferred dates and times
- Choose number of visitors
- Receive confirmation via email and WhatsApp
- Certified guides can register on the platform
- Users can browse and book guides
- Guide profiles with experience and specializations
- Rating and review system for guides
- Traditional Indian clothing and accessories
- Secure shopping cart functionality
- Order tracking and history
- Multiple payment options
- Earn coins for various activities
- Redeem coins for discounts and rewards
- Track coin balance and transaction history
SECRET_KEY: Flask secret key for session managementEMAIL_USER: Gmail address for sending emailsEMAIL_PASSWORD: Gmail app passwordGOOGLE_MAPS_API_KEY: Google Maps API keyGNEWS_API_KEY: GNews API key for news integration
All of these are read from the environment (or project/.env); nothing is hard-coded.
Without EMAIL_USER/EMAIL_PASSWORD, sign-up skips the emailed verification code.
The application uses SQLite by default for development. For production, you can configure other databases like PostgreSQL or MySQL
by setting DATABASE_URL.
project/vercel.jsondeploys the Flask app withproject/as the root directory.project/public/staticis a symlink towebsite/static: Vercel servespublic/from its CDN, so images, CSS and video don't go through the function. (The folder has to exist in the repo; one created by a build command is not picked up.)- Database: set
DATABASE_URL(or connect a Postgres store under the Vercel project's Storage tab, which setsPOSTGRES_URL) and the tables are created and the shop seeded on first start. Without one, each Vercel instance uses its own SQLite file in/tmp: fine for a quick look, but accounts and bookings don't carry across instances or cold starts. Uploads always go to/tmpon Vercel. - The map uses Google Maps when
GOOGLE_MAPS_API_KEYis set and accepted, and falls back to OpenStreetMap (sites only, no directions) when it isn't. - News comes from GNews when
GNEWS_API_KEYworks and from Google News RSS (no key) otherwise; results are cached for 30 minutes. - The admin login (
itihaasdairy@gmail.com) uses the password inADMIN_PASSWORD; without it the admin login is disabled. The live deployment runs in Vercel's Sydney region, next to the database. - The pages use web-sized videos from
website/static/media(about 30 MB in total, versus over 300 MB for the originals, which stay in Git LFS). - Phones:
static/css/mobile.cssadds the compact header, stacked map controls, swipeable shop categories and readable text. The site is installable as an app (web manifest, icons, service worker with an offline page): "Add to Home Screen" on iOS, "Install app" on Android. - WhatsApp confirmations (pywhatkit) need a desktop with a display:
pip install -r requirements-whatsapp.txt.
POST /sign-up: User registrationPOST /login: User loginPOST /logout: User logoutPOST /verify-email: Email verification
GET /index: Heritage sites listingPOST /book: Create new bookingGET /booking-history: View booking historyPOST /guide-signup: Guide registration
GET /shop: Product catalogGET /product/<id>: Product detailsPOST /add-to-cart: Add to shopping cartPOST /checkout: Process order
GET /review: View all reviewsPOST /api/reviews: Submit new review
- Fork the repository
- Create a 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 licensed under the MIT License - see the LICENSE file for details.
- CEO: Project leadership and strategy
- CTO: Technical architecture and development
- CRO: Revenue optimization and business development
- Curator: Content management and heritage expertise
For support and queries:
- Email: itihaasdairy@gmail.com
- Website: Itihaas Platform
- Mobile app development
- Virtual reality tours
- Advanced AI recommendations
- Social media integration
- Multi-language support expansion
- Advanced analytics dashboard
Itihaas - Preserving India's Heritage, One Journey at a Time ๐ฎ๐ณ