A modern web application for managing guided hiking experiences. Built with React, TypeScript, and Firebase.
- User authentication and role-based access control
- Hike booking and management system
- Guide assignment and scheduling
- Real-time notifications
- Responsive design with modern UI
- Secure payment processing
- Waiver signing system
The frontend is organized in a modular way, making it easy to modify different sections of the website. Here's where to find the main modifiable components:
About.tsx: Main about page content and sectionsHikes.tsx: Hikes listing page and filteringHikeDetail.tsx: Individual hike details and informationBookHike.tsx: Hike booking form and processLogin.tsx: Login page and authenticationRegister.tsx: User registration formGuideRegistration.tsx: Guide application formDonate.tsx: Donation page contentJoinUs.tsx: Join us/volunteer page content
Navbar.tsx: Main navigation bar and menuFooter.tsx: Footer content and linksHero.tsx: Landing page hero sectionMission.tsx: Mission statement sectionGetInvolved.tsx: Get involved/volunteer sectionAddHikeModal.tsx: Form for adding new hikesNotificationBell.tsx: Notification system UIProtectedRoute.tsx: Route protection logic
Contains reusable UI components that can be customized:
- Buttons
- Forms
- Cards
- Modals
- Navigation elements
src/index.css: Global stylessrc/App.css: App-specific stylestailwind.config.ts: Tailwind CSS configuration
- React 18
- TypeScript
- Vite
- Firebase (Authentication, Firestore, Storage)
- TailwindCSS
- Shadcn/ui Components
- React Query
- React Router
- React Hook Form
- Zod for validation
- Clone the repository:
git clone https://github.com/ashwi/CapstoneWebPlatform.git
cd CapstoneWebPlatform- Install dependencies:
npm install- Start the development server:
npm run dev- Build for production:
npm run buildThe application is deployed using GitHub Pages. To deploy:
npm run deployThis will build the application and deploy it to GitHub Pages.
Create a .env file in the root directory with the following variables:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_idMIT