Skip to content

Pet project with the implementation of a service for finding, placing and renting housing

Notifications You must be signed in to change notification settings

vitaliy-bezugly/PropertySearch

Repository files navigation

PropertySearch

The Home Rental Offer Web Application is a useful tool for anyone looking to create and manage their home rental offers. With its easy-to-use features and intuitive user interface, users can create and manage their home rental offers in a timely and organized manner, as well as find potential rentals and connect with other users.

🐳 Functionality

  • User Registration and Login: Users can create a new account or log in to an existing account using their email address and password. Once logged in, users are redirected to the dashboard where they can view their own offers and manage their account.
  • Add New Home Rental Offer: Once logged in, users can create a new home rental offer that includes details such as the location, price, description, and images. The offer will be displayed on the offers page where other users can view it.
  • Home Rental Offer Management: Users who have added an offer can edit or update it at any time. This feature helps offer owners keep their offer up to date and relevant to potential renters.
  • View Other Users' Offers and Accounts: Users can view the offers and accounts of other users who have created an account on the application. This feature allows users to find potential rentals and to connect with other users who may be interested in renting their home.
  • User Experience: The application has a clean and intuitive user interface that makes it easy for users to manage their home rental offers. The application's features are designed to be easy to use, and users can easily navigate through the different sections of the application.

Libraries, tools, technologies and frameworks with which the application was created

  • ASP .NET Core MVC - with razor pages
  • ASP .NET Core Identity - to add login authorization and authentication to application.
  • Entity Framework Core - as ORM
  • MSSQL - as data storage
  • XUnit - as framework for testing
  • Docker - to help build the application and port it to other devices

Clone the repository:

git clone https://github.com/vitaliy-bezugly/PropertySearch.git

🛠️ Local running

To run the application on your local machine, you have two options:
  1. Using .NET Core: Make sure you have the .NET Core SDK installed. Open a terminal or command prompt and navigate to the root folder of the project. Run the following command:
  2. dotnet run --project src/PropertySearch.Api
    

    Ensure that you have configured environment variables.

  3. Using Docker: Make sure you have Docker installed on your machine.
  4. Firstly, you need to create an .env file in the root folder where you will describe the configuration of the projects. You must add the following keys:

    • MSSQL_PASSWORD - password for the mssql database
    • MSSQL_PORT - mssql database port (optionally it should be 1433)
    • PS_DOCKER_PORT - port of the "Property Search" application in the docker (optionally 80). If you want to install a different one, make sure you add the exact same port as the property lookup service environment variable in docker-compose.yml
    • PS_HOST_PORT - port of the real estate search application on the host computer
    • PS_SEND_GRID_KEY - your platform private key Send Grid to send email
    • PS_IP_INFO_TOKEN - your personal token IP Info

    Then, open a terminal or command prompt and navigate to the root folder of the project. Run the following command:

    docker-compose up -d
    

    This command will build and run the Docker containers for the application, along with all their dependencies. The API will be accessible at http://localhost:8080 on your host computer.

    Note: With Docker, the necessary database migrations will be applied automatically.

    Environment variables

    • DB_CONN - connection string of MSSQL database
    • SendGridKey - your platform private key Send Grid to send email
    • IpInfoToken - your personal token IP Info

    Authors

    Images

    image image image image