Git Product home page Git Product logo

mkaomwakuni / hao_fiti Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 20.4 MB

Welcome to Hao Fiti, an ideal solution for house hunting and renting within the vibrant city of Nairobi. Developed in Kotlin, this user-friendly app transforms the house-hunting experience for foreigner & residents, Built with a focus on modern architecture and user-centric design towards immersive journey into finding your ideal home.

Kotlin 100.00%
courotines firebase-database material-design mvvm-architecture real-estate rental-housing room-database

hao_fiti's Introduction

🏚️ The Haofy -PROJECT UNDER CONSTRUCTION

Your Gateway to Effortless House Hunting and Renting in Nairobi!

📸 App Screenshots

Coolum 1 Coolum 2 Coolum 3 Coolum 4
Screen 1 Screen 2 Screen 3 Screen 4
Screen 5 Screen 6 Screen 7 Screen 8

🔄Features

  • Property Listings: View properties available for rent or sale with detailed information.
  • Search Functionality: Search for properties based on location, type, and other criteria.
  • Interactive Map: Display properties on a map with geofencing for specific areas.
  • Property Details: View comprehensive details about each property including amenities and agent contact information.
  • Bookmarking: Save favorite properties for easy access later.
  • Offline Access: Access saved properties without an internet connection.
  • Animations: Smooth and engaging animations for UI transitions.
  • Categorization: Filter properties based on categories such as apartments, villas, bungalows, and bedsitters.

🛠 Functionalities

  • Firebase Integration: Real-time data synchronization using Firebase Realtime Database.
  • Authentication: Secure user authentication with Firebase.
  • Data Filtering: Efficient filtering of property listings to exclude deleted or null entries.
  • Custom Animations: Use of built-in and custom animations to enhance user experience.
  • Geofencing: Define and highlight specific geographic areas on the map.
  • Agent Contact: Get in touch with property agents.
  • Amenities Grouping: Group amenities within each property object, with randomization for certain amenities.

Tech Stack.

  • Kotlin: Primary language for Android development.
  • Android Studio: Integrated Development Environment (IDE) for Android development.
  • Jetpack Compose: Modern toolkit for building native UI in a declarative way.
  • Android KTX: Provides concise, idiomatic Kotlin extensions to Jetpack and Android platform APIs.
  • AndroidX: Major improvement to the original Android Support Library, providing backward compatibility and other features.
  • Material Library: Modular and customizable Material Design UI components for Android.
  • Lifecycle: Lifecycle-aware components that help manage UI-related data and respond to changes in lifecycle status.
  • ViewModel: Manages UI-related data in a lifecycle-conscious way.
  • LiveData: Lifecycle-aware data holder with an observer pattern.
  • Room Database: Abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
  • Navigation Components: Helps implement navigation within your app, from simple button clicks to more complex patterns.
  • Kotlin Coroutines: Concurrency design pattern that simplifies asynchronous code execution.
  • Kotlin Flows: A reactive streams API in Kotlin, used to handle streams of data asynchronously.
  • WorkManager: API for deferrable background work that needs guaranteed execution.
  • Hilt: Dependency injection library that simplifies the process of manual dependency injection.
  • Gson: Library for converting Java Objects into JSON and vice versa.
  • Coil: Fast and lightweight image loading library for Android.
  • Firebase: Backend platform offering services such as real-time database, authentication, and cloud storage.
  • Timber: Extensible logging library for Android.
  • Notifications: Components for creating and managing notifications in Android apps.
  • Google Maps SDK: SDK for integrating maps and location services into Android apps.
  • GitHub Actions: Automation platform for CI/CD, enabling you to build, test, and deploy code directly from GitHub.

🚀Skills

  • Android Development
  • Kotlin Programming
  • Jetpack Compose
  • UI/UX Design
  • Firebase Integration
  • Geolocation and Mapping
  • JSON Parsing
  • MVVM Architecture
  • Dependency Injection

🎨Technologies

  • MVVM Architecture: For a clean separation of concerns and easier testing.
  • Jetpack Compose: For building native UIs with less code and powerful tools.
  • Firebase Realtime Database: For real-time data synchronization.
  • Google Maps SDK: For geolocation and mapping functionalities.
  • Room Database: For offline storage and caching.
  • Kotlin Coroutines For simplified asynchronous programming and concurrency.
  • Dependency Injection with Hilt: For better code maintainability and testability.
  • Material Design: For modern and consistent UI/UX components.

🛠️ Installation

Open the project in Android Studio.

  1. Clone the repository to your local machine
  2. git clone https://github.com/mkaocodes/Hao-Fiti.git
  3. Open the project in Android Studio.

🔥 Configure Firebase

  1. Add the google-services.json file to the app directory.
  2. Follow Firebase setup instructions for Android here.

🏗 Build the project

  1. Ensure all dependencies are installed and synced.
  2. Run the project on an emulator or a physical device.

📱 Usage

  • Search Properties: Use the search bar to find properties based on your criteria.
  • View Property Details: Click on a property to see detailed information.
  • Bookmark Properties: Click the bookmark icon to save properties for later.
  • View Bookmarked Properties: Navigate to the bookmarks section to see saved properties.
  • Use the Map: View properties on the map and interact with geofenced areas.
  • Schedule Appointments Schedule Appointments with agents.
  • Chat or Calls with Agent via App Intiate chat with agent or make a call.

🤝 How to Contribute

Contributions are welcome! Please open an issue or submit a pull request.

hao_fiti's People

Contributors

mkaomwakuni avatar yesim02 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

hao_fiti's Issues

User Login and Signup

Objective:

  • Develop a user authentication feature that allows new users to sign up and existing users to log in to the app.

Signup Functionality:

  • Create a signup screen where new users can register using their email address and password.
  • Implement form validation to ensure valid input (e.g., valid email format, password strength).
  • Display error messages for invalid inputs.
  • Ensure secure password handling (e.g., password hashing before storing).

Login Functionality:

  • Create a login screen for existing users to sign in using their registered email and password.
  • Implement "Forgot Password" functionality that allows users to reset their password.
  • Provide form validation for login inputs.

Backend Integration:

  • Connects the login and signup functionality to the Auth service via Firebase Authentication.

Layouts sects

The following interfaces are to be implemented under this issue

  • Map Details
  • Settings
  • User profile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.