Customer-facing web application for discovering and booking rural services.
🔗 Live Demo: https://ruralsync.vercel.app/
RuralSync Client is the customer-facing portal of the RuralSync platform - a marketplace connecting rural communities with local service providers. Customers can discover services, book appointments, track their bookings, and leave reviews.
- Smart Search - Find services by name, category, or description
- Location-Based Search - Discover services near you with geo-location
- Advanced Filters - Filter by price range, rating, category, and distance
- Provider Profiles - View detailed information about service providers
- Easy Booking - Book services with preferred date and time
- Availability Check - Real-time availability checking
- Booking History - View past and upcoming bookings
- Booking Status - Track booking progress (Pending → Confirmed → In Progress → Completed)
- Secure Authentication - JWT-based auth with HTTP-only cookies
- Profile Management - Update personal information and profile image
- Reviews & Ratings - Rate and review completed services
- Password Management - Change password securely
- Responsive Design - Works seamlessly on desktop and mobile
- Dark Mode - Toggle between light and dark themes
- Modern UI - Beautiful interface built with shadcn/ui components
| Technology | Purpose |
|---|---|
| Next.js 15 | React framework with App Router |
| React 19 | UI library |
| TypeScript | Type safety |
| Tailwind CSS | Styling |
| shadcn/ui | UI component library |
| Zustand | State management |
| React Hot Toast | Notifications |
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd RS-Monolith/client
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Configure your
.env.local:NEXT_PUBLIC_API_URL=http://localhost:5000
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
npm run build
npm startclient/
├── app/ # Next.js App Router pages
│ ├── book/ # Booking flow
│ ├── bookings/ # User bookings list
│ ├── dashboard/ # User dashboard
│ ├── login/ # Authentication
│ ├── register/ # User registration
│ ├── search/ # Service search
│ ├── services/ # Service listings
│ └── providers/ # Provider profiles
├── components/ # Reusable components
│ ├── ui/ # shadcn/ui components
│ ├── map/ # Map components
│ └── ... # Feature components
├── lib/ # Utilities
│ ├── api-service.ts # API client
│ └── utils.ts # Helper functions
├── store/ # Zustand stores
├── types/ # TypeScript types
└── public/ # Static assets
| Project | Description | Link |
|---|---|---|
| RuralSync API | Backend API server | https://ruralsyncapi.vercel.app/ |
| Provider Portal | Service provider dashboard | https://ruralsync-service-provider.vercel.app/ |
| Agent App | Agent mobile/web app | https://agent-rural-sync.vercel.app/ |
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_API_URL |
Backend API URL | http://localhost:5000 |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is part of the RuralSync platform.
Made with ❤️ for Rural Communities