https://capstone2024-five.vercel.app

Doctor Finder is a comprehensive web application that connects patients with healthcare providers based on specialty, location, insurance acceptance, and other criteria. Built with Next.js and Firebase, the platform offers a seamless, user-friendly experience for both patients seeking medical care and doctors looking to expand their practice.
- Advanced Search: Filter doctors by specialty, location, insurance, availability, and ratings
- Interactive Maps: See doctor locations with Google Maps integration
- Patient Reviews: Read and leave reviews for doctors you've visited
- Appointment Scheduling: Request appointments directly through the platform
- User Profiles: Save your favorite doctors and medical preferences
- Professional Profiles: Create comprehensive profiles showcasing your expertise, education, and services
- Availability Management: Set your working hours and appointment slots
- Patient Communication: Respond to patient inquiries and appointment requests
- Review Management: View and respond to patient reviews
- Analytics Dashboard: Track profile views and appointment requests
- Frontend: Next.js 15.1.6, React 18.3.12, TypeScript 5.6.3
- Styling: TailwindCSS 3.4.1, ShadCN UI components
- Backend: Firebase 11.0.1 (Authentication, Firestore, Cloud Functions)
- Deployment: Vercel
- Maps Integration: Google Maps Embed API v1
- Geolocation: IPGeolocation.io API
- Code Quality: ESLint 8, Prettier 3.3.3
- Clone the repository
git clone https://github.com/markie-dev/capstone2024.git- Navigate to the project directory
cd capstone2024/doctor-finder- Install dependencies
npm install- Create environment variable file
touch .env.local- Add the following environment variables to the .env.local file
FIREBASE_API_KEY=<your-firebase-api-key>
FIREBASE_AUTH_DOMAIN=<your-firebase-auth-domain>
FIREBASE_PROJECT_ID=<your-firebase-project-id>
FIREBASE_STORAGE_BUCKET=<your-firebase-storage-bucket>
FIREBASE_MESSAGING_SENDER_ID=<your-firebase-messaging-sender-id>
FIREBASE_APP_ID=<your-firebase-app-id>
FIREBASE_MEASUREMENT_ID=<your-firebase-measurement-id>
GOOGLE_MAPS_API_KEY=<your-google-maps-api-key>
IPGEOLOCATION_API_KEY=<your-ipgeolocation-api-key>
Note: Your Google Maps key only needs to have embed capabilities
Note: You can obtain an IPGeolocation API key from ipgeolocation.io
- Deploy and set up Firebase Cloud Functions
cd functions
npm install
firebase deploy --only functions- Return to project root and start the development server
cd ..
npm run dev- Open your browser and navigate to
http://localhost:3000
The application is designed to be deployed on Vercel:
- Create a Vercel account and connect it to your GitHub repository
- Set up all environment variables in the Vercel dashboard
- Deploy the application with automatic updates on push to main branch
app/: Main application code and pagesapi/: Next.js server actions for Firebase, Google Maps, and geolocationcomponents/: Reusable UI components (buttons, forms, doctor cards, etc.)functions/src/: Firebase Cloud Functions (including doctor rating updates)hooks/: Custom React hooks (including toast notifications)public/: Static assets and images.env.local: Environment variables configurationnext.config.mjs: Next.js configurationpackage.json: Project dependencies and scriptstsconfig.json: TypeScript configuration.eslintrc.js: ESLint rules for code quality.prettierrc: Prettier configuration for code formatting
- Create a Firebase project at firebase.google.com
- Enable Authentication services (Email/Password, Google Sign-in)
- Create Firestore collections for doctors, users, reviews, and appointments
- Configure Firestore Security Rules to secure your data
- Set up Cloud Functions for background processes
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run linting checks before committing
npm run lint- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request