A full-stack web application that replicates the core functionalities of Practo, allowing users to find doctors using location and specialization.
- Doctor Search: Find doctors based on location and specialization.
- Core functionality replicating Practo.
- User-friendly interface for easy navigation.
- Responsive design for optimal user experience.
The backend server provides the following API endpoints:
- Method:
GET - Path:
/api/autocomplete - Parameters:
q(string): The search query.isregion(boolean): A flag to specify whether the search is for a region.
- Description: Provides autocomplete suggestions for cities, localities, or general queries.
- Method:
GET - Path:
/api/suggestions - Parameters:
city(string): The city for which to get suggestions.query(string): The type of query.
- Description: Provides top suggestions based on a city and query type.
- Method:
POST - Path:
/api/search/doctors - Request Body: A JSON object containing the search criteria.
- Description: Searches for doctors based on the provided criteria in the request body.
- Node.js and npm
- Java Development Kit (JDK)
- Maven
- Navigate to the
practo_demo_server/practo-demodirectory:cd practo_demo_server/practo-demo - Run the Spring Boot application:
./mvnw package
- Run the Spring Boot application:
java -jar target/practo-demo-0.0.1-SNAPSHOT.jar
- Navigate to the
practo-frontenddirectory:cd practo-frontend - Install the dependencies:
npm install
- Run the development server:
npm run dev
practo_demo_server: Contains the Spring Boot backend application.practo-frontend: Contains the Next.js frontend application.
A live demo of the application is available here: https://practo-clone-ui.onrender.com.
- https://practo-clone-9wxf.onrender.com/api/autocomplete?q=delhi
- https://practo-clone-9wxf.onrender.com/api/suggestions?city=delhi&query=doctors
- https://practo-clone-9wxf.onrender.com/api/search/doctors
This project was built incrementally, starting with the backend API and then developing the frontend user interface. Key milestones in the development process include:
- Initialization: Set up the initial Spring Boot and Next.js applications. (2 hours)
- Backend Development: Implemented the core API endpoints for doctors and appointments using webclient and custom object mapper. (15 hours)
- Frontend Development: Built the user interface for searching doctors and booking appointments, and mimicked the Practo user interface. Made it better responsive and smoother. (25 hours)
- UI Enhancements: Made several improvements to the user interface and fixed bugs. (5 hours)
- Finalization: Completed the UI and integrated the frontend with the backend. (10 hours)
Total development time: 42 hours.



