Skip to content
This repository has been archived by the owner on Mar 27, 2024. It is now read-only.
/ flathunter Public archive

The only program you'll need to find a flat in Germany as a student

License

Notifications You must be signed in to change notification settings

yzaimoglu/flathunter

Contributors Forks Stargazers Issues BSD-3-Clause LICENSE


Logo


WORK IN PROGRESS
The only program you'll need to find a flat in Germany as a student.
Explore the docs »

Cloud Version · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

Flathunter is an open source software project created by two students that helps students find flats easily by crawling different real estate websites. It works by allowing the user to enter the URLs of the real estate websites they want to monitor, and then crawls these websites to save the flat listings. Whenever a new listing is posted on one of the platforms, the user is notified.

Flathunter is designed to be easy to use and customizable. The user can specify their search criteria, such as location, price, and number of bedrooms on the real estate website of their choice. After that they only need to copy the URL, Flathunter will do the rest. This is one of the features making Flathunter flexible and adaptable.

Flathunter is divided into three: Server, Client & Frontend. It is designed to be scalable, allowing it to handle a large number of users and real estate websites without compromising performance. Flathunter currently works with Ebay-Kleinanzeigen, WG-Gesucht and Immobilienscout24. The current notification methods supported are Discord Webhooks and HTTP Requests. More will be added in the future.

The project is open source, which means that anyone can contribute to it by adding new features, fixing bugs, and improving the code. It is hosted on a public repository on GitHub, where users can view the source code, report issues, and contribute to the project. Flathunter is licensed under the BSD-3-Clause license, which allows anyone to use, modify, and distribute the software for any purpose.

TL;DR Flathunter is a valuable tool for students who are searching for affordable housing. Its ability to monitor multiple real estate websites and notify users when new listings are posted makes it a time-saving and efficient tool. Its open source nature also ensures that it will continue to evolve and improve as more people contribute to the project.

Flathunter Screenshot

(back to top)

Built With

Backend:

  • Go
  • ArangoDB
  • Redis

Frontend:

  • JavaScript
  • Vue
  • Nuxt
  • Tailwind

General:

  • Docker
  • Swagger

(back to top)

Getting Started

Getting started with Flathunter is very easy. Make sure to have the prerequisites for your deployment of choice installed. After that follow the installation steps provided by us.

Prerequisites

If you want to deploy using the provided Dockerfiles or the Docker Compose file you only need:

  • Make MacOS: xcode-select --install Linux distros: should be preinstalled More Info: gnu.org
  • Docker & Docker Compose More Info: docs.docker.com

If you want to run Flathunter on bare-metal, you'll need:

  • Make MacOS: xcode-select --install Linux distros: should be preinstalled More Info: gnu.org
  • Node (Tested and functional on v16.15.0) MacOS: brew install node@16 Debian based Linux distros: apt-get install node More Info: nodejs.org
  • npm (Tested and functional on v8.5.5)
    npm install npm@latest -g
  • Go (Tested and functional on v1.20.2) MacOS: brew install go Debian based Linux distros: apt-get install go More Info: go.dev

(back to top)

Installation Docker

  1. Clone the git repository at https://github.com/yzaimoglu/flathunter
    git clone https://github.com/yzaimoglu/flathunter.git
  2. Navigate to the base directory and run the following command: (The command can take a while, be patient)
    make docker-build
  3. Copy the env.example file into .env and change the environment variables to your liking
    cp env.example .env
  4. Use the following make command to start Flathunter by using docker compose:
    make docker-up

(back to top)

Installation Bare-Metal

  1. Clone the git repository at https://github.com/yzaimoglu/flathunter
    git clone https://github.com/yzaimoglu/flathunter.git
  2. Run the following make command to install all necessary modules and packages:
    make install
  3. Copy the env.example file into .env and change the environment variables to your liking
    cp env.example .env
  4. Try running the different services in development mode using the following make commands:
    make dev-server
    make dev-client
    make dev-frontend
  5. If everything works in development mode, you can build Flathunter for production by using the following make command:
    make prod
  6. You should now see the server and client binaries and the output directory of the nuxt frontend.

(back to top)

Usage

Work in progress...

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Server
    • REST API
  • Client
    • Ebay-Kleinanzeigen
    • WG-Gesucht
    • Immobilienscout24
    • immowelt
  • Frontend
    • User Authentication
    • Listing Dashboard
    • Statistics

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the BSD-3-Clause License. See LICENSE for more information.

Used Software with copryight notices:

  • github.com/google/uuid (BSD-3-Clause) Copyright (c) 2009,2014 Google Inc. All rights reserved.
  • golang.org/x/crypto (BSD-3-Clause) Copyright (c) 2009 The Go Authors. All rights reserved.
  • github.com/arangodb/go-driver (Apache License 2.0) Copyright (c) 2017 ArangoDB GmbH
  • github.com/gocolly/colly (Apache License 2.0) Copyright (c) 2018 gocolly
  • github.com/alitto/pond (MIT License) Copyright (c) 2020 Alejandro Durante
  • github.com/go-co-op/gocron (MIT License) Copyright (c) 2014, 辣椒面
  • github.com/gofiber/fiber (MIT License) Copyright (c) 2019-present Fenny and Contributors
  • github.com/gofiber/helmet (MIT License) Copyright (c) 2020 Fiber
  • github.com/gookit/slog (MIT License) Copyright (c) 2016 inhere
  • github.com/joho/godotenv (MIT License) Copyright (c) 2013 John Barton
  • nuxt.com (MIT License) Copyright (c) 2016-2023 Nuxt

(back to top)

Contact

Yagizalp Zaimoglu - @yzaimoglu - [email protected] Reza Jaber - @rezajaber - [email protected]

Project Link: https://github.com/yzaimoglu/flathunter

(back to top)

About

The only program you'll need to find a flat in Germany as a student

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published