feat: add dynamic club pages#451
Open
madhukarnitp wants to merge 4 commits into
Open
Conversation
…tp-main-website-new into feat-club-management
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: revamp clubs module with dynamic club pages, shared club context, and API-driven navigation
Overview
This PR introduces a complete restructuring of the Student Clubs section by implementing dynamic club pages using the App Router, centralized club data management through context, and reusable components for club-specific information.
The clubs experience is now powered by backend APIs with caching support, enabling individual pages for each club including Overview, About, Team, Gallery, and Contact sections.
✨ What's Changed
🏛️ Dynamic Club Architecture
/Student/Clubs/[slug].notFound()handling for invalid club routes.🔄 Shared Club Context
ClubProviderto avoid prop drilling across club pages.useClub()hook for consuming club data throughout nested routes.🎨 New Club Experience
Implemented dedicated pages/components for:
Overview Page
About Page
Team Page
Gallery Page
Contact Page
📱 Sidebar Navigation
🌐 API Integration Improvements
🗂️ Data Transformation Utilities
Added helper functions to normalize backend responses.
Standardized club data across the application.
Improved handling for:
🧭 Navbar Enhancements
🧹 Cleanup
📂 Files Added
Dynamic Club Pages
src/app/Student/Clubs/[slug]/layout.jssrc/app/Student/Clubs/[slug]/page.jssrc/app/Student/Clubs/[slug]/ClubHero.jssrc/app/Student/Clubs/[slug]/ClubSidebar.jssrc/app/Student/Clubs/[slug]/ClubProvider.jsxAbout Module
src/app/Student/Clubs/[slug]/about/page.jssrc/app/Student/Clubs/[slug]/about/ClubAbout.jsTeam Module
src/app/Student/Clubs/[slug]/team/page.jssrc/app/Student/Clubs/[slug]/team/ClubTeam.jsGallery Module
src/app/Student/Clubs/[slug]/gallery/page.jssrc/app/Student/Clubs/[slug]/gallery/ClubGallery.jsContact Module
src/app/Student/Clubs/[slug]/contact/page.jssrc/app/Student/Clubs/[slug]/contact/ClubContact.jsServices & Utilities
src/app/Student/Clubs/services/clubService.jssrc/app/Student/Clubs/utils/clubHelpers.jsSupporting Layouts
src/app/Student/Clubs/layout.jssrc/app/Student/Clubs/loading.jsx📂 Files Updated
Clubs Listing
src/app/Student/Clubs/page.jsGlobal Navigation
src/app/components/global/Navbar.jsx🗑️ Files Removed
src/app/Student/Clubs/sliderData.jssrc/app/Student/Clubs/style.css✅ Testing Performed
Result
This PR modernizes the Student Clubs module by introducing a scalable, API-driven architecture with improved maintainability, reusable components, and a significantly enhanced user experience across club pages and navigation.
📷 Screeenshots