An interactive web application designed to plan and experience Durga Puja pandal hopping in Kolkata and other districts with smart route optimization, interactive maps, and personalized itineraries. This project aims to make the festival more accessible and enjoyable by helping visitors discover pandals, create efficient custom routes, and navigate the city with ease.
β‘οΈ Live Demo: https://pujaparikrama.online/
-
πΊοΈ Smart Route Planning: Automatically generates the most efficient route to visit multiple pandals based on your selected start point, area, and time frame.
-
π Interactive Maps: Utilizes Leaflet.js to display pandal locations, your generated route, and allows for interactive exploration.
-
π Time Management: Set your desired start and end times to get an optimized plan that fits your schedule, complete with estimated travel and visit times for each stop.
-
β€οΈ Personalized "My Plan": Add pandals from the suggested list to a custom plan. Your plan can be re-optimized, downloaded as a PDF, or shared via WhatsApp and other social media.
-
π Secure Firebase Authentication:
- Email/Password sign-up and login.
- One-click sign-in with Google OAuth.
- Persistent login sessions and a personalized profile page.
-
Pandal Gallery & Search: Browse through a gallery of pandals and use the search bar to quickly find specific ones on the map or in the gallery.
-
π Cultural Insights: A dedicated Mahavidya Section provides rich descriptions and stories of the ten divine forms of the Goddess, enhancing the cultural experience.
-
πΈ Donation Support: An integrated, animated "Buy me a Mishti" button opens a modal with options to support the project via Razorpay payment links.
-
π¨ Modern UI/UX:
- A sleek liquid glassmorphism theme.
- Fully responsive, mobile-first design.
- Engaging animations on the hero section, buttons, and modals.
- Frontend: HTML5, CSS3, Vanilla JavaScript (ES6 Modules)
- Authentication: Firebase Authentication
- Mapping: Leaflet.js
- PDF Generation: jsPDF & html2canvas
- Styling: Custom CSS with Flexbox, Grid, Glassmorphism, and Keyframe Animations
- Deployment: Hosted on Netlify (with custom headers configured in
_headers)
(Note: Replace with your actual project screenshots)
- Landing Page
- Login / Signup Modal
- Planner & Itinerary View
- Interactive Map View
- Mahavidya Section
- Profile Page
Follow these steps to set up and run the project locally.
- Git installed on your machine.
- A code editor like VS Code with the Live Server extension.
git clone https://github.com/your-username/puja-parikrama-planner.git
cd puja-parikrama-plannerThe codebase is organized as follows:
puja-parikrama-main/
βββ index.html # Landing Page
βββ planner.html # Main Planner Application
βββ data.json # Pandal data, coordinates, and descriptions
βββ css/
β βββ style.css # Styles for the landing page
β βββ planner-style.css # Styles for the planner application
βββ js/
β βββ auth.js # Firebase Authentication logic
β βββ planner.js # Core itinerary, map, and PDF logic
β βββ ui.js # UI interactions for the landing page
βββ _headers # Netlify custom headers for caching
βββ sitemap.xml # SEO sitemap
βββ robots.txt # SEO instructions for crawlers
βββ README.md
This project requires a Firebase backend for authentication.
- Go to the Firebase Console and create a new project.
- In your project, go to Build > Authentication.
- Click the Sign-in method tab and enable Email/Password and Google as sign-in providers.
- Go to Project Settings (click the gear icon βοΈ) > General.
- Under "Your apps," click the web icon (
</>) to create a new web app. - Copy the
firebaseConfigobject provided. - Paste this object into
js/auth.jsandjs/planner.js, replacing the placeholder configuration. - In the Firebase Console, go back to Authentication > Settings > Authorized domains and add the domain where you will host your site (e.g.,
localhostfor local testing, and your Netlify URL for production).
Open the project folder in VS Code and use the Live Server extension to launch index.html. The app will now be running on a local development server.
You can easily customize key parts of the application:
- Pandal Data: To add, remove, or edit pandals, modify the
corePandalsarray indata.json. - Starting Points: To change the available starting locations, update the
startingPointsobject indata.json. - Donation Links: The Razorpay payment links are stored in the
paymentLinksobject insidejs/planner.js. You can replace these with your own. - Contact Email: The "Contact Us" feature sends an email using a
mailto:link. To change the recipient, update therecipientEmailvariable at the end ofjs/planner.js. - Styling: All visual styles can be modified in
css/style.css(for the landing page) andcss/planner-style.css(for the planner app).
This project is optimized for deployment on platforms like Netlify.
- Push your code to a GitHub repository.
- Sign up or log in to Netlify.
- Click "New site from Git" and choose your repository.
- Netlify will automatically detect the build settings. Just click "Deploy site."
- The
_headersfile is already configured to set optimal caching policies for your assets.
Contributions are welcome! If you have ideas for new features or find a bug, please follow these steps:
- Fork the repository.
- Create a new feature branch:
git checkout -b feature/your-awesome-feature - Make your changes and commit them:
git commit -m "Add: Your awesome feature" - Push to the branch:
git push origin feature/your-awesome-feature - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
- Firebase for providing a robust and easy-to-use authentication backend.
- Leaflet.js for the powerful and lightweight mapping library.
- The countless Durga Puja committees and artists whose creativity makes this festival a global spectacle.