Welcome to HomeFinder Kenya – a web application designed to help users easily find rental properties across Kenya. Whether you're searching for a new home or managing property listings, HomeFinder provides a seamless experience.
- Project Overview
- Features
- Technology Stack
- Getting Started
- API Documentation
- User Roles
- Contributing
HomeFinder Kenya is a platform that connects property seekers with available rental properties. Users can search for properties, book viewings, and manage their accounts, while property owners and agents can list and manage properties.
- User Authentication
- Secure registration and login with email verification.
- Property Search
- Advanced search filters by location, price, property type, and amenities.
- View properties in list or map view.
- Property Listings
- Add and manage property listings with images and detailed descriptions.
- Verified property status for trustworthy listings.
- Booking System
- Schedule viewings and manage bookings.
- Admin Dashboard
- Manage users, properties, and track admin activities.
- Frontend: React.js, Tailwind CSS, Redux Toolkit
- Backend: Node.js, Hono Framework, Drizzle ORM
- Database: PostgreSQL
- Authentication: JSON Web Tokens (JWT)
- Optional Payments: Stripe
- Node.js (v14+)
- PostgreSQL
-
Clone the repository:
git clone https://github.com/yourusername/homefinder-kenya.git cd homefinder-kenya
-
Frontend Setup:
Navigate to the
frontend
directory and install dependencies:cd frontend npm install
Start the development server:
npm start
-
Backend Setup:
Navigate to the
backend
directory and install dependencies:cd backend npm install
Set up your PostgreSQL database and update the
.env
file with your credentials.Run database migrations:
npm run migrate
Start the backend server:
npm run dev
POST /register
: Register a new user.POST /login
: Log in and receive a JWT token.POST /verify-email
: Verify a user's email with a token.
GET /properties
: Get all properties with filters.POST /properties
: Create a new property listing.PUT /properties/:id
: Update a property listing.DELETE /properties/:id
: Delete a property listing.
POST /bookings
: Book a viewing for a property.GET /bookings
: Get all bookings for a user.
GET /admin/logs
: Retrieve admin activity logs.
- Admin: Full control over the platform, including managing users, properties, and bookings.
- Agent: Can manage property listings and confirm bookings.
- User: Can search for properties, book viewings, and manage their profile.
We welcome contributions to HomeFinder Kenya! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add feature'
). - Push to your branch (
git push origin feature/your-feature
). - Open a Pull Request.