Luca is a full-stack Tourist Guide website that provides users with comprehensive features to explore and book tour packages. The project includes customized dashboards for guests, hosts, and admins, ensuring role-based authorization and advanced data handling.
- User Dashboards: Fully customized dashboards for guests, hosts, and admins with role-based authorization.
- Tour Package Management: Create, update, delete tour packages, and add stories.
- Secure Authentication: User authentication using Firebase Auth.
- Payment Integration: Buy tour packages using Stripe payment gateway.
- Advanced Data Fetching: Efficient data fetching with Tanstack Query and JWT token for API protection.
- Frontend: React, Tailwind CSS, ShadCN UI
- Backend: Node.js, Express.js, MongoDB
- Authentication: Firebase
- Payment: Stripe
Ensure you have the following installed on your machine:
- Node.js (v14 or higher)
- npm (v6 or higher)
- Git
Clone the repository from GitHub and navigate to the project directory:
git clone https://github.com/anawrulkabir/luca.git
cd luca
To configure the necessary environment variables, follow these steps:
-
Create the
.env.local
file:Inside the
luca
directory, create a file named.env.local
.touch .env.local
-
Add the following environment variables to the
.env.local
file:VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain VITE_FIREBASE_PROJECT_ID=your_firebase_project_id VITE_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id VITE_FIREBASE_APP_ID=your_firebase_app_id VITE_API_URL=your_backend_api_url VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key VITE_IMGBB_API_KEY=your_imgbb_api_key
Replace the placeholders (
your_firebase_api_key
,your_backend_api_url
, etc.) with your actual configuration values.
Install the required dependencies:
npm install
Start the development server:
npm run dev
Once the server is running, you can access the application by visiting http://localhost:3000 in your web browser.