Welcome to Pujo Atlas - your ultimate guide for Pandal Hopping during Durga Puja in Kolkata! This open-source project aims to provide a comprehensive and user-friendly webapp that lists all the Durga Pujas happening around Kolkata and offers a host of features to make your pandal hopping experience seamless and enjoyable.
-
Initialize Venues
- For each venue, set:
score = 100
score_floor = 0
updated_at = current_time
last_score = 0
(initially no score change)
- For each venue, set:
-
Search Result Click Handling
- When a user clicks on a venue (e.g., venue B):
- Increment
score
of the clicked venue (B):B.score += 2
B.last_score += 2
(increment reflects the change)
- Decrement
score
of other venues (A, C):A.score -= 1
A.last_score -= 1
(decrement reflects the change)C.score -= 1
C.last_score -= 1
(decrement reflects the change)
- Set
B.updated_at = current_time
- Increment
- When a user clicks on a venue (e.g., venue B):
-
Direction/Navigation Button Click Handling
- When a user clicks on the direction/navigation button for a venue (e.g., venue D):
- Increment
D.score
:D.score += 3
D.last_score += 3
(increment reflects the change)
- Set
D.updated_at = current_time
- Increment
- When a user clicks on the direction/navigation button for a venue (e.g., venue D):
-
Breaking Ties on Score
- If venues have the same score:
- Sort by
updated_at
(most recent positive activity). - Increment the score of the most recently updated venue by 1:
most_recent_venue.score += 1
most_recent_venue.last_score += 1
(increment reflects the change)
- Sort by
- If venues have the same score:
-
Time-Based Exploration Logic
- For each venue, check the time since the last update:
- If
current_time - venue.updated_at > X hours
:- Calculate
positive_updates_count
in the last2X hours
. - For each positive update in this period, decrement the score:
venue.score -= positive_updates_count
venue.last_score -= positive_updates_count
(decrement reflects the change)
- Ensure
venue.score
does not go belowscore_floor
:if venue.score < venue.score_floor: venue.score = venue.score_floor
- Calculate
- If
- For each venue, check the time since the last update:
-
Repeat Steps as Necessary
- Continuously monitor and update scores based on user interactions and the time elapsed since the last update.
For help, discussion about best practices, or any other conversation that would benefit PujoAtlasKol-Web: Join the Pujo Atlas Discord Server
We 💖 contributors! Feel free to contribute to this project but please read the Contributing Guidelines before opening an issue or PR so you understand the branching strategy and local development environment. We also welcome you to join our Discord community for either support or contributing guidance.
This project is licensed under the MIT License - see the LICENSE file for details.
A special thank you to Netlify, Cloudflare, and Sentry for sponsoring Pujo Atlas!
Pujo Atlas is an open source project that is free to use and ad-free. We rely on the support of our users to keep the project running and to make it better. If you like what we do and want to support us, you can do so by donating to our project. For any doubts or queries regarding donating to Pujo Atlas, please enquire in our Discord Server.