manikanta.
← All workNext project →
Front end · In progressFront end

MediCare HMS

The patient-facing half of a hospital management system: browsing doctors, booking appointments, registering, and a protected dashboard behind a login. It began as a plain HTML and Bootstrap site and was rebuilt in React to stop copying the same navbar and footer into every page.

Role
Solo: front end, application architecture
Timeline
In progress, 2026
Status
Front end live · backend in progress
10
Routes
5
Behind auth
8
Breakpoints tested
2
Custom hooks
The problem

The original build was plain HTML and Bootstrap, which meant the navbar, footer and card markup were copy-pasted across every page. Changing a nav link was a find-and-replace across the whole site, and the pages had already started to drift apart.

So the rebuild was about structure rather than features: shared layout as components, data fetching behind one reusable hook, and routing that moves between views without a page reload.

Architecture
STAGE 01

Component refactor

Persistent layout, the Navbar and Footer, lifted into shared components, and each page reduced to its own concern: doctor listing, single profile, registration, appointment, dashboard.

STAGE 02

Data & interaction

A useFetch hook centralises loading and error state; useDebounce holds search input for 500ms before filtering. useMemo keeps the filtered list off the critical path, and pagination renders four doctors at a time instead of the whole set.

STAGE 03

Routing & access

React Router 7 drives ten client-side routes. A ProtectedRoute wrapper gates five of them and redirects unauthenticated visitors to login.

Evaluation
MeasureResultMethod
Responsive range8 widths360–1400px, no h-scroll
Search debounce500msuseDebounce hook
Routes gated5 of 10ProtectedRoute wrapper
List page size4 per pagePagination
Stack
  • React 19
  • Vite 8
  • React Router 7
  • Bootstrap 5.3
  • Axios
  • Font Awesome
  • ESLint
  • Vercel
Deployment

Continuously deployed to Vercel from the main branch, with a preview deployment on every push. Doctor data is currently served from a local JSON file. There is no backend yet, and the login is a localStorage flag rather than real authentication.

What I'd do next

Want the walkthrough? I'll show you the repo.